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

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: incoporated falken's comment and add expected.txt for virtual/off-main-thread-fetch 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
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/http/tests/fetch/chromium/data-saver-expected.txt » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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>
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/http/tests/fetch/chromium/data-saver-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698