OLD | NEW |
---|---|
(Empty) | |
1 // This helper will setup a small test framework that will use TESTS and run | |
2 // them sequentially and call self.postMessage('quit') when done. | |
3 // This helper also exposes |client|, |postMessage()|, |runNextTestOrQuit()|, | |
4 // |synthesizeNotificationClick()| and |initialize()|. | |
5 importScripts('sw-test-helpers.js'); | |
6 | |
7 function initializeClient() { | |
8 synthesizeNotificationClick().then(function(e) { | |
9 clients.openWindow('blank.html').then(function(c) { | |
10 return c; | |
11 }).then(runNextTestOrQuit); | |
12 }); | |
13 } | |
14 | |
15 var TESTS = [ | |
16 | |
17 initializeClient, | |
18 | |
19 function testNavigateControlledClient(client) { | |
20 synthesizeNotificationClick().then(function(e) { | |
21 client.navigate('test.html').then(function(c) { | |
22 self.postMessage('navigate() can navigate controlled client'); | |
23 self.postMessage('navigate() result: ' + c); | |
24 self.postMessage(' url: ' + c.url); | |
25 self.postMessage(' visibilityState: ' + c.visibilityState); | |
26 self.postMessage(' focused: ' + c.focused); | |
27 self.postMessage(' frameType: ' + c.frameType); | |
28 return c; | |
29 }).then(runNextTestOrQuit); | |
30 }); | |
31 }, | |
32 | |
33 initializeClient, | |
34 | |
35 function testNavigateNotControlledClient(client) { | |
36 synthesizeNotificationClick().then(function(e) { | |
37 client.navigate('/').then(function(c) { | |
38 self.postMessage('navigate() can navigate not controlled client' ); | |
nhiroki
2015/07/10 08:38:57
Could you wrap this line at line 80? Our style gui
| |
39 self.postMessage('navigate() result: ' + c); | |
40 return c; | |
41 }).then(runNextTestOrQuit); | |
42 }); | |
43 }, | |
44 | |
45 initializeClient, | |
46 | |
47 function testNavigateCrossOriginClient(client) { | |
48 synthesizeNotificationClick().then(function(e) { | |
49 client.navigate('https://test.com/').then(function(c) { | |
nhiroki
2015/07/10 08:38:57
"https://test.com/" is a real domain. Could you ch
| |
50 self.postMessage('navigate() can navigate cross origin client'); | |
nhiroki
2015/07/10 08:38:57
"can navigate to a cross origin URL" ?
| |
51 self.postMessage('navigate() result: ' + c); | |
52 }).then(runNextTestOrQuit); | |
53 }); | |
54 }, | |
55 | |
56 initializeClient, | |
57 | |
58 function testWithNoNotificationClick(client) { | |
59 client.navigate('test.html').catch(function(e) { | |
60 self.postMessage('navigate() can not navigate without a user interac tion'); | |
nhiroki
2015/07/10 08:38:57
I think that the spec doesn't require a user inter
| |
61 self.postMessage('navigate() error is ' + e.name); | |
62 return client; | |
63 }).then(runNextTestOrQuit); | |
64 }, | |
65 | |
66 function testNavigateInvalidURL(client) { | |
67 synthesizeNotificationClick().then(function() { | |
68 client.navigate('http://[test].com').catch(function(e) { | |
69 self.postMessage('navigate() can not navigate an invalid url'); | |
nhiroki
2015/07/10 08:38:57
"navigate to an invalid url"
| |
70 self.postMessage('navigate() error is ' + e.name); | |
71 return client; | |
72 }).then(runNextTestOrQuit); | |
73 }); | |
74 }, | |
75 | |
76 function testNavigateViewSource(client) { | |
77 synthesizeNotificationClick().then(function() { | |
78 client.navigate('view-source://http://test.com').catch(function(e) { | |
79 self.postMessage('navigate() can not navigate view-source scheme '); | |
nhiroki
2015/07/10 08:38:57
ditto.
| |
80 self.postMessage('navigate() error is ' + e.name); | |
81 return client; | |
82 }).then(runNextTestOrQuit); | |
83 }); | |
84 }, | |
85 | |
86 function testNavigateFileScheme(client) { | |
87 synthesizeNotificationClick().then(function() { | |
88 client.navigate('file:///').catch(function(e) { | |
89 self.postMessage('navigate() can not navigate file scheme'); | |
nhiroki
2015/07/10 08:38:57
ditto.
| |
90 self.postMessage('navigate() error is ' + e.name); | |
91 return client; | |
92 }).then(runNextTestOrQuit); | |
93 }); | |
94 }, | |
95 | |
96 function testNavigateAboutBlank(client) { | |
97 synthesizeNotificationClick().then(function(e) { | |
98 client.navigate('about:blank').catch(function(e) { | |
99 self.postMessage('navigate() can not navigate about:blank'); | |
nhiroki
2015/07/10 08:38:57
ditto.
| |
100 self.postMessage('navigate() error is ' + e.name); | |
101 return client; | |
102 }).then(runNextTestOrQuit); | |
103 }); | |
104 }, | |
105 | |
106 function testNavigateAboutCrash(client) { | |
107 synthesizeNotificationClick().then(function(e) { | |
108 client.navigate('about:crash').catch(function(e) { | |
109 self.postMessage('navigate() can not navigate about:crash'); | |
nhiroki
2015/07/10 08:38:57
ditto.
| |
110 self.postMessage('navigate() error is ' + e.name); | |
111 return client; | |
112 }).then(runNextTestOrQuit); | |
113 }); | |
114 } | |
115 ]; | |
116 | |
117 self.onmessage = function(e) { | |
118 if (e.data == 'start') { | |
119 initialize().then(runNextTestOrQuit); | |
120 } else { | |
121 initialize().then(function() { | |
122 self.postMessage('received unexpected message'); | |
123 self.postMessage('quit'); | |
124 }); | |
125 } | |
126 }; | |
OLD | NEW |