Skip to content

Commit 9ac410c

Browse files
committed
chore(tests): move FF text compat shim to matcher
1 parent e7a841b commit 9ac410c

File tree

3 files changed

+20
-18
lines changed

3 files changed

+20
-18
lines changed

files.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ routerFiles = {
1818
'test/testUtils.js'
1919
],
2020
test: [
21-
'test/*Spec.js'
22-
// 'test/compat/matchers.js',
21+
'test/*Spec.js',
22+
'test/compat/matchers.js'
2323
// 'test/compat/*Spec.js',
2424
],
2525
angular: function(version) {

test/compat/matchers.js

+11
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,17 @@ beforeEach(function() {
147147
return this.actual.hasClass ?
148148
this.actual.hasClass(clazz) :
149149
angular.element(this.actual).hasClass(clazz);
150+
},
151+
152+
/**
153+
* innerText compatibility shim for Firefox
154+
*/
155+
toMatchText: function(text) {
156+
var isFirefox = /firefox/i.test(navigator.userAgent);
157+
this.message = function() {
158+
return "Expected '" + this.actual.nodeName + "' element to have text '" + text + "'";
159+
};
160+
return this.actual[isFirefox ? 'textContent' : 'innerText'] === text;
150161
}
151162

152163
});

test/viewDirectiveSpec.js

+7-16
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,6 @@
11
/*jshint browser: true, indent: 2 */
22
/*global describe: false, it: false, beforeEach: false, expect: false, resolvedValue: false, module: false, inject: false, angular: false */
33

4-
/*innerText shim for Firefox */
5-
function innerText(elem) {
6-
if (/firefox/i.test(navigator.userAgent)) {
7-
return elem.textContent;
8-
} else {
9-
return elem.innerText;
10-
}
11-
}
12-
134
describe('uiView', function () {
145
'use strict';
156

@@ -142,8 +133,8 @@ describe('uiView', function () {
142133
$state.transitionTo(dState);
143134
$q.flush();
144135

145-
// expect(innerText(elem[0].querySelector('.dview1'))).toBe(dState.views.dview1.template);
146-
// expect(innerText(elem[0].querySelector('.dview2'))).toBe(dState.views.dview2.template);
136+
// expect(elem[0].querySelector('.dview1')).toMatchText(dState.views.dview1.template);
137+
// expect(elem[0].querySelector('.dview2')).toMatchText(dState.views.dview2.template);
147138

148139
expect($animate.flushNext('leave').element.html()).toBeUndefined();
149140
expect($animate.flushNext('enter').element.html()).toBe(dState.views.dview1.template);
@@ -157,10 +148,10 @@ describe('uiView', function () {
157148
$state.transitionTo(fState);
158149
$q.flush();
159150

160-
// expect(innerText(elem[0].querySelector('.view').querySelector('.eview'))).toBe(fState.views.eview.template);
151+
// expect(elem[0].querySelector('.view').querySelector('.eview')).toMatchText(fState.views.eview.template);
161152

162153
expect($animate.flushNext('leave').element.text()).toBe('');
163-
expect($animate.flushNext('enter').element.parent().parent()[0].querySelector('.view').querySelector('.eview').innerText).toBe(fState.views.eview.template);
154+
expect($animate.flushNext('enter').element.parent().parent()[0].querySelector('.view').querySelector('.eview')).toMatchText(fState.views.eview.template);
164155
}));
165156
});
166157

@@ -174,13 +165,13 @@ describe('uiView', function () {
174165
$state.transitionTo(gState);
175166
$q.flush();
176167

177-
// expect(innerText(elem[0].querySelector('.test'))).toBe(content);
168+
// expect(elem[0].querySelector('.test')).toMatchText(content);
178169

179170
expect($animate.flushNext('leave').element.text()).toBe("");
180171
expect($animate.flushNext('enter').element.text()).toBe(content);
181172

182173
// For some reason the ng-class expression is no longer evaluated
183-
expect($animate.flushNext('addClass').element.parent()[0].querySelector('.test').innerText).toBe(content);
174+
expect($animate.flushNext('addClass').element.parent()[0].querySelector('.test')).toMatchText(content);
184175
}));
185176

186177
it('initial view should be put back after removal of the view', inject(function ($state, $q, $animate) {
@@ -202,7 +193,7 @@ describe('uiView', function () {
202193
$state.transitionTo(gState);
203194
$q.flush();
204195

205-
// expect(innerText(elem[0].querySelector('.test'))).toBe(content);
196+
// expect(elem[0].querySelector('.test')).toMatchText(content);
206197

207198
expect($animate.flushNext('leave').element.text()).toBe(hState.views.inner.template);
208199
expect($animate.flushNext('enter').element.text()).toBe(content);

0 commit comments

Comments
 (0)