aboutsummaryrefslogtreecommitdiffstats
path: root/test/helpers/matchers.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/helpers/matchers.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/helpers/matchers.js')
-rw-r--r--test/helpers/matchers.js9
1 files changed, 8 insertions, 1 deletions
diff --git a/test/helpers/matchers.js b/test/helpers/matchers.js
index 57bf35c7..14430b37 100644
--- a/test/helpers/matchers.js
+++ b/test/helpers/matchers.js
@@ -31,7 +31,14 @@ beforeEach(function() {
}
function isNgElementHidden(element) {
- return angular.element(element).hasClass('ng-hide');
+ // we need to check element.getAttribute for SVG nodes
+ var hidden = true;
+ forEach(angular.element(element), function (element) {
+ if ((' ' +(element.getAttribute('class') || '') + ' ').indexOf(' ng-hide ') === -1) {
+ hidden = false;
+ }
+ });
+ return hidden;
};
this.addMatchers({