Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(490)

Side by Side Diff: LayoutTests/http/tests/serviceworker/resources/fetch-access-control-util.js

Issue 435453002: [ServiceWorker] Update formatting for tests. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 var SCOPE = 'resources/fetch-access-control-iframe.html'; 1 var SCOPE = 'resources/fetch-access-control-iframe.html';
2 var BASE_URL = 'http://127.0.0.1:8000/serviceworker/resources/fetch-access-contr ol.php?'; 2 var BASE_URL = 'http://127.0.0.1:8000/serviceworker/resources/fetch-access-contr ol.php?';
3 var OTHER_BASE_URL = 'http://localhost:8000/serviceworker/resources/fetch-access -control.php?'; 3 var OTHER_BASE_URL = 'http://localhost:8000/serviceworker/resources/fetch-access -control.php?';
4 var REDIRECT_URL = 'http://127.0.0.1:8000/serviceworker/resources/redirect.php?R edirect='; 4 var REDIRECT_URL = 'http://127.0.0.1:8000/serviceworker/resources/redirect.php?R edirect=';
5 var IFRAME_URL = 'http://127.0.0.1:8000/serviceworker/resources/fetch-access-con trol-iframe.html'; 5 var IFRAME_URL = 'http://127.0.0.1:8000/serviceworker/resources/fetch-access-con trol-iframe.html';
6 var WORKER_URL = 'http://127.0.0.1:8000/serviceworker/resources/fetch-access-con trol-worker.js'; 6 var WORKER_URL = 'http://127.0.0.1:8000/serviceworker/resources/fetch-access-con trol-worker.js';
7 var IFRAME_ORIGIN = 'http://127.0.0.1:8000'; 7 var IFRAME_ORIGIN = 'http://127.0.0.1:8000';
8 8
9 // Functions to check the result from the ServiceWorker. 9 // Functions to check the result from the ServiceWorker.
10 var checkFetchResult = function (expected, url, data) { 10 var checkFetchResult = function(expected, url, data) {
11 assert_equals(data.fetchResult, expected, url + ' should be ' + expected); 11 assert_equals(data.fetchResult, expected, url + ' should be ' + expected);
12 }; 12 };
13 var checkFetchResponseBody = function (hasBody, url, data) { 13 var checkFetchResponseBody = function(hasBody, url, data) {
14 assert_equals(data.fetchResult, 14 assert_equals(data.fetchResult,
15 'resolved', 15 'resolved',
16 'fetchResult must be resolved. url: ' + url); 16 'fetchResult must be resolved. url: ' + url);
17 if (hasBody) { 17 if (hasBody) {
18 assert_not_equals(data.body, '', 18 assert_not_equals(data.body, '',
19 'response must have body. url: ' + url); 19 'response must have body. url: ' + url);
20 } else { 20 } else {
21 assert_equals(data.body, '', 21 assert_equals(data.body, '',
22 'response must not have body. url: ' + url); 22 'response must not have body. url: ' + url);
23 } 23 }
24 }; 24 };
25 var checkFetchResponseHeader = function (name, expected, url, data) { 25 var checkFetchResponseHeader = function(name, expected, url, data) {
26 assert_equals(data.fetchResult, 26 assert_equals(data.fetchResult,
27 'resolved', 27 'resolved',
28 'fetchResult must be resolved. url: ' + url); 28 'fetchResult must be resolved. url: ' + url);
29 var exist = false; 29 var exist = false;
30 for (var i = 0; i < data.headers.length; ++i) { 30 for (var i = 0; i < data.headers.length; ++i) {
31 if (data.headers[i][0] === name) { 31 if (data.headers[i][0] === name) {
32 exist = true; 32 exist = true;
33 } 33 }
34 } 34 }
35 assert_equals(exist, 35 assert_equals(exist,
36 expected, 36 expected,
37 'header check failed url: ' + url + ' name: ' + name); 37 'header check failed url: ' + url + ' name: ' + name);
38 }; 38 };
39 var checkFetchResponseType = function (type, url, data) { 39 var checkFetchResponseType = function(type, url, data) {
40 assert_equals(data.fetchResult, 40 assert_equals(data.fetchResult,
41 'resolved', 41 'resolved',
42 'fetchResult must be resolved. url = ' + url); 42 'fetchResult must be resolved. url = ' + url);
43 assert_equals(data.type, 43 assert_equals(data.type,
44 type, 44 type,
45 'type must match. url: ' + url); 45 'type must match. url: ' + url);
46 }; 46 };
47 var fetchIgnored = checkFetchResult.bind(this, 'ignored'); 47 var fetchIgnored = checkFetchResult.bind(this, 'ignored');
48 var fetchResolved = checkFetchResult.bind(this, 'resolved'); 48 var fetchResolved = checkFetchResult.bind(this, 'resolved');
49 var fetchRejected = checkFetchResult.bind(this, 'rejected'); 49 var fetchRejected = checkFetchResult.bind(this, 'rejected');
50 var fetchError = checkFetchResult.bind(this, 'error'); 50 var fetchError = checkFetchResult.bind(this, 'error');
51 var hasBody = checkFetchResponseBody.bind(this, true); 51 var hasBody = checkFetchResponseBody.bind(this, true);
52 var noBody = checkFetchResponseBody.bind(this, false); 52 var noBody = checkFetchResponseBody.bind(this, false);
53 var hasContentLength = 53 var hasContentLength =
54 checkFetchResponseHeader.bind(this, 'content-length', true); 54 checkFetchResponseHeader.bind(this, 'content-length', true);
55 var noContentLength = 55 var noContentLength =
56 checkFetchResponseHeader.bind(this, 'content-length', false); 56 checkFetchResponseHeader.bind(this, 'content-length', false);
57 var hasServerHeader = 57 var hasServerHeader =
58 checkFetchResponseHeader.bind(this, 'x-serviceworker-serverheader', true); 58 checkFetchResponseHeader.bind(this, 'x-serviceworker-serverheader', true);
59 var noServerHeader = 59 var noServerHeader =
60 checkFetchResponseHeader.bind(this, 'x-serviceworker-serverheader', false); 60 checkFetchResponseHeader.bind(this, 'x-serviceworker-serverheader', false);
61 var typeBasic = checkFetchResponseType.bind(this, 'basic'); 61 var typeBasic = checkFetchResponseType.bind(this, 'basic');
62 var typeCors = checkFetchResponseType.bind(this, 'cors'); 62 var typeCors = checkFetchResponseType.bind(this, 'cors');
63 var typeOpaque = checkFetchResponseType.bind(this, 'opaque'); 63 var typeOpaque = checkFetchResponseType.bind(this, 'opaque');
64 64
65 // Functions to check the result of JSONP which is evaluated in 65 // Functions to check the result of JSONP which is evaluated in
66 // fetch-access-control-iframe.html by appending <script> element. 66 // fetch-access-control-iframe.html by appending <script> element.
67 var checkJsonpResult = function (expected, url, data) { 67 var checkJsonpResult = function(expected, url, data) {
68 assert_equals(data.jsonpResult, 68 assert_equals(data.jsonpResult,
69 expected, 69 expected,
70 url + ' jsonpResult should match'); 70 url + ' jsonpResult should match');
71 }; 71 };
72 var checkJsonpHeader = function (name, value, url, data) { 72 var checkJsonpHeader = function(name, value, url, data) {
73 assert_equals(data.jsonpResult, 73 assert_equals(data.jsonpResult,
74 'success', 74 'success',
75 url + ' jsonpResult must be success'); 75 url + ' jsonpResult must be success');
76 assert_equals(data.headers[name], 76 assert_equals(data.headers[name],
77 value, 77 value,
78 'Request header check failed url:' + url + ' name:' + name); 78 'Request header check failed url:' + url + ' name:' + name);
79 }; 79 };
80 var checkJsonpMethod = function (method, url, data) { 80 var checkJsonpMethod = function(method, url, data) {
81 assert_equals(data.jsonpResult, 81 assert_equals(data.jsonpResult,
82 'success', 82 'success',
83 url + ' jsonpResult must be success'); 83 url + ' jsonpResult must be success');
84 assert_equals(data.method, 84 assert_equals(data.method,
85 method, 85 method,
86 'Method must match url:' + url); 86 'Method must match url:' + url);
87 }; 87 };
88 var checkJsonpAuth = function (username, password, url, data) { 88 var checkJsonpAuth = function(username, password, url, data) {
89 assert_equals(data.jsonpResult, 89 assert_equals(data.jsonpResult,
90 'success', 90 'success',
91 url + ' jsonpResult must be success'); 91 url + ' jsonpResult must be success');
92 assert_equals(data.username, 92 assert_equals(data.username,
93 username, 93 username,
94 'Username must match. url: ' + url); 94 'Username must match. url: ' + url);
95 assert_equals(data.password, 95 assert_equals(data.password,
96 password, 96 password,
97 'Password must match. url: ' + url); 97 'Password must match. url: ' + url);
98 assert_equals(data.cookie, 98 assert_equals(data.cookie,
99 username, 99 username,
100 'Cookie must match. url: ' + url); 100 'Cookie must match. url: ' + url);
101 }; 101 };
102 var checkJsonpError = checkJsonpResult.bind(this, 'error'); 102 var checkJsonpError = checkJsonpResult.bind(this, 'error');
103 var checkJsonpSuccess = checkJsonpResult.bind(this, 'success'); 103 var checkJsonpSuccess = checkJsonpResult.bind(this, 'success');
104 var hasCustomHeader = 104 var hasCustomHeader =
105 checkJsonpHeader.bind(this, 'x-serviceworker-test', 'test'); 105 checkJsonpHeader.bind(this, 'x-serviceworker-test', 'test');
106 var noCustomHeader = 106 var noCustomHeader =
107 checkJsonpHeader.bind(this, 'x-serviceworker-test', undefined); 107 checkJsonpHeader.bind(this, 'x-serviceworker-test', undefined);
108 var methodIsGET = checkJsonpMethod.bind(this, 'GET'); 108 var methodIsGET = checkJsonpMethod.bind(this, 'GET');
109 var methodIsPOST = checkJsonpMethod.bind(this, 'POST'); 109 var methodIsPOST = checkJsonpMethod.bind(this, 'POST');
110 var methodIsPUT = checkJsonpMethod.bind(this, 'PUT'); 110 var methodIsPUT = checkJsonpMethod.bind(this, 'PUT');
111 var methodIsXXX = checkJsonpMethod.bind(this, 'XXX'); 111 var methodIsXXX = checkJsonpMethod.bind(this, 'XXX');
112 var authCheckNone = checkJsonpAuth.bind(this, 'undefined', 'undefined'); 112 var authCheckNone = checkJsonpAuth.bind(this, 'undefined', 'undefined');
113 var authCheck1 = checkJsonpAuth.bind(this, 'username1', 'password1'); 113 var authCheck1 = checkJsonpAuth.bind(this, 'username1', 'password1');
114 var authCheck2 = checkJsonpAuth.bind(this, 'username2', 'password2'); 114 var authCheck2 = checkJsonpAuth.bind(this, 'username2', 'password2');
115 115
116 function executeTests(test, test_targets) { 116 function executeTests(test, test_targets) {
117 test.step(function() { 117 test.step(function() {
118 var login1 = 118 var login1 =
119 test_login(test, 'http://127.0.0.1:8000', 'username1', 'password1'); 119 test_login(test, 'http://127.0.0.1:8000', 'username1', 'password1');
120 var login2 = 120 var login2 =
121 test_login(test, 'http://localhost:8000', 'username2', 'password2'); 121 test_login(test, 'http://localhost:8000', 'username2', 'password2');
122 var workerScript = 'resources/fetch-access-control-worker.js'; 122 var workerScript = 'resources/fetch-access-control-worker.js';
123 var worker = undefined; 123 var worker = undefined;
124 var frameWindow = {}; 124 var frameWindow = {};
125 var counter = 0; 125 var counter = 0;
126 window.addEventListener('message', test.step_func(onMessage), false); 126 window.addEventListener('message', test.step_func(onMessage), false);
127 127
128 Promise.all([login1, login2]) 128 Promise.all([login1, login2])
129 .then(function() { 129 .then(function() {
130 return service_worker_unregister_and_register(test, 130 return service_worker_unregister_and_register(test,
131 workerScript, 131 workerScript,
132 SCOPE); 132 SCOPE);
133 }) 133 })
134 .then(function(registration) { 134 .then(function(registration) {
135 return wait_for_update(test, registration); 135 return wait_for_update(test, registration);
136 }) 136 })
137 .then(function(sw) { 137 .then(function(sw) {
138 worker = sw; 138 worker = sw;
139 var messageChannel = new MessageChannel(); 139 var messageChannel = new MessageChannel();
140 messageChannel.port1.onmessage = test.step_func(onWorkerMessage); 140 messageChannel.port1.onmessage = test.step_func(onWorkerMessage);
141 sw.postMessage( 141 sw.postMessage(
142 {port: messageChannel.port2}, [messageChannel.port2]); 142 {port: messageChannel.port2}, [messageChannel.port2]);
143 return wait_for_state(test, sw, 'activated'); 143 return wait_for_state(test, sw, 'activated');
144 }) 144 })
145 .then(function() { 145 .then(function() {
146 return with_iframe(SCOPE); 146 return with_iframe(SCOPE);
147 }) 147 })
148 .then(function(frame) { 148 .then(function(frame) {
149 frameWindow = frame.contentWindow; 149 frameWindow = frame.contentWindow;
150 // Start tests. 150 // Start tests.
151 loadNext(); 151 loadNext();
152 }) 152 })
153 .catch(unreached_rejection(test)); 153 .catch(unreached_rejection(test));
154 154
155 var readyFromWorkerReceived = undefined; 155 var readyFromWorkerReceived = undefined;
156 var resultFromWorkerReceived = undefined; 156 var resultFromWorkerReceived = undefined;
157 var resultFromIframeReceived = undefined; 157 var resultFromIframeReceived = undefined;
158 158
159 function onMessage(e) { 159 function onMessage(e) {
160 // The message is sent from fetch-access-control-iframe.html in report() 160 // The message is sent from fetch-access-control-iframe.html in report()
161 // which is called by appending <script> element which source code is 161 // which is called by appending <script> element which source code is
162 // generated by fetch-access-control.php. 162 // generated by fetch-access-control.php.
163 if (TEST_TARGETS[counter][2]) { 163 if (TEST_TARGETS[counter][2]) {
164 TEST_TARGETS[counter][2].forEach(function(checkFunc) { 164 TEST_TARGETS[counter][2].forEach(function(checkFunc) {
165 checkFunc.call(this, 165 checkFunc.call(this,
166 TEST_TARGETS[counter][0], 166 TEST_TARGETS[counter][0],
167 e.data); 167 e.data);
168 }); 168 });
169 }
170 resultFromIframeReceived();
169 } 171 }
170 resultFromIframeReceived();
171 }
172 172
173 function onWorkerMessage(e) { 173 function onWorkerMessage(e) {
174 // The message is sent from the ServiceWorker. 174 // The message is sent from the ServiceWorker.
175 var message = e.data; 175 var message = e.data;
176 if (message.msg === 'READY') { 176 if (message.msg === 'READY') {
177 readyFromWorkerReceived(); 177 readyFromWorkerReceived();
178 return; 178 return;
179 }
180 TEST_TARGETS[counter][1].forEach(function(checkFunc) {
181 checkFunc.call(this,
182 TEST_TARGETS[counter][0],
183 message);
184 });
185 resultFromWorkerReceived();
179 } 186 }
180 TEST_TARGETS[counter][1].forEach(function(checkFunc) {
181 checkFunc.call(this,
182 TEST_TARGETS[counter][0],
183 message);
184 });
185 resultFromWorkerReceived();
186 }
187 187
188 function loadNext() { 188 function loadNext() {
189 var workerPromise = new Promise(function(resolve, reject) { 189 var workerPromise = new Promise(function(resolve, reject) {
190 resultFromWorkerReceived = resolve; 190 resultFromWorkerReceived = resolve;
191 }); 191 });
192 var iframePromise = new Promise(function(resolve, reject) { 192 var iframePromise = new Promise(function(resolve, reject) {
193 resultFromIframeReceived = resolve; 193 resultFromIframeReceived = resolve;
194 }); 194 });
195 Promise.all([workerPromise, iframePromise]) 195 Promise.all([workerPromise, iframePromise])
196 .then(test.step_func(function() { 196 .then(test.step_func(function() {
197 ++counter; 197 ++counter;
198 if (counter === TEST_TARGETS.length) { 198 if (counter === TEST_TARGETS.length) {
199 service_worker_unregister_and_done(test, SCOPE); 199 service_worker_unregister_and_done(test, SCOPE);
200 } else { 200 } else {
201 loadNext(); 201 loadNext();
202 } 202 }
203 })); 203 }));
204 (new Promise(function(resolve, reject) { 204 (new Promise(function(resolve, reject) {
205 readyFromWorkerReceived = resolve; 205 readyFromWorkerReceived = resolve;
206 worker.postMessage({msg: 'START TEST CASE'}); 206 worker.postMessage({msg: 'START TEST CASE'});
207 })) 207 }))
208 .then(test.step_func(function() { 208 .then(test.step_func(function() {
209 frameWindow.postMessage( 209 frameWindow.postMessage(
210 {url: TEST_TARGETS[counter][0]}, 210 {url: TEST_TARGETS[counter][0]},
211 IFRAME_ORIGIN); 211 IFRAME_ORIGIN);
212 })); 212 }));
213 } 213 }
214 }); 214 });
215 } 215 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698