Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/http/tests/fetch/chromium/data-saver.html |
| diff --git a/third_party/WebKit/LayoutTests/http/tests/fetch/chromium/data-saver.html b/third_party/WebKit/LayoutTests/http/tests/fetch/chromium/data-saver.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..45dda6959d5e4e18fd9c0d6b4c6d18f7486772f6 |
| --- /dev/null |
| +++ b/third_party/WebKit/LayoutTests/http/tests/fetch/chromium/data-saver.html |
| @@ -0,0 +1,127 @@ |
| +<html> |
| +<title>Tests for 'Save-Data' header.</title> |
| +<script src="/resources/testharness.js"></script> |
| +<script src="/resources/testharnessreport.js"></script> |
| +<script> |
| + |
| + |
| +var CHECK_PATH = './resources/check-save-data-header.php'; |
| +var methods = ['GET', 'POST', 'PUT']; |
| +var requests = |
| + methods.map(method => new Request(CHECK_PATH, {method: method})); |
|
falken
2017/05/16 08:45:52
METHODS and REQUESTS so it's easier to tell they a
horo
2017/05/16 10:25:22
Done.
|
| + |
| +promise_test(t => { |
| + window.internals.settings.setDataSaverEnabled(false); |
| + return Promise.all(requests.map(request => fetch(request.clone()))) |
| + .then(responses => Promise.all(responses.map(response => response.text()))) |
| + .then(texts => { |
| + for (var i = 0; i < methods.length; ++i) { |
| + assert_equals( |
| + texts[i], 'No Save-Data', |
| + 'Save-Data header should not be sent when disabled. method: ' + |
| + methods[i]); |
| + } |
| + }); |
| +}, 'fetch() from document with Data-Saver disabled.'); |
| + |
| +promise_test(t => { |
| + window.internals.settings.setDataSaverEnabled(true); |
| + return Promise.all(requests.map(request => fetch(request.clone()))) |
| + .then(responses => Promise.all(responses.map(response => response.text()))) |
| + .then(texts => { |
| + for (var i = 0; i < methods.length; ++i) { |
| + assert_equals( |
| + texts[i], 'Save-Data: on', |
| + 'Save-Data header should be sent when disabled. method: ' + |
| + methods[i]); |
| + } |
| + }); |
| +}, 'fetch() from document with Data-Saver enabled.'); |
| + |
| +promise_test(t => { |
| + window.internals.settings.setDataSaverEnabled(false); |
| + var worker = |
| + new Worker('./resources/data-saver-worker.php?dedicated-disabled') |
|
falken
2017/05/16 08:45:52
semi-colon
horo
2017/05/16 10:25:22
Done.
|
| + return new Promise(resolve => |
| + worker.addEventListener('message', resolve)) |
| + .then(msg => { |
| + var result = msg.data; |
| + assert_equals( |
| + result['worker_script_header'], 'No Save-Data', |
| + 'Save-Data header should not be sent for worker script when ' + |
| + 'disabled.'); |
| + for (var i = 0; i < methods.length; ++i) { |
| + assert_equals( |
| + result[methods[i]], 'No Save-Data', |
| + 'Save-Data header should not be sent when disabled. method: ' + |
| + methods[i]); |
| + } |
| + }); |
| +}, 'fetch() from dedicated worker with Data-Saver disabled.'); |
| + |
| +promise_test(t => { |
| + window.internals.settings.setDataSaverEnabled(true); |
| + var worker = |
| + new Worker('./resources/data-saver-worker.php?dedicated-enabled') |
|
falken
2017/05/16 08:45:52
semi-colon
horo
2017/05/16 10:25:22
Done.
|
| + return new Promise(resolve => |
| + worker.addEventListener('message', resolve)) |
| + .then(msg => { |
| + var result = msg.data; |
| + assert_equals( |
| + result['worker_script_header'], 'Save-Data: on', |
| + 'Save-Data header should be sent for worker script when enabled.'); |
| + for (var i = 0; i < methods.length; ++i) { |
| + assert_equals( |
| + result[methods[i]], 'Save-Data: on', |
| + 'Save-Data header should be sent when enabled. method: ' + |
| + methods[i]); |
| + } |
| + }); |
| +}, 'fetch() from dedicated worker with Data-Saver enabled.'); |
| + |
| +promise_test(t => { |
| + window.internals.settings.setDataSaverEnabled(false); |
| + var worker = |
| + new SharedWorker('./resources/data-saver-worker.php?shared-disabled') |
| + return new Promise(resolve => { |
| + worker.port.addEventListener('message', resolve); |
| + worker.port.start(); |
| + }) |
| + .then(msg => { |
| + var result = msg.data; |
| + assert_equals( |
| + result['worker_script_header'], 'No Save-Data', |
| + 'Save-Data header should not be sent for worker script when ' + |
| + 'disabled.'); |
| + for (var i = 0; i < methods.length; ++i) { |
| + assert_equals( |
| + result[methods[i]], 'No Save-Data', |
| + 'Save-Data header should not be sent when disabled. method: ' + |
| + methods[i]); |
| + } |
| + }); |
| +}, 'fetch() from shared worker with Data-Saver disabled.'); |
| + |
| +promise_test(t => { |
| + window.internals.settings.setDataSaverEnabled(true); |
| + var worker = |
| + new SharedWorker('./resources/data-saver-worker.php?shared-enabled') |
| + return new Promise(resolve => { |
| + worker.port.addEventListener('message', resolve); |
| + worker.port.start(); |
| + }) |
| + .then(msg => { |
| + var result = msg.data; |
| + assert_equals( |
| + result['worker_script_header'], 'Save-Data: on', |
| + 'Save-Data header should be sent for worker script when enabled.'); |
| + for (var i = 0; i < methods.length; ++i) { |
| + assert_equals( |
| + result[methods[i]], 'Save-Data: on', |
| + 'Save-Data header should be sent when enabled. method: ' + |
| + methods[i]); |
| + } |
| + }); |
| +}, 'fetch() from shared worker with Data-Saver enabled.'); |
| + |
| +</script> |