<!DOCTYPE html>
<script src="/js-test-resources/testharness.js"></script>
<script src="/js-test-resources/testharnessreport.js"></script>
<script src="../resources/testharness-helpers.js"></script>
<script>
if (window.location.hostname == "127.0.0.1") {
    document.cookie = STRICT_DOM + "=1; SameSite=Strict; Max-Age=100; path=/";
    document.cookie = IMPLICIT_STRICT_DOM + "=1; SameSite; Max-Age=100; path=/";
    document.cookie = STRICT_BECAUSE_INVALID_SAMESITE_VALUE + "=1; SameSite=invalid; Max-Age=100; path=/";
    document.cookie = LAX_DOM + "=1; SameSite=Lax; Max-Age=100; path=/";
    document.cookie = NORMAL_DOM + "=1; Max-Age=100; path=/";
    window.location.hostname = "localhost";
} else {
    async_test(t => {
        var i = window.open("http://127.0.0.1:8000/cookies/resources/post-cookies-to-opener.py");
        window.addEventListener("message", t.step_func_done(e => {
            assert_equals(e.data.http[STRICT_DOM], undefined, "strict");
            assert_equals(e.data.http[IMPLICIT_STRICT_DOM], "1", "implicit-strict");
            assert_equals(e.data.http[STRICT_BECAUSE_INVALID_SAMESITE_VALUE], "1", "strict-because-invalid-SameSite-value");
            assert_equals(e.data.http[LAX_DOM], "1", "lax");
            assert_equals(e.data.http[NORMAL_DOM], "1", "normal");
            assert_equals(normalizeCookie(e.data.document), normalizeCookie(IMPLICIT_STRICT_DOM + "=1; " + LAX_DOM + "=1; " + NORMAL_DOM + "=1; " + STRICT_BECAUSE_INVALID_SAMESITE_VALUE + "=1; " + STRICT_DOM + "=1"));
        }));
    }, "'127.0.0.1' is not same-site with 'localhost', so strict samesite cookies are not sent.");
}
</script>
