Index: LayoutTests/http/tests/serviceworker/resources/fetch-request-xhr-iframe.html |
diff --git a/LayoutTests/http/tests/serviceworker/resources/fetch-request-xhr-iframe.html b/LayoutTests/http/tests/serviceworker/resources/fetch-request-xhr-iframe.html |
index 3e41ae03753d1431ff86d4b300d166f9a7901fdf..761133602c877f42079d716432828e123c7e04ec 100644 |
--- a/LayoutTests/http/tests/serviceworker/resources/fetch-request-xhr-iframe.html |
+++ b/LayoutTests/http/tests/serviceworker/resources/fetch-request-xhr-iframe.html |
@@ -1,6 +1,8 @@ |
<script src="../../resources/testharness.js"></script> |
<script src="test-helpers.js?pipe=sub"></script> |
<script> |
+var host_info = get_host_info(); |
+ |
function get_boundary(headers) { |
var reg = new RegExp('multipart\/form-data; boundary=(.*)'); |
for (var i = 0; i < headers.length; ++i) { |
@@ -34,7 +36,7 @@ function create_file_system_file(file_name, data) { |
}); |
} |
-function xhr_send(method, data) { |
+function xhr_send(url_base, method, data, with_credentials) { |
return new Promise(function(resolve, reject) { |
var xhr = new XMLHttpRequest(); |
xhr.onload = function() { |
@@ -44,13 +46,16 @@ function xhr_send(method, data) { |
reject('XHR should succeed.'); |
}; |
xhr.responseType = 'text'; |
- xhr.open(method, './dummy?test', true); |
+ if (with_credentials) { |
+ xhr.withCredentials = true; |
+ } |
+ xhr.open(method, url_base + '/dummy?test', true); |
xhr.send(data); |
}); |
} |
function string_test() { |
- return xhr_send('POST', 'test string') |
+ return xhr_send(host_info['HTTP_ORIGIN'], 'POST', 'test string', false) |
.then(function(response) { |
assert_equals(response.method, 'POST'); |
assert_equals(response.body, 'test string'); |
@@ -58,7 +63,8 @@ function string_test() { |
} |
function blob_test() { |
- return xhr_send('POST', new Blob(['test blob'])) |
+ return xhr_send(host_info['HTTP_ORIGIN'], 'POST', new Blob(['test blob']), |
+ false) |
.then(function(response) { |
assert_equals(response.method, 'POST'); |
assert_equals(response.body, 'test blob'); |
@@ -66,7 +72,7 @@ function blob_test() { |
} |
function custom_method_test() { |
- return xhr_send('XXX', 'test string xxx') |
+ return xhr_send(host_info['HTTP_ORIGIN'], 'XXX', 'test string xxx', false) |
.then(function(response){ |
assert_equals(response.method, 'XXX'); |
assert_equals(response.body, 'test string xxx'); |
@@ -81,7 +87,7 @@ function form_data_test() { |
formData.append('sample blob', new Blob(['blob content'])); |
formData.append('sample file', new File(['file content'], 'file.dat')); |
formData.append('sample fs file', file_system_file); |
- return xhr_send('POST', formData); |
+ return xhr_send(host_info['HTTP_ORIGIN'], 'POST', formData, false); |
}) |
.then(function(response) { |
assert_equals(response.method, 'POST'); |
@@ -114,12 +120,32 @@ function form_data_test() { |
}); |
} |
+function mode_test() { |
+ return xhr_send(host_info['HTTP_ORIGIN'], 'GET', '', false) |
+ .then(function(response){ |
+ assert_equals(response.mode, 'cors'); |
+ return xhr_send(host_info['HTTP_ORIGIN'], 'GET', '', true); |
+ }) |
+ .then(function(response){ |
+ assert_equals(response.mode, 'cors'); |
+ return xhr_send(host_info['HTTP_REMOTE_ORIGIN'], 'GET', '', false); |
+ }) |
+ .then(function(response){ |
+ assert_equals(response.mode, 'cors'); |
+ return xhr_send(host_info['HTTP_REMOTE_ORIGIN'], 'GET', '', true); |
+ }) |
+ .then(function(response){ |
+ assert_equals(response.mode, 'cors'); |
+ }); |
+} |
+ |
window.addEventListener('message', function(evt) { |
var port = evt.ports[0]; |
string_test() |
.then(blob_test) |
.then(custom_method_test) |
.then(form_data_test) |
+ .then(mode_test) |
.then(function() { port.postMessage({results: 'finish'}); }) |
.catch(function(e) { port.postMessage({results: 'failure:' + e}); }); |
}); |