<!DOCTYPE html>
<title>Same-origin prerendering can access cookies</title>
<meta name="timeout" content="long">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/utils.js"></script>
<script src="/common/dispatcher/dispatcher.js"></script>
<script src="/cookie-store/resources/cookie-test-helpers.js"></script>
<script src="../resources/utils.js"></script>
<script src="resources/utils.js"></script>

<body>
<script>
setup(() => assertSpeculationRulesIsSupported());

cookie_test(async t => {
  const {exec} = await create_prerendered_page(t);
  const initiator_cookie = 'initiator_cookie=exist';
  const prerender_cookie = 'prerender_cookie=exist';

  document.cookie = initiator_cookie;
  const result = await exec(() => {
    const result = document.cookie;
    document.cookie = "prerender_cookie=exist;path=/;";
    return result;
  });

  assert_equals(
    result, initiator_cookie,
    'prerendering page should be able to read from document cookies.');

  assert_equals(
    document.cookie, initiator_cookie + '; ' + prerender_cookie,
    'prerendering page should be able to write to document cookies');
}, 'prerendering page should be able to access cookies');

</script>
