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> |