aboutsummaryrefslogtreecommitdiffstats
path: root/test/ng/animateSpec.js
diff options
context:
space:
mode:
authorBrian Ford2013-09-23 17:29:51 -0700
committerIgor Minar2013-09-27 12:38:27 -0700
commitc785267eb8780d8b7658ef93ebb5ebddd566294d (patch)
tree46fa85051d7aa768719b8c4572aec63ed30d52e2 /test/ng/animateSpec.js
parent6aaae062171bfc8e5046c3eae99bc9d63037120a (diff)
downloadangular.js-c785267eb8780d8b7658ef93ebb5ebddd566294d.tar.bz2
fix(jqLite): use get/setAttribute so that jqLite works on SVG nodes
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
Diffstat (limited to 'test/ng/animateSpec.js')
-rw-r--r--test/ng/animateSpec.js12
1 files changed, 12 insertions, 0 deletions
diff --git a/test/ng/animateSpec.js b/test/ng/animateSpec.js
index 79115c1e..e982862a 100644
--- a/test/ng/animateSpec.js
+++ b/test/ng/animateSpec.js
@@ -40,6 +40,18 @@ describe("$animate", function() {
expect(element).toBeHidden();
}));
+ it("should add and remove classes on SVG elements", inject(function($animate) {
+ if (!window.SVGElement) return;
+ var svg = jqLite('<svg><rect></rect></svg>');
+ var rect = svg.children();
+ $animate.enabled(false);
+ expect(rect).toBeShown();
+ $animate.addClass(rect, 'ng-hide');
+ expect(rect).toBeHidden();
+ $animate.removeClass(rect, 'ng-hide');
+ expect(rect).not.toBeHidden();
+ }));
+
it("should throw error on wrong selector", function() {
module(function($animateProvider) {
expect(function() {