Skip to content

Commit dfedc97

Browse files
test(client): Browserstack tests & more browsers
1 parent 574271c commit dfedc97

3 files changed

Lines changed: 83 additions & 39 deletions

File tree

test/client/karma.conf.js

Lines changed: 64 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,68 @@
1-
var TRAVIS_WITHOUT_SAUCE = process.env.TRAVIS_SECURE_ENV_VARS === 'false'
1+
var TRAVIS_WITHOUT_BS = process.env.TRAVIS_SECURE_ENV_VARS === 'false'
22

33
var launchers = {
4-
sl_chrome: {
5-
base: 'SauceLabs',
6-
browserName: 'chrome',
7-
platform: 'Windows 7',
8-
version: '47'
4+
bs_chrome: {
5+
base: 'BrowserStack',
6+
browser: 'chrome',
7+
os: 'Windows',
8+
os_version: '10'
99
},
10-
sl_firefox: {
11-
base: 'SauceLabs',
12-
browserName: 'firefox',
13-
version: '43'
10+
bs_firefox: {
11+
base: 'BrowserStack',
12+
browser: 'firefox',
13+
os: 'Windows',
14+
os_version: '10'
1415
},
15-
sl_safari: {
16-
base: 'SauceLabs',
17-
browserName: 'safari',
18-
version: '9',
19-
platform: 'OS X 10.11'
16+
bs_safari: {
17+
base: 'BrowserStack',
18+
browser: 'safari',
19+
browser_version: '9.0',
20+
os_version: 'El Capitan',
21+
os: 'OS X'
2022
},
21-
sl_ie_11: {
22-
base: 'SauceLabs',
23-
browserName: 'internet explorer',
24-
platform: 'Windows 8.1',
25-
version: '11'
23+
bs_ie_11: {
24+
base: 'BrowserStack',
25+
browser: 'ie',
26+
browser_version: '11.0',
27+
os: 'Windows',
28+
os_version: '10'
2629
},
27-
sl_ie_10: {
28-
base: 'SauceLabs',
29-
browserName: 'internet explorer',
30-
platform: 'Windows 7',
31-
version: '10'
30+
bs_ie_10: {
31+
base: 'BrowserStack',
32+
browser: 'ie',
33+
browser_version: '10.0',
34+
os: 'Windows',
35+
os_version: '8'
36+
},
37+
bs_ie_9: {
38+
base: 'BrowserStack',
39+
browser: 'ie',
40+
browser_version: '9.0',
41+
os: 'Windows',
42+
os_version: '7'
3243
}
44+
// TODO: Figure out why these fail on browserstack
45+
// ,
46+
// bs_ie_8: {
47+
// base: 'BrowserStack',
48+
// browser: 'ie',
49+
// browser_version: '8.0',
50+
// os: 'Windows',
51+
// os_version: '7'
52+
// },
53+
// bs_ie_7: {
54+
// base: 'BrowserStack',
55+
// browser: 'ie',
56+
// browser_version: '7.0',
57+
// os: 'Windows',
58+
// os_version: 'XP'
59+
// }
3360
}
3461

3562
var browsers = []
3663

3764
if (process.env.TRAVIS) {
38-
if (TRAVIS_WITHOUT_SAUCE) {
65+
if (TRAVIS_WITHOUT_BS) {
3966
browsers.push('Firefox')
4067
} else {
4168
browsers = Object.keys(launchers)
@@ -67,7 +94,7 @@ module.exports = function (config) {
6794
// use dots reporter, as travis terminal does not support escaping sequences
6895
// possible values: 'dots', 'progress'
6996
// CLI --reporters progress
70-
reporters: ['progress', 'junit', 'saucelabs'],
97+
reporters: ['progress', 'junit'],
7198

7299
junitReporter: {
73100
// will be resolved to basePath (in the same way as files/exclude patterns)
@@ -122,7 +149,15 @@ module.exports = function (config) {
122149
'karma-firefox-launcher',
123150
'karma-junit-reporter',
124151
'karma-browserify',
125-
'karma-sauce-launcher'
126-
]
152+
'karma-browserstack-launcher'
153+
],
154+
155+
concurrency: 3,
156+
157+
forceJSONP: true,
158+
159+
browserStack: {
160+
project: 'Karma'
161+
}
127162
})
128163
}

test/client/karma.spec.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -339,9 +339,11 @@ describe('Karma', function () {
339339

340340
k.complete()
341341

342-
clock.tick(20)
343-
344-
assert.notEqual(iframe.src, CURRENT_URL)
342+
// clock.tick() does not work in IE 7
343+
setTimeout(function () {
344+
clock.tick(1)
345+
assert.notEqual(iframe.src, CURRENT_URL)
346+
}, 10)
345347
})
346348

347349
it('should not clear context window upon complete when clearContext config is false', function () {

test/client/stringify.spec.js

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -54,31 +54,38 @@ describe('stringify', function () {
5454
assert(stringify(obj).indexOf("{a: 'a'}") > -1)
5555

5656
obj = {constructor: null}
57-
assert(stringify(obj).indexOf('{constructor: null}') > -1)
57+
58+
// IE 7 serializes this to Object{}
59+
var s = stringify(obj)
60+
assert(s.indexOf('{constructor: null}') > -1 || s.indexOf('Object{}') > -1)
5861

5962
obj = Object.create(null)
6063
obj.a = 'a'
64+
6165
assert(stringify(obj).indexOf("{a: 'a'}") > -1)
6266
})
6367

6468
it('should serialize html', function () {
6569
var div = document.createElement('div')
6670

67-
assert.deepEqual(stringify(div), '<div></div>')
71+
assert.deepEqual(stringify(div).trim().toLowerCase(), '<div></div>')
6872

6973
div.innerHTML = 'some <span>text</span>'
70-
assert.deepEqual(stringify(div), '<div>some <span>text</span></div>')
74+
assert.deepEqual(stringify(div).trim().toLowerCase(), '<div>some <span>text</span></div>')
7175
})
7276

7377
it('should serialize DOMParser objects', function () {
74-
var parser = new DOMParser()
75-
var doc = parser.parseFromString('<test></test>', 'application/xml')
76-
assert.deepEqual(stringify(doc), '<test></test>')
78+
if (typeof DOMParser !== 'undefined') {
79+
// Test only works in IE 9 and above
80+
var parser = new DOMParser()
81+
var doc = parser.parseFromString('<test></test>', 'application/xml')
82+
assert.deepEqual(stringify(doc), '<test></test>')
83+
}
7784
})
7885

7986
it('should serialize across iframes', function () {
8087
var div = document.createElement('div')
81-
assert.deepEqual(__karma__.stringify(div), '<div></div>')
88+
assert.deepEqual(__karma__.stringify(div).trim().toLowerCase(), '<div></div>')
8289

8390
assert.deepEqual(__karma__.stringify([1, 2]), '[1, 2]')
8491
})

0 commit comments

Comments
 (0)