aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
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-26Reverted change 841013a4c4d25acf6fc9ff40e449c3d0a4b82ec3 which does not work ↵Misko Hevery
on all browsers
2010-10-26Simplify dateGetter() within the date filter.Igor Minar
2010-10-26Simplify implementation of angular.String.toDate()Igor Minar
2010-10-26Add TzDate to angular-mocks.jsIgor Minar
TzDate is a Date-like type that is independent from the timezone settings of the machine on which TzDate instances are created. This property makes it ideal for testing code that deals with timezones in a manner that makes the code portable between timezones. Closes #81
2010-10-26create HTML sanitizer to allow inclusion of untrusted HTML in safe manner.Misko Hevery
Sanitization works in two phases: 1) We parse the HTML into sax-like events (start, end, chars). HTML parsing is very complex, and so it may very well be that what most browser consider valid HTML may not pares properly here, but we do best effort. We treat this parser as untrusted. 2) We have safe sanitizeWriter which treats its input (start, end, chars) as untrusted content and escapes everything. It only allows elements in the whitelist and only allows attributes which are whitelisted. Any attribute value must not start with 'javascript:'. This check is performed after escaping for entity (&xAB; etc..) and ignoring any whitespace. - Correct linky filter to use safeHtmlWriter - Correct html filter to use safeHtmlWriter Close #33; Close #34
2010-10-25Add millisecond support for date filterIgor Minar
Date filter should translate input which is a number (or number string) into a date.
2010-10-23Revert "added support for treating numbers as date in miliseconds"Igor Minar
This reverts commit 1391f19fb49275af59230afef51b472c58d7818c.
2010-10-23improving the PersonalLog appIgor Minar
- adding jsdocs and comments - logs should be ordered in inverse order
2010-10-23personalLog demo - initial version with specIgor Minar
2010-10-23added support for treating numbers as date in milisecondsMisko Hevery
2010-10-23adding ng:submit directive for use with formsIgor Minar
- allows for binding angular expressions to onsubmit events - prevent default submit action (page reload)
2010-10-23simplifying ng:click specIgor Minar
2010-10-23Fix issue where directories don't have a slash on the end and allow ↵Elliott Sprehn
specifying a different port
2010-10-23$cookieStore should not be a global serviceIgor Minar
you must use $inject to $inject it as any other non-global service
2010-10-23Fix for getting into recursive $eval on scope. Close #59Misko Hevery
It sort of worked since the browser would throw stack too deep exception and the angular would then print the error to console. So as long as you did not have console open you would not notice this as an error.
2010-10-23Fix test which was causing the Chrome runner to fail. Upgraded JSTD to ↵Misko Hevery
latest. Cleanup whitespace.
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-22corrected buzz.html to use ng:src on images to prevent sporious browser ↵Misko Hevery
requests/errors
2010-10-22fixed issue with ie .data() method failing testsMisko Hevery
2010-10-22Better nodeserver that implements an HTTP server more completelyElliott Sprehn
2010-10-20fixed more ie test failuresMisko Hevery
2010-10-20fix some of the failing ie testsMisko Hevery
2010-10-20Rakefile should create the build directory when it is needed and doesn't existIgor Minar
2010-10-20adding CHANGELOG.md with 0.9.0 release notesIgor Minar
2010-10-20preparing 0.9.1 repulsion-field iterationIgor Minar
2010-10-20cutting the 0.9.0 releasev0.9.0Igor Minar
2010-10-20Angular should look for angular-ie-compat file at the right locationIgor Minar
The location should be based on the base path of the angular script and the version identifier of the angular script. ex: angular.js -> angular-ie-compat.js js/angular-0.9.0.min.js -> js/angular-ie-compat-0.9.0.js
2010-10-20Add support for version numbers in the RakefileIgor Minar
* version number is stored in version.yaml - work in progress is marked with version number that ends with '-snapshot' * all compiled files are stored in the './build/' directory without version numbers * :package task creates a tarball in the build directory - if version number contains '-snapshot', this substring is replaced with sha of the head - tarball contains version number in the filename - all js files contain version number in the filename * .gitignore was updated to reflect all these changes * the .map file is not created by the closure compiler any more
2010-10-20add missing spec for angularJsConfigIgor Minar
2010-10-20extract and test regexp that identifies angular script tagIgor Minar
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-20fixed negative numbers in JsonMisko Hevery
2010-10-19Added tests for URL_MATCH and fixed issue with empty pathVojta Jina
This commit was produced by a combination of 4 commits: - Added URL_MATCH test for basic url - Moved two tests from $location to URL_MATCH, as they should be here - Added test for host without "/" ending and fix the regexp to pass the test - Added another test for matching empty abs path ("/") and fix the regexp
2010-10-19fix issue where script calls back before callback registered.Misko Hevery
2010-10-19fix date filter to igrone falsy inputMisko Hevery
2010-10-19fixed Scenario.js so that it does not clobber global varsMisko Hevery
2010-10-19fixed testsMisko Hevery
2010-10-19upgrade jstdMisko 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-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-18small fixes to the $location servicesIgor Minar
* fixing the jsdoc format * rewriting updateHash() method to be easier to read and so that it minifies better
2010-10-18Remove externs target from the RakefileIgor Minar
We are not going to do advanced optimization in the forseeable future, so until then we don't need we should remove them from Rakefile.
2010-10-18fixing css class name for currency filter and its specIgor Minar
2010-10-18inline all images into cssIgor Minar
* embedded images as data URIs * rake task to generate multipart js file with embeded images for IE * move images into a separate directory outside of src or css and keep them there for reference * clean up Rakefile and ruby code * .gitignore update * don't penalize IE 8+ with an extra request to the ie-compat.js file
2010-10-18Removed $location.cancel() method (and related test)Vojta Jina
2010-10-18Update $location API Close #62Vojta Jina
update(objOrString) updateHash(objOrString [, objOrString]) toString() cancel() Examples: $location.update('http://www.angularjs.org/path#path?a=b'); $location.update({port: 443, protocol: 'https'}); $location.updateHash('hashPath'); $location.updateHash({a: 'b'}); $location.updateHash('hashPath', {a: 'b'}); This commit was produced by squash of more commits, here are the old messages: - Change tests to use update() instead of parse(). - First implementation of update() method - Test for update() with object parameter - Add new tests for location, refactor location code - Add tests for updateHash() - Implement updateHash() - Take one or two arguments, could be string - update hashPath, or hash object - update hashSearch... - Fixed other service tests, to use new $location.update() Added $location.cancel() method (with test) Added $location.parse() for back compatability Remove parse() method
2010-10-18Update $location API Close #62Vojta Jina
update(objOrString) updateHash(objOrString [, objOrString]) toString() cancel() Examples: $location.update('http://www.angularjs.org/path#path?a=b'); $location.update({port: 443, protocol: 'https'}); $location.updateHash('hashPath'); $location.updateHash({a: 'b'}); $location.updateHash('hashPath', {a: 'b'}); This commit was produced by squash of more commits, here are the old messages: - Change tests to use update() instead of parse(). - First implementation of update() method - Test for update() with object parameter - Add new tests for location, refactor location code - Add tests for updateHash() - Implement updateHash() - Take one or two arguments, could be string - update hashPath, or hash object - update hashSearch... - Fixed other service tests, to use new $location.update() Added $location.cancel() method (with test) Added $location.parse() for back compatability Remove parse() method
2010-10-18JSON parser is now strict (ie, expressions are not allowed for security)Misko Hevery
Close #57