<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <script src="/js-test-resources/testharness.js"></script>
    <script src="/js-test-resources/testharnessreport.js"></script>
    <script src="resources/sri-utilities.js"></script>
</head>
<body>
    <div id="log"></div>
    <div id="container"></div>
<script>

var main_host = '127.0.0.1';
var remote_host = 'localhost';
var port_string = "8000";
var main_host_and_port = main_host + ':' + port_string;
var remote_host_and_port = remote_host + ':' + port_string;

var crossorigin_anon_script = location.protocol + '//' + remote_host_and_port + '/subresource-integrity/resources/crossorigin-anon-script.js';
var crossorigin_creds_script = location.protocol + '//' + remote_host_and_port + '/subresource-integrity/resources/crossorigin-creds-script.js';
var crossorigin_ineligible_script = location.protocol + '//' + remote_host_and_port + '/subresource-integrity/resources/crossorigin-ineligible-script.js';

// Script tests from web-platform-tests/subresource-integrity

new SRIScriptTest(
    true,
    "Same-origin with correct sha256 hash.",
    "resources/matching-digest.js",
    "sha256-U9WYDtBWkcHx13+9UKk/3Q5eoqDc4YGxYb07EPWzb9E="
);

new SRIScriptTest(
    true,
    "Same-origin with correct sha384 hash.",
    "resources/matching-digest.js",
    "sha384-BDRTPSywZFyxfLEAzaLcL4FfERBgJgXfEkuT0r04LG93Yqn1PWNYPZMomaqEfE3H"
);

new SRIScriptTest(
    true,
    "Same-origin with correct sha512 hash.",
    "resources/matching-digest.js",
    "sha512-geByvIIRspbnUnwooKGNNCb39nvg+EW0O9hDScTXeo/9pVZztLSUYU3LNV6H0lZapo8bCJUpyPPLAzE9fDzpxg=="
);

new SRIScriptTest(
    true,
    "Same-origin with empty integrity.",
    "resources/matching-digest.js",
    ""
);

new SRIScriptTest(
    false,
    "Same-origin with incorrect hash.",
    "resources/non-matching-digest.js",
    "sha256-U9WYDtBWkcHx13+9UKk/3Q5eoqDc4YGxYb07EPWzb9e="
);

new SRIScriptTest(
    true,
    "Same-origin with multiple sha256 hashes, including correct.",
    "resources/matching-digest.js",
    "sha256-U9WYDtBWkcHx13+9UKk/3Q5eoqDc4YGxYb07EPWzb9E= sha256-deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdead"
);

new SRIScriptTest(
    true,
    "Same-origin with multiple sha256 hashes, including unknown algorithm.",
    "resources/matching-digest.js",
    "sha256-U9WYDtBWkcHx13+9UKk/3Q5eoqDc4YGxYb07EPWzb9E= foo666-deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdead"
);

new SRIScriptTest(
    true,
    "Same-origin with sha256 mismatch, sha512 match",
    "resources/matching-digest.js",
    "sha512-geByvIIRspbnUnwooKGNNCb39nvg+EW0O9hDScTXeo/9pVZztLSUYU3LNV6H0lZapo8bCJUpyPPLAzE9fDzpxg== sha256-deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdead"
);

new SRIScriptTest(
    false,
    "Same-origin with sha256 match, sha512 mismatch",
    "resources/matching-digest.js",
    "sha512-deadbeefspbnUnwooKGNNCb39nvg+EW0O9hDScTXeo/9pVZztLSUYU3LNV6H0lZapo8bCJUpyPPLAzE9fDzpxg== sha256-U9WYDtBWkcHx13+9UKk/3Q5eoqDc4YGxYb07EPWzb9E="
);

new SRIScriptTest(
    true,
    "<crossorigin='anonymous'> with correct hash, ACAO: *",
    crossorigin_anon_script,
    "sha256-51AjITq701Y0yKSx3/UoIKtIY2UQ9+H8WGyyMuOWOC0=",
    "anonymous"
);

new SRIScriptTest(
    false,
    "<crossorigin='anonymous'> with incorrect hash, ACAO: *",
    crossorigin_anon_script,
    "sha256-deadbeefcSLlbFZCj1OACLxTxVck2TOrBTEdUbwz1yU=",
    "anonymous"
);

new SRIScriptTest(
    true,
    "<crossorigin='use-credentials'> with correct hash, CORS-eligible",
    crossorigin_creds_script,
    "sha256-IaGApVboXPQxVSm2wVFmhMq1Yu37gWklajgMdxKLIvc=",
    "use-credentials"
);

new SRIScriptTest(
    false,
    "<crossorigin='use-credentials'> with incorrect hash CORS-eligible",
    crossorigin_creds_script,
    "sha256-deadbeef2S+pTRZgiw3DWrhC6JLDlt2zRyGpwH7unU8=",
    "use-credentials"
);

new SRIScriptTest(
    false,
    "<crossorigin='anonymous'> with CORS-ineligible resource",
    crossorigin_ineligible_script,
    "sha256-F5fXKTX7SiWjtgybxiBZIo2qhh2WiQnNx372E60XrOo=",
    "anonymous"
);

new SRIScriptTest(
    false,
    "Cross-origin, not CORS request, with correct hash",
    crossorigin_anon_script,
    "sha256-51AjITq701Y0yKSx3/UoIKtIY2UQ9+H8WGyyMuOWOC0="
);

new SRIScriptTest(
    false,
    "Cross-origin, not CORS request, with hash mismatch",
    crossorigin_anon_script,
    "sha256-deadbeef01Y0yKSx3/UoIKtIY2UQ9+H8WGyyMuOWOC0="
);

new SRIScriptTest(
    true,
    "Cross-origin, empty integrity",
    crossorigin_anon_script,
    ""
);

new SRIScriptTest(
    true,
    "Same-origin with correct hash, options.",
    "resources/matching-digest.js",
    "sha256-U9WYDtBWkcHx13+9UKk/3Q5eoqDc4YGxYb07EPWzb9E=?foo=bar?spam=eggs"
);

new SRIScriptTest(
    true,
    "Same-origin with unknown algorithm only.",
    "resources/matching-digest.js",
    "foo666-U9WYDtBWkcHx13+9UKk/3Q5eoqDc4YGxYb07EPWzb9E="
);

// WebKit additions to the web-platform-tests test cases.
// FIXME: Upstream these additional tests to the official web-platform-tests repository.

new SRIScriptTest(
    true,
    "Same-origin with correct sha256 hash, using base64URL encoding.",
    "resources/matching-digest.js",
    "sha256-U9WYDtBWkcHx13-9UKk_3Q5eoqDc4YGxYb07EPWzb9E="
);

new SRIScriptTest(
    false,
    "Same-origin with correct sha256 hash, using intermixed base64 and base64URL encoding, should fail.",
    "resources/matching-digest.js",
    "sha256-U9WYDtBWkcHx13+9UKk_3Q5eoqDc4YGxYb07EPWzb9E="
);

new SRIScriptTest(
    true,
    "Same-origin with invalid syntax only.",
    "resources/matching-digest.js",
    "?foo=bar?spam=eggs"
);

new SRIScriptTest(
    true,
    "Same-origin with multiple valid sha256 hashes, including correct.",
    "resources/matching-digest.js",
    "sha256-U9WYDtBWkcHx13+9UKk/3Q5eoqDc4YGxYb07EPWzb9e= sha256-U9WYDtBWkcHx13+9UKk/3Q5eoqDc4YGxYb07EPWzb9E="
);

new SRIScriptTest(
    false,
    "Same-origin with incorrect hash, options.",
    "resources/matching-digest.js",
    "sha256-U9WYDtBWkcHx13+9UKk/3Q5eoqDc4YGxYb07EPWzb9e=?foo=bar?spam=eggs"
);

SRITests.execute();

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