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