<feed xmlns='http://www.w3.org/2005/Atom'>
<title>angular.js/scenario, branch v0.9.0</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/'/>
<entry>
<title>Lots of stability and performance updates and UI polish too.</title>
<updated>2010-10-20T21:38:00+00:00</updated>
<author>
<name>Elliott Sprehn</name>
</author>
<published>2010-10-19T20:17:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=2115db69035c5993533fe7a3825e64cf6e9068ad'/>
<id>2115db69035c5993533fe7a3825e64cf6e9068ad</id>
<content type='text'>
Polish the Scenario Runner UI to include:
- a scroll pane that steps appear in since the list can be very long
- Collapse successful tests
- Show the line where the DSL statements were when there's an error (Chrome, Firefox)

Also:
- Remove lots angular.bind calls to reduce the amount of stack space used.
- Use setTimeout(...,0) to schedule the next future to let the browser breathe and have it repaint the steps. Also prevents overflowing the stack when an it() creates many futures.
- Run afterEach() handlers even if the it() block fails.
- Make navigateTo() take a function as the second argument so you can compute a URL in the future.
- Add wait() DSL statement to allow interactive debugging of tests.
- Allow custom jQuery selectors with element(...).query(fn) DSL statement.

Known Issues:
- All afterEach() handlers run even if a beforeEach() handler fails. Only after handlers for the same level as the failure and above should run.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Polish the Scenario Runner UI to include:
- a scroll pane that steps appear in since the list can be very long
- Collapse successful tests
- Show the line where the DSL statements were when there's an error (Chrome, Firefox)

Also:
- Remove lots angular.bind calls to reduce the amount of stack space used.
- Use setTimeout(...,0) to schedule the next future to let the browser breathe and have it repaint the steps. Also prevents overflowing the stack when an it() creates many futures.
- Run afterEach() handlers even if the it() block fails.
- Make navigateTo() take a function as the second argument so you can compute a URL in the future.
- Add wait() DSL statement to allow interactive debugging of tests.
- Allow custom jQuery selectors with element(...).query(fn) DSL statement.

Known Issues:
- All afterEach() handlers run even if a beforeEach() handler fails. Only after handlers for the same level as the failure and above should run.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix browser triggering in scenario to always do native events.</title>
<updated>2010-10-19T22:56:53+00:00</updated>
<author>
<name>Misko Hevery</name>
</author>
<published>2010-10-19T22:34:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=01c7abab35dbdee711c54875424b388f8631a3c0'/>
<id>01c7abab35dbdee711c54875424b388f8631a3c0</id>
<content type='text'>
 - Also fixed angular.suffix for scenarios
 - refactored click() to browserTrigger()
 - Fixed Rakefile with CSS and jQuery
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 - Also fixed angular.suffix for scenarios
 - refactored click() to browserTrigger()
 - Fixed Rakefile with CSS and jQuery
</pre>
</div>
</content>
</entry>
<entry>
<title>Significantly clean up the way the scenario DSL works and implement many more DSL statements.</title>
<updated>2010-10-19T07:45:38+00:00</updated>
<author>
<name>Elliott Sprehn</name>
</author>
<published>2010-10-18T21:02:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=e7e894a2e36e042be6d62af56b0f3126f4e4fc77'/>
<id>e7e894a2e36e042be6d62af56b0f3126f4e4fc77</id>
<content type='text'>
- "this" always means the current chain scope inside a DSL

- addFutureAction callbacks now take ($window, $document, done)

- $document has a special method elements() that uses the currently selected nodes in the document as defined by using() statements.

- $document.elements() allows placeholder insertion into selectors to make them more readable.
  ex. $document.elements('input[name="$1"]', myVar) will substitute the value of myVar for $1 in the selector. Subsequent arguments are $2 and so on.

- $document.elements() results have a special method trigger(event) which should be used to events. This method implements some hacks to make sure browser UI controls update and the correct angular events fire.

- futures now allow custom formatting. By default any chain that results in a future can use toJson() or fromJson() to convert the future value to and from json. A custom parser can be provided with parsedWith(fn) where fn is a callback(value) that must return the parsed result.

Note: The entire widgets.html UI is now able to be controlled and asserted through DSL statements!!! Victory! :)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- "this" always means the current chain scope inside a DSL

- addFutureAction callbacks now take ($window, $document, done)

- $document has a special method elements() that uses the currently selected nodes in the document as defined by using() statements.

- $document.elements() allows placeholder insertion into selectors to make them more readable.
  ex. $document.elements('input[name="$1"]', myVar) will substitute the value of myVar for $1 in the selector. Subsequent arguments are $2 and so on.

- $document.elements() results have a special method trigger(event) which should be used to events. This method implements some hacks to make sure browser UI controls update and the correct angular events fire.

- futures now allow custom formatting. By default any chain that results in a future can use toJson() or fromJson() to convert the future value to and from json. A custom parser can be provided with parsedWith(fn) where fn is a callback(value) that must return the parsed result.

Note: The entire widgets.html UI is now able to be controlled and asserted through DSL statements!!! Victory! :)
</pre>
</div>
</content>
</entry>
<entry>
<title>New Angular Scenario runner and DSL system with redesigned HTML UI.</title>
<updated>2010-10-14T16:47:39+00:00</updated>
<author>
<name>Elliott Sprehn</name>
</author>
<published>2010-10-08T23:43:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=03df6cbddbb80186caf571e29957370b2ef9881c'/>
<id>03df6cbddbb80186caf571e29957370b2ef9881c</id>
<content type='text'>
Uses the Jasmine syntax for tests, ex:

describe('widgets', function() {
  it('should verify that basic widgets work', function(){
    navigateTo('widgets.html');
    input('text.basic').enter('Carlos');
    expect(binding('text.basic')).toEqual('Carlos');
    input('text.basic').enter('Carlos Santana');
    expect(binding('text.basic')).not().toEqual('Carlos Boozer');
    input('text.password').enter('secret');
    expect(binding('text.password')).toEqual('secret');
    expect(binding('text.hidden')).toEqual('hiddenValue');
    expect(binding('gender')).toEqual('male');
    input('gender').select('female');
    expect(binding('gender')).toEqual('female');
  });
});

Note: To create new UI's implement the interface shown in angular.scenario.ui.Html.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Uses the Jasmine syntax for tests, ex:

describe('widgets', function() {
  it('should verify that basic widgets work', function(){
    navigateTo('widgets.html');
    input('text.basic').enter('Carlos');
    expect(binding('text.basic')).toEqual('Carlos');
    input('text.basic').enter('Carlos Santana');
    expect(binding('text.basic')).not().toEqual('Carlos Boozer');
    input('text.password').enter('secret');
    expect(binding('text.password')).toEqual('secret');
    expect(binding('text.hidden')).toEqual('hiddenValue');
    expect(binding('gender')).toEqual('male');
    input('gender').select('female');
    expect(binding('gender')).toEqual('female');
  });
});

Note: To create new UI's implement the interface shown in angular.scenario.ui.Html.
</pre>
</div>
</content>
</entry>
<entry>
<title>delete unused files (e.g. swfobject and underscore libs)</title>
<updated>2010-09-23T10:38:28+00:00</updated>
<author>
<name>Bolek Szewczyk</name>
</author>
<published>2010-09-23T10:38:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=af030b888e10c978dc68032758b18e36de7b4cf1'/>
<id>af030b888e10c978dc68032758b18e36de7b4cf1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Refactored the Browser:</title>
<updated>2010-09-22T14:17:44+00:00</updated>
<author>
<name>Misko Hevery</name>
</author>
<published>2010-09-22T11:24:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=0649009624e8e7bd6fb39537f62c6f00facbfb16'/>
<id>0649009624e8e7bd6fb39537f62c6f00facbfb16</id>
<content type='text'>
  - change from using prototype to inner functions to help with better compression
  - removed watchers (url/cookie) and introduced a poller concept
  - moved the checking of URL and cookie into services which register with poolers
Benefits:
  - Smaller minified file
  - can call $browser.poll() from tests to simulate polling
  - single place where setTimeout needs to be tested
  - More testable $browser
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  - change from using prototype to inner functions to help with better compression
  - removed watchers (url/cookie) and introduced a poller concept
  - moved the checking of URL and cookie into services which register with poolers
Benefits:
  - Smaller minified file
  - can call $browser.poll() from tests to simulate polling
  - single place where setTimeout needs to be tested
  - More testable $browser
</pre>
</div>
</content>
</entry>
<entry>
<title>fix up the $location encoding</title>
<updated>2010-07-30T17:56:36+00:00</updated>
<author>
<name>Misko Hevery</name>
</author>
<published>2010-07-30T17:56:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=cdda664f8990351453baa26fc3dcd53329e72e68'/>
<id>cdda664f8990351453baa26fc3dcd53329e72e68</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>refactored $location service so that it correctly updates under all conditions</title>
<updated>2010-07-29T19:54:13+00:00</updated>
<author>
<name>Misko Hevery</name>
</author>
<published>2010-07-29T19:50:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=1b768b84439e725010acc943ebfda462e49d3704'/>
<id>1b768b84439e725010acc943ebfda462e49d3704</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix preventDefault for events</title>
<updated>2010-07-27T22:54:50+00:00</updated>
<author>
<name>Misko Hevery</name>
</author>
<published>2010-07-27T22:54:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=2a30a02f015dd54846bb62d1f05e82b3cf76ef9f'/>
<id>2a30a02f015dd54846bb62d1f05e82b3cf76ef9f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>change all attributes from ng- to ng: prefix</title>
<updated>2010-07-02T22:39:57+00:00</updated>
<author>
<name>Misko Hevery</name>
</author>
<published>2010-07-02T22:39:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=1f0562150921ea2f05149b64ef0440937491def9'/>
<id>1f0562150921ea2f05149b64ef0440937491def9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
