Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1621)

Unified Diff: third_party/WebKit/LayoutTests/http/tests/fetch/chromium/data-saver.html

Issue 2884183002: Add Data-Saver LayoutTest for Worker and SharedWorker (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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>

Powered by Google App Engine
This is Rietveld 408576698