feat(ngMock): add support for creating dynamic style sheets within te… · LinkitLoo/angular.js@fb3a7db · GitHub
Skip to content

Commit fb3a7db

Browse files
matskomhevery
authored andcommitted
feat(ngMock): add support for creating dynamic style sheets within test code
1 parent 040aa11 commit fb3a7db

4 files changed

Lines changed: 74 additions & 5 deletions

File tree

angularFiles.js

Lines changed: 2 additions & 1 deletion

src/privateMocks.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
function createMockStyleSheet(doc, wind) {
2+
doc = doc ? doc[0] : document;
3+
wind = wind || window;
4+
5+
var node = doc.createElement('style');
6+
var head = doc.getElementsByTagName('head')[0];
7+
head.appendChild(node);
8+
9+
var ss = doc.styleSheets[doc.styleSheets.length - 1];
10+
11+
return {
12+
addRule : function(selector, styles) {
13+
try {
14+
ss.insertRule(selector + '{ ' + styles + '}', 0);
15+
}
16+
catch(e) {
17+
try {
18+
ss.addRule(selector, styles);
19+
}
20+
catch(e) {}
21+
}
22+
},
23+
24+
destroy : function() {
25+
head.removeChild(node);
26+
}
27+
};
28+
};

test/ngAnimate/animateSpec.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1118,11 +1118,15 @@ describe("ngAnimate", function() {
11181118
}));
11191119

11201120
it("should properly execute CSS animations/transitions and use callbacks when using addClass / removeClass",
1121-
inject(function($animate, $rootScope, $sniffer, $rootElement, $timeout) {
1121+
inject(function($animate, $rootScope, $sniffer, $rootElement, $timeout, $window, $document) {
11221122

1123-
var transition = 'transition:11s linear all;';
1124-
var style = transition + ' ' + vendorPrefix + transition;
1125-
var parent = jqLite('<div><span style="' + style + '"></span></div>');
1123+
var ss = createMockStyleSheet($document, $window);
1124+
ss.addRule('.klass-add', 'transition:11s linear all');
1125+
ss.addRule('.klass-add', vendorPrefix + 'transition:11s linear all');
1126+
ss.addRule('.klass-remove', 'transition:11s linear all');
1127+
ss.addRule('.klass-remove', vendorPrefix + 'transition:11s linear all');
1128+
1129+
var parent = jqLite('<div><span></span></div>');
11261130
$rootElement.append(parent);
11271131
body.append($rootElement);
11281132
var element = jqLite(parent.find('span'));

test/privateMocksSpec.js

Lines changed: 36 additions & 0 deletions

0 commit comments

Comments
 (0)