<!DOCTYPE html>
<html>
<head>
<script src="/js-test-resources/js-test.js"></script>
</head>
<body onload="loadImage()">
<script>
description("Tests the behavior of origin-when-cross-origin referrer policy when same origin.");
jsTestIsAsync = true;

if (window.internals)
    internals.setResourceLoadStatisticsEnabled(false);

function loadImage() {
    // Should be the full URL because we are same-origin.
    let expected = "http://127.0.0.1:8000/referrer-policy-img/origin-when-cross-origin/same-origin.html";
    let img = new Image();
    img.referrerPolicy = "origin-when-cross-origin";
    img.onload = function() { testPassed('referrer is "' + expected + '"'); finishJSTest(); }
    img.onerror = function() { testFailed("referrer is not as expected"); finishJSTest(); }
    img.src = "http://127.0.0.1:8000/referrer-policy/resources/image.php?expected=" + expected;
    if (window.internals)
        internals.setResourceLoadStatisticsEnabled(true);
}

</script>
</body>
</html>
