<!DOCTYPE html>
<title>Upgrade Insecure Requests: Basics.</title>
<script src="/js-test-resources/testharness.js"></script>
<script src="/js-test-resources/testharnessreport.js"></script>

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
<script>
if (window.testRunner)
    testRunner.dumpAsText();

// This is a bit of a hack. UPGRADE doesn't upgrade the port number, so we
// specify this non-existent URL ('http' over port 8443). If UPGRADE doesn't
// work, it won't load.
var insecureImage = "http://127.0.0.1:8443/resources/redirect.php?url=http://127.0.0.1:8443/security/resources/abe.png";

(function() {
    var t = async_test("Verify that images are upgraded after a redirection.");
    t.step(function () {
        var i = document.createElement('img');
        i.onload = t.step_func(function () {
            assert_equals(i.naturalHeight, 103, "Height.");
            assert_equals(i.naturalWidth, 76, "Width.");
            t.done();
        });
        i.onerror = t.step_func(function () {
            assert_unreached("The image should load successfully.");
        });

        i.src = insecureImage;
    });
}());

</script>
