aboutsummaryrefslogtreecommitdiffstats
path: root/scenario
AgeCommit message (Collapse)Author
2010-11-01Provide browser DSL with location() to expect the iframe URL parts. Also ↵Elliott Sprehn
move navigateTo() under the browser DSL.
2010-10-28add optional label to dsl with selectors to improve test and output readabilityAndres Ornelas
e.g. Before: code: element('.actions ul li a').click(); output: element .actions ul li a click After code: element('.actions ul li a', "'Configuration' link").click(); output: element 'Configuration' link ( .actions ul li a ) click
2010-10-26fixes IE related failures, and form submit event handling in ieMisko Hevery
2010-10-26Lots of bug fixes in the scenario runner and a bunch of new features.Elliott Sprehn
- By default the runner now creates multiple output formats as it runs. Nodes are created in the DOM with ids: json, xml, and html. ex. $('#json').html() => json output of the runner ex. $('#xml').html() => json output of the runner $result is also an object tree result. The permitted formats are html,json,xml,object. If you don't want certain formats you can select specific ones with the new ng:scenario-output attribute on the script tag. <script src="angular-scenario.js" ng:scenario-output="xml,json"> - Added element(...).count() that returns the number of matching elements for the selector. - repeater(...).count() now returns 0 if no elements matched which can be used to check if a repeater is empty. - Added toBe() matcher that does strict equality with === - Implement iit and ddescribe. If iit() is used instead of it() then only that test will run. If ddescribe() is used instead of describe() them only it() statements inside of it will run. Several iit/ddescribe() blocks can be used to run isolated tests. - Implement new event based model for SpecRunner. You can now listen for events in the runner. This is useful for writing your own UI or connecting a remote process (ex. WebDriver). Event callbacks execute on the Runner instance. Events, if fired, will always be in the below order. All events always happen except for Failure and Error events which only happen in error conditions. Events: RunnerBegin SpecBegin(spec) StepBegin(spec, step) StepError(spec, step, error) StepFailure(spec, step, error) StepEnd(spec, step) SpecError(spec, step, error) SpecEnd(spec) RunnerEnd - Only allow the browser to repaint every 10 steps. Cuts 700ms off Firefox in benchmark, 200ms off Chrome. - Bug Fix: Manually navigate anchors on click since trigger wont work in Firefox.
2010-10-20fix some of the failing ie testsMisko Hevery
2010-10-20Lots of stability and performance updates and UI polish too.Elliott Sprehn
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-19Fix browser triggering in scenario to always do native events.Misko Hevery
- Also fixed angular.suffix for scenarios - refactored click() to browserTrigger() - Fixed Rakefile with CSS and jQuery
2010-10-19Significantly clean up the way the scenario DSL works and implement many ↵Elliott Sprehn
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-14New Angular Scenario runner and DSL system with redesigned HTML UI.Elliott Sprehn
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-09-23delete unused files (e.g. swfobject and underscore libs)Bolek Szewczyk
2010-09-22Refactored the Browser:Misko Hevery
- 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
2010-07-30fix up the $location encodingMisko Hevery
2010-07-29refactored $location service so that it correctly updates under all conditionsMisko Hevery
2010-07-27fix preventDefault for eventsMisko Hevery
2010-07-02change all attributes from ng- to ng: prefixMisko Hevery
2010-07-02fixed special keywords in chrome such as x.throw must be x["throw"].Misko Hevery
2010-06-02Revert "Revert "removed few key foreach and replaced thime with for loop for ↵Shyam Seshadri
performance."" This reverts commit a29c5e4c7fd5e708c28e70e974bf873621d5277c.
2010-06-02Revert "removed few key foreach and replaced thime with for loop for ↵Shyam Seshadri
performance." This reverts commit 6143b04384680d17f38c2d5894a9b9961ea33288.
2010-05-31removed few key foreach and replaced thime with for loop for performance.Misko Hevery
2010-05-30added compiled getterFN for better performanceMisko Hevery
2010-05-30improve error handling with elementsMisko Hevery
2010-05-30remove the uneeded call to createScope when evaluating expressionsMisko Hevery
2010-05-25added rake task to create a single file for scenario runnerMisko Hevery
2010-05-25fixed collapsed issueAndres Ornelas
2010-05-24added error handling on scenario definitionAndres Ornelas
2010-05-24happyAndres Ornelas Mesta
2010-05-20basic end to end runnerMisko Hevery
2010-05-10improved handling of text fields when formater fails to prevent clobering of ↵Misko Hevery
field
2010-04-29added $xhr service with bulk and cache, hooked up $resourceMisko Hevery
2010-04-27resources now use browser mockMisko Hevery
2010-04-22tests work under jquery and withoutMisko Hevery
2010-04-21ie6 now passesMisko Hevery
2010-04-20fixes to enable ieMisko Hevery
2010-04-07added $invalidWidget serviceMisko Hevery
2010-04-06few fixes to make tests pass with jqueryMisko Hevery
2010-04-05added hover serviceMisko Hevery
2010-04-05added ng:switch widgetMisko Hevery
2010-04-03injection is now workingMisko Hevery
2010-04-02radio now works with repeatersMisko Hevery
2010-04-02widgets now work properlyMisko Hevery
2010-04-01work on $location and autobindMisko Hevery
2010-03-26moved all uneeded files out, widgets.html works, tests horribly brokenMisko Hevery
2010-03-15datastore scenario failing as expectedAdam Abrons
2010-03-15get scenarios running again - open Runner.html in a browser to run themAdam Abrons