aboutsummaryrefslogtreecommitdiffstats
path: root/test
AgeCommit message (Collapse)Author
2013-10-03fix($compile): don't terminate compilation for regular transclusion directivesIgor Minar
Previously we would stop the compilation for both regular and element transclusion directives which was wrong. Only element transclusion directives should be terminal.
2013-10-03fix($sanitize): sanitize DOCTYPE declarations correctlypaolo-delmundo
HTML to be sanitized that contains a DOCTYPE declaration were causing the HTML parser to throw an error. Now the parser correctly removes the declarations when sanitizing HTML. Closes #3931
2013-10-02fix($resource): pass transformed value to both callbacks and promisesjankuca
Closes #3817
2013-10-02fix(isArrayLike): correctly handle string primitivesDaniel Luz
Closes #3356
2013-10-02feat(ngMock.$timeout): remove flushNext methodVojta Jina
2013-10-02fix($location): prevent infinite digest error in IE7Angel Balcarcel
Refactored `replacedUrl` to store the new URL on both `location.replace` and setting `location.href` directly to handle delays in the actual location value change in IE. Closes #2802
2013-10-02test($sce): ie8 fix for entire fileChirayu Krishnappa
Ref: https://github.com/angular/angular.js/pull/4221#/issuecomment-25515813 Closes #4221
2013-10-02fix($scope): $evalAsync executes on the right scopeLucas Galfasó
Executes $evalAsync at the scope that the call was made Closes: #3548
2013-10-02fix($compile): ng-attr to support dash separated attribute namesJamie Mason
2013-10-02style(rootScopeSpec): add semi-colonsPete Bacon Darwin
2013-10-02style($qSpec): add semi-colonsPete Bacon Darwin
2013-10-01test($sce): make ie8 happyChirayu Krishnappa
Ref: https://github.com/angular/angular.js/pull/4221#/issuecomment-25515813 Closes #4221
2013-10-01fix($compile): allow interpolations for non-event handlers attrsFrancesco Pontillo
Fix wrong behaviour that didn't allow 'data-on' and 'on' element attributes to be interpolated by $compile. The regex now accepts any string beginning with 'on' and with at least one more English letter.
2013-10-01fix($httpBackend): set headers with falsy valuesRicardo Bin
This is a breaking change. To migrate to the new behavior, delete or set headers to `undefined` to avoid having them sent. To restore the old behavior, override `$httpBackendProvider` with the old implementation. Closes #2984
2013-10-01fix($animator): avoid completing the animation asynchronously unless CSS ↵Matias Niemelä
transtiions/animations are present Closes #4023 Closes #3940
2013-10-01fix($httpBackend): don't send empty string bodiesJames Roper
The `XMLHttpRequest.send` spec defines different semantics for `null` than for an empty String: an empty String should be sent with a `Content-Type` of `text/plain`, whereas `null` should have no `Content-Type` header set. Closes #2149
2013-10-01chore: remove Firefox CORS workaroundjquadrin
See #1468
2013-10-01fix(dateFilter): allow negative millisecond value stringsHenning Teek
2013-10-01chore($ngAnimate): simplify vendor prefixes handling in testsMichał Gołębiowski
2013-10-01feat(filter): allow map of filters to be registeredColin Casey
This feature adds similar functionality to what `$ControllerProvider.register` and `$CompileProvider.directive` currently provide by allowing a map of filter name/factories to be passed as the sole argument to `$FilterProvider.register` to register all of the specified filters. Closes #4036 Closes #4091
2013-10-01feat($sce): simpler patterns for $sceDelegateProviders white/blacklistsChirayu Krishnappa
Closes #4006
2013-09-30fix(ngTransclude): detect ngTranslude usage without a transclusion directivejankuca
Closes #3759
2013-09-30fix($compile): link parents before traversingVojta Jina
How did compiling a templateUrl (async) directive with `replace:true` work before this commit? 1/ apply all directives with higher priority than the templateUrl directive 2/ partially apply the templateUrl directive (create `beforeTemplateNodeLinkFn`) 3/ fetch the template 4/ apply second part of the templateUrl directive on the fetched template (`afterTemplateNodeLinkFn`) That is, the templateUrl directive is basically split into two parts (two `nodeLinkFn` functions), which has to be both applied. Normally we compose linking functions (`nodeLinkFn`) using continuation - calling the linking function of a parent element, passing the linking function of the child elements as an argument. The parent linking function then does: 1/ execute its pre-link functions 2/ call the child elements linking function (traverse) 3/ execute its post-link functions Now, we have two linking functions for the same DOM element level (because the templateUrl directive has been split). There has been multiple issues because of the order of these two linking functions (creating controller before setting up scope locals, running linking functions before instantiating controller, etc.). It is easy to fix one use case, but it breaks some other use case. It is hard to decide what is the "correct" order of these two linking functions as they are essentially on the same level. Running them side-by-side screws up pre/post linking functions for the high priority directives (those executed before the templateUrl directive). It runs post-linking functions before traversing: ```js beforeTemplateNodeLinkFn(null); // do not travers afterTemplateNodeLinkFn(afterTemplateChildLinkFn); ``` Composing them (in any order) screws up the order of post-linking functions. We could fix this by having post-linking functions to execute in reverse order (from the lowest priority to the highest) which might actually make a sense. **My solution is to remove this splitting.** This commit removes the `beforeTemplateNodeLinkFn`. The first run (before we have the template) only schedules fetching the template. The rest (creating scope locals, instantiating a controller, linking functions, etc) is done when processing the directive again (in the context of the already fetched template; this is the cloned `derivedSyncDirective`). We still need to pass-through the linking functions of the higher priority directives (those executed before the templateUrl directive), that's why I added `preLinkFns` and `postLinkFns` arguments to `applyDirectivesToNode`. This also changes the "$compile transclude should make the result of a transclusion available to the parent directive in post- linking phase (templateUrl)" unit test. It was testing that a parent directive can see the content of transclusion in its pre-link function. That is IMHO wrong (as the `ngTransclude` directive inserts the translusion in its linking function). This test was only passing because of c173ca412878d537b18df01f39e400ea48a4b398, which changed the behavior of the compiler to traverse before executing the parent linking function. That was wrong and also caused the #3792 issue, which this change fixes. Closes #3792 Closes #3923 Closes #3935 Closes #3927
2013-09-30fix($animate): ensure transition-property is not changed when only keyframe ↵Matias Niemelä
animations are in use Closes #3933
2013-09-27fix(log): prevent logging `undefined` for $log in IEColin Casey
Closes #1705
2013-09-27fix(jqLite): use get/setAttribute so that jqLite works on SVG nodesBrian Ford
jqLite previously used `elt.className` to add and remove classes from a DOM Node, but because the className property is not writable on SVG elements, it doesn't work with them. This patch replaces accesses to `className` with `get/setAttribute`. `classList` was also considered as a solution, but because only IE10+ supports it, we have to wait. :'( The JqLiteAddClass/JQLiteRemoveClass methods are now also used directly by $animate to work around the jQuery not being able to handle class modifications on SVG elements. Closes #3858
2013-09-26fix($compile): collect ranges on multiple directives on one elementjankuca
The problem was in keeping the values of `attrNameStart` and `attrNameEnd` between directive loop iterations which lead to the compiler looking for multi-element ranges for any directives that happened to be in the directive list after one that was applied on a range. For instance, having a ng-repeat-start and ng-class on a single element with ng-repeat being resolved first made the compiler look for an ng-repeat-end for both ng-repeat and ng-class because the `attrNameEnd` was not reset to a falsy value before the second iteration. As the result, an exception saying the block end element could not be found and the second directive was not actually applied. Closes #4002
2013-09-26fix(ngAnimate): ensure that delays are always considered before an animation ↵Matias Niemelä
closes Closes #4028
2013-09-25fix(ngRepeat): correctly track elements even when the collection is ↵jankuca
initially undefined Previously if the collection model was set to undefined on the first digest, the repeater would get confused and not use the correct tracking function for associating model with dom elements in the repeater. Closes #4145 Closes #3964
2013-09-20test(ng-non-bindable): test sibling bindingsChirayu Krishnappa
Ref: https://github.com/angular/angular.dart/blob/master/test/directives/ng_non_bindable_spec.dart
2013-09-20fix(ng-bind-html): watch string value instead of wrapperChirayu Krishnappa
Ref: https://github.com/angular/angular.js/pull/4045 I have this sinking feeling that support this use case sort of encourages binding to function that blindly trust some html. For now, I'm fixing the issue while I think about the use cases some more. In the case of a function that performs any non-trivial work before wrapping the value (e.g. the showdown filter in issue #3980, or the binding to a simply wrapper function in issue #3932 if it did anything meaty), this fix makes it "work" - but performance is going to suck - you should bind to some other thing on scope that watches the actual source and adjusts itself when that changes (e.g. the showdown filter.) For the case of the wrapper in #3932, if one isn't performing sanitization or some such thing - then you the developer has insight into why that value is safe in that particular context - and it should be available simply by name and not as a result of a function taking any arbitrary input to make auditing of security a little saner. Closes #3932, #3980
2013-09-20fix(ngInclude): don't break attribute bindings on ngInclude-ed elementBrian Ford
BREAKING CHANGE: ngInclude's priority is now set to 1000 It's quite rare for anyone to depend on explicity directive priority, but if a custom directive that needs to run before ngInclude exists, it should have its priority checked and adjusted if needed. Closes #3793
2013-09-20fix(ngView): IE8 regression due to expando on non-element nodesIgor Minar
This fixes the "TypeError: Object doesn't support this property or method" error on IE8, when view templates contain leading white-space. Closes #3971
2013-09-17fix($parse): disallow access to window and dom in expressionsChirayu Krishnappa
2013-09-17fix(test): fixed toThrow usageChirayu Krishnappa
2013-09-13fix(ngOptions): ignore object properties which start with $Gowtam Lal
2013-09-11test($browser): correct false positive in ApplicationSpec.jsWoody Peterson
Previously, the check that Application should return a new $window and $document had the arguments reversed in the first call to navigateTo; thus, the subsequent check of inequality of $window and $document in the next navigateTo call would always pass. This corrects the argument order, which makes this test not succeptible to false positives.
2013-09-11fix(ngSanitize): sanitizer should not accept <!--> as a valid commentR. Merkert
According to http://validator.w3.org/ , <!--> is not a valid comment and neither is any comment containing the -- substring.
2013-09-06fix(ngAnimate): check elapsedTime on current eventMatias Niemelä
onAnimationProgress now checks the event's elapsedTime property before checking the originalEvent.elapsedTime property. Use browserTrigger with elapsedTime parameter to trigger animation events
2013-09-06fix(ngScenario): provide event parameters as objectMatias Niemelä
BREAKING CHANGE: browserTrigger now uses an eventData object instead of direct parameters for mouse events. To migrate, place the `keys`,`x` and `y` parameters inside of an object and place that as the third parameter for the browserTrigger function.
2013-09-05refactor($animate): use CSS3 transition/animation events instead of ↵Matias Niemelä
$timeouts to track ongoing animations Closes #3629 Closes #3874
2013-09-03fix(ngView): ensure ngClass works with together with ngView's transclusion ↵Matias Niemelä
behavior Closes: #3727
2013-09-03fix(ngAnimate): ensure that ngClass is always compiled before enter, leave ↵Matias Niemelä
and move animations Closes #3727 Closes #3603
2013-09-03chore($rootScope): provide support to execute a function after the digest ↵Matias Niemelä
cycle is complete
2013-09-03fix(ngAnimate): cut down on extra $timeout callsMatias Niemelä
2013-09-03feat(ngMock): allow passing an object literal as shorthand to moduleMerrick Christensen
2013-09-02fix($http): allow empty responses to be cachedjankuca
Closes #3809
2013-08-29fix(core): parse IE11 UA string correctlyChirayu Krishnappa
It's great that IE11 wants to be compatible enough that it doesn't want to be special cased and treated differently. However, as long as one has to have a different code path for IE than for the other supported browsers, we still need to detect and special case it. For instance, our URL parsing code still needs the same workaround the we used for IE10. We still see the same Access denied / TypeError exceptions when setting certain values. FYI, Angular doesn't generally blindly test for IE – we also check the version number. Thanks to modern.ie for the free IE11 test VM. Closes #3682
2013-08-27test(Scope): fix tests after reverting commitsIgor Minar
Making assertions on state (rather than interactions) is better anyway.
2013-08-27revert: feat(mocks): make $timeout#flush throw an exception when emptyIgor Minar
This reverts commit cbf06a5d64aba537f0e2679a194d3998d8365493. This turned out to be a bad idea because it allow us to fast-forward the wall clock time (see previous commit).