Commit graph

39 commits

Author SHA1 Message Date
Elliott Sprehn
2115db6903 Lots of stability and performance updates and UI polish too.
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.
2010-10-20 14:38:00 -07:00
Misko Hevery
01c7abab35 Fix browser triggering in scenario to always do native events.
- Also fixed angular.suffix for scenarios
 - refactored click() to browserTrigger()
 - Fixed Rakefile with CSS and jQuery
2010-10-19 15:56:53 -07:00
Elliott Sprehn
e7e894a2e3 Significantly clean up the way the scenario DSL works and implement many more DSL statements.
- "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! :)
2010-10-19 00:45:38 -07:00
Misko Hevery
a36964799b fixed lint warnings and one flaky test 2010-10-15 13:44:53 -07:00
Elliott Sprehn
03df6cbddb New Angular Scenario runner and DSL system with redesigned HTML UI.
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.
2010-10-14 09:47:39 -07:00
Misko Hevery
894ffadc8c Fixed all trivial jslint violations 2010-09-14 23:22:15 +02:00
Shyam Seshadri
60eeeb9f20 Provide all jquery functions as futures 2010-08-14 03:24:09 +08:00
Shyam Seshadri
9260f4867a Fix broken tests for element dsl 2010-08-14 01:16:27 +08:00
Shyam Seshadri
1f230bf3f5 Revert click dsl, since what is returned by element is a jquery object 2010-08-13 10:13:03 -07:00
Shyam Seshadri
669d8241b2 Pull in Rajat's changes to add click and url checking dsl 2010-08-13 10:13:03 -07:00
Shyam Seshadri
cf33105011 Fix toEqual matcher to use angular.equals instead of simple == comparison, which breaks down for arrays and objects 2010-08-12 02:45:22 +08:00
Shyam Seshadri
04e92a8753 modify element dsl to understand angular bindings and return jquery object for further checking 2010-08-12 01:57:36 +08:00
Shyam Seshadri
27784b6dec Change repeater dsl to collect and return an array of string contents based on match 2010-08-12 01:09:04 +08:00
Shyam Seshadri
c4c96c5c69 Fix test breakage in Chrome. Chrome JQuery doesn't like malformed table html apparently 2010-08-10 13:42:50 -07:00
Shyam Seshadri
86c2ef87d5 Inject jquery into future scope, and rename outer scenario to _window, which is what it is 2010-08-10 10:48:31 -07:00
Shyam Seshadri
21d2b43e6c Add element DSL, to find an element. Has knowledge of finding ng:bind elements and grabbing their contents. 2010-08-09 17:55:01 -07:00
Andres Ornelas
de8d0984c8 added repeater.collect to E2E DSL 2010-08-06 17:28:47 -07:00
Andres Ornelas
6d0eeda1e2 added MatcherSpec 2010-08-04 12:36:53 -07:00
Andres Ornelas
26ed747588 test passing with repeater.count 2010-08-04 11:47:10 -07:00
Andres Ornelas
ef88eb9a71 refactoring done but Expect not working 2010-07-27 17:04:37 -07:00
Andres Ornelas
e8b477f5b1 text context extracted 2010-07-27 16:02:51 -07:00
Andres Ornelas
32c4aee1cd before pulling testcontext out 2010-07-27 15:53:55 -07:00
Andres Ornelas
da95010350 stable before refactoring 2010-07-27 15:43:14 -07:00
Andres Ornelas
b42072733c Merge branch 'master' of github.com:angular/angular.js into future 2010-07-27 10:44:46 -07:00
Misko Hevery
00bb790392 fixed IE tests 2010-07-08 15:55:00 -07:00
Andres Ornelas
9d8646b0d1 all tests passing with new futures concept 2010-06-30 09:51:54 -07:00
Andres Ornelas
fdc0bb232a add test for error in afterEach 2010-06-29 11:15:41 -07:00
Andres Ornelas
70c3dc8166 expose e2e test results 2010-06-22 17:15:14 -07:00
Andres Ornelas
85fac4d78c add beforeEach and afterEach to scenario DSL 2010-06-09 14:12:54 -07:00
Andres Ornelas
f6a405c283 change repeater count expectation wording 2010-06-09 13:30:54 -07:00
Andres Ornelas
fe03ea0d1f add repeater DSL and fix typo 2010-06-09 12:35:40 -07:00
Andres Ornelas
4fec828cf6 appended lastDocument to the document.body 2010-05-25 09:52:52 -07:00
Andres Ornelas
55c0767f16 added dsl tests and select method 2010-05-24 17:48:17 -07:00
Andres Ornelas
3fab5d9879 added error handling on scenario definition 2010-05-24 15:25:30 -07:00
Andres Ornelas Mesta
f6c67e28c9 happy 2010-05-24 13:54:32 -07:00
Misko Hevery
e3368e12a6 semi working state 2010-05-20 16:55:47 -07:00
Misko Hevery
5215e2095c basic end to end runner 2010-05-20 15:55:41 -07:00
Adam Abrons
c9aba8b442 make xhr just a method 2010-03-16 14:48:11 -07:00
Adam Abrons
39c6c5975b get scenarios running again - open Runner.html in a browser to run them 2010-03-15 17:02:54 -07:00