Files
tubestation/testing/web-platform/tests/client-hints/accept-ch-change.https.html
Aaron Tagliaboschi 78bb13fbe2 Bug 1609965 [wpt PR 21235] - [client-hints] Refactor, rename, and re-everything else the WPTs, a=testonly
Automatic update from web-platform-tests
[client-hints] Refactor, rename, and re-everything else the WPTs

A fairly long overdue rework of the client hint WPTs. Most of
the renaming is on it's own patchsets, so look through each one
individually if there's too much to see anything useful.

Tests deleted because of other coverage:

* accept_ch.tentative.https.html:
      accept-ch-stickiness/same-origin-navigation.https.html
* http_equiv_accept_ch.tentative.https.html:
      accept-ch-stickiness/http-equiv-same-origin-subresource.https.html
* http_equiv_accept_ch.tentative.sub.https.html:
      accept-ch-change.https.html

Bug: 1042828
Change-Id: Ie52abfac485b8e974f4a93a06f3d6d3b845a2010
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2003338
Commit-Queue: Aaron Tagliaboschi <aarontag@chromium.org>
Reviewed-by: Yoav Weiss <yoavweiss@chromium.org>
Cr-Commit-Position: refs/heads/master@{#734635}

--

wpt-commits: 2c1354b97e423bd8f7da74ae50cd79161f858c4f
wpt-pr: 21235
2020-01-31 20:40:03 +00:00

76 lines
2.9 KiB
HTML

<html>
<title>Accept-CH test</title>
<body>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/open-and-add-load-event.js"></script>
<!--
Apart from this webpage, the test opens two more html web page. One test is run
in this web page, and two in the other web pages.
-->
<script>
// This test fetches resources/accept_ch.html. The response headers to
// that webpage contains only the Accept-CH header. These preferences should be
// stored so that the next request to the same origin is sent with the
// requested client hint headers.
// Next, to verify that the origin preferences were persisted by the user
// agent, this test fetches resources/expect_client_hints_headers.html in a new
// window. Fetching of resources/expect_client_hints_headers.html verifies that
// the user agent does send the client hints in the request headers.
// After this, the same is done but with a differet Accept-CH header, to test
// that the preferences change after receiving a different header.
// First, verify the initial state to make sure that the browser does not have
// client hints preferences cached from a previous run of the test.
promise_test(t => {
return fetch("resources/echo-client-hints-received.py").then(r => {
assert_equals(r.status, 200)
// Verify that the browser did not include client hints in the request
// headers when fetching echo_client_hints_received.py.
assert_false(r.headers.has("device-memory-received"), "device-memory-received");
assert_false(r.headers.has("viewport-width-received"), "viewport-width-received");
});
}, "Precondition: Test that the browser does not have client hints preferences cached");
function acceptChLoaded() {
// Open a new window. Verify that the user agent does attach the client hints.
open_and_add_load_event("resources/expect-client-hints-headers.html", changeCh);
}
function changeCh() {
// Use new window to overwrite client hint preferences, then verify new
// settings have been saved
open_and_add_load_event("resources/accept-ch-different.html", verifyChangeCh);
}
function verifyChangeCh() {
// Use new window to overwrite client hint preferences, then verify new
// settings have been saved
open_and_add_load_event("resources/expect-client-hints-headers-different.html", clearCh);
}
function clearCh() {
// Use new window to overwrite client hint preferences, then verify new
// settings have been saved
open_and_add_load_event("resources/accept-ch-empty.html", verifyClearCh);
}
function verifyClearCh() {
// Use new window to overwrite client hint preferences, then verify new
// settings have been saved
open_and_add_load_event("resources/do-not-expect-client-hints.html", null);
}
// Fetching this webpage should cause user-agent to persist client hint
// preferences for the origin.
open_and_add_load_event("resources/accept-ch.html", acceptChLoaded);
</script>
</body>
</html>