aboutsummaryrefslogtreecommitdiffstats
path: root/src/scenario/Scenario.js
AgeCommit message (Collapse)Author
2012-03-28chore(module): move files around in preparation for more modulesMisko Hevery
2012-02-28refactor(forms): Even better formsVojta Jina
- remove $formFactory completely - remove parallel scope hierarchy (forms, widgets) - use new compiler features (widgets, forms are controllers) - any directive can add formatter/parser (validators, convertors) Breaks no custom input types Breaks removed integer input type Breaks remove list input type (ng-list directive instead) Breaks inputs bind only blur event by default (added ng:bind-change directive)
2012-01-25refactor(directives): connect new compilerMisko Hevery
- turn everything into a directive
2011-11-14doc(AUTO, NG_MOCK): Documenting the AUTO and NG_MOCK moduleMisko Hevery
2011-10-13feat(scenario): allow key pressing when triggering browser eventVojta Jina
Add parameter to our browserTriger function to allow specifying which keys are pressed. Note, this does not work on IE<9 !
2011-10-11chore(formating): clean code to be function() {Misko Hevery
2011-10-11feat(forms): new and improved formsMisko Hevery
2011-09-26fix(scenario): workaround for FF6 dispatchEvent issue #684208Igor Minar
2011-09-26Revert "fix(scenario): temporary fix for FF6"Igor Minar
This reverts commit aac68bf2ba2dcdf0b22fa4f15ea49672cb06328d.
2011-09-08fix(scenario): temporary fix for FF6Vojta Jina
https://bugzilla.mozilla.org/show_bug.cgi?id=684208
2011-09-08fix(scenario): do not navigate if click event was cancelledVojta Jina
This is jQuery incompatible hack. But we were doing monkey patching there anyway... `$(...).trigger('click')` returns an array of return values, so that scenario runner knows, whether the event default action was cancelled. Without this fix, scenario runner was doing navigation even if JS code called `event.preventDefault()`. Note, this does not work in FF6
2011-09-08feat(scenario): browserTrigger returns false if preventDefault()Vojta Jina
https://developer.mozilla.org/en/DOM/element.dispatchEvent dispatchEvent method returns false if at least one of the event handlers called preventDefault(), true otherwise. It's helpful when browserTrigger method returns this value, as we can assert, whether the default operation was cancelled or not.
2011-07-18feat(strict mode): adding strict mode flag to all js filesIgor Minar
the flag must be in all src and test files so that we get the benefit of running in the strict mode even in jstd the following script was used to modify all files: for file in `find src test -name "*.js"`; do echo -e "'use strict';\n" > temp.txt cat $file >> temp.txt mv temp.txt $file done
2011-05-19JSTD adapter for running e2e testsVojta Jina
Couple of changes into angular.scenario runner: - add autotest config (runs tests when document ready) - update ObjectModel (forwards events) - use only one ObjectModel instance for all outputters - expose error msg and line number in ObjectModel.Spec and ObjectModel.Step - fix generating spec.ids - fix 'html' output so that it does not mutate ObjectModel Couple of changes into docs / generator: - rename copy -> copyTpl - move docs/static into docs/examples (to avoid conflict with jstd proxy) Running all docs e2e tests: ======================================================== 1/ compile angular-scenario, jstd-scenario-adapter >> rake compile 2/ build docs >> rake docs 3/ start jstd server >> ./server-scenario.sh 4/ capture some browser 5/ run node server to serve static content >> node ../lib/nodeserver/server.js 6/ run tests >> ./test-scenario.sh
2011-04-09fix build for IE9Igor Minar
all unit tests now pass under IE9
2011-02-16reformated multiline trinary expressions to have a leading ?/:.Misko Hevery
2011-02-16rewrite of JQuery lite implementation, which now better supports selected setsMisko Hevery
2011-01-10Rename angular.foreach to angular.forEach to make the api consistent.Igor Minar
camelcase is used for other angular functions and forEach is also used by EcmaScript standard. - rename the internal as well as the external function name - tweak the implementation of the function so that it doesn't clober it self when we extend the angular object with an object that has a forEach property equal to this forEach function Closes #85
2011-01-07change to keydown from keyup; add delayed $updateViewMisko Hevery
- There was a perceived lag when typing do to the fact that we were listening on the keyup event instead of keydown. The issue with keydown is that we can not read the value of the input field. To solve this we schedule a defer call and perform the model update then. - To prevent calling $eval on root scope too many times as well as to prevent drowning the browser with too many updates we now call the $eval only after 25ms and any additional requests get ignored. The new update service is called $updateView
2011-01-07rename nodeName due to conflicts with jqueryIgor Minar
2010-11-10scenario repeater should match only visible stuffIgor Minar
2010-11-09Support substring matching of bindings with repeater(). Closes #123Elliott Sprehn
2010-11-02Provide better sandbox error messages, and disallow running from file:// URLsElliott Sprehn
2010-10-29Check if file exists (not a 404) and that document is accessible and not ↵Elliott Sprehn
using file:// URLs in Application
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-22Workaround for http://bugs.jquery.com/ticket/7292Misko Hevery
2010-10-22Horrible IE + jQuery hack to make the tests passMisko Hevery
2010-10-22fixed issue with ie .data() method failing testsMisko Hevery
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-19fixed Scenario.js so that it does not clobber global varsMisko Hevery
2010-10-19fixed testsMisko Hevery
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-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.