blob: 76d6dd1bbc479ab703aa57a2443c20bf89ddd57a [file] [log] [blame]
<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>