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..76d6dd1bbc479ab703aa57a2443c20bf89ddd57a |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/http/tests/fetch/chromium/data-saver.html |
@@ -0,0 +1,126 @@ |
+<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})); |
+ |
+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'); |
+ 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'); |
+ 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> |