<p>Tests the behavior of allowlisting origins and removing them later.</p>

<pre id="console"></pre>
<script>
testRunner.dumpAsText();

function log(message)
{
    document.getElementById("console").appendChild(document.createTextNode(message + "\n"));
}

function loadURL(url, expectSuccess)
{
    log("Loading: " + url + " " + (expectSuccess ? "(expecting PASS)" : "(expecting NETWORK_ERR)"));

    var req = new XMLHttpRequest();
    req.open("GET", url, false);
    try {
        req.send(null);
        log((expectSuccess ? "PASS: " : "FAIL: ") + req.responseText);
    } catch (e) {
        log((expectSuccess ? "FAIL: " : "PASS: ") + e);
    }
}

function test(origin, protocol, host, subdomains, url)
{
    log("Testing: source origin: " + origin + " destination origin: " + protocol + ":" + host + " " + (subdomains ? "allowing subdomains" : ""));

    loadURL(url, false);

    testRunner.addOriginAccessAllowListEntry(origin, protocol.toLowerCase(), host.toLowerCase(), subdomains);

    loadURL(url, true);

    testRunner.removeOriginAccessAllowListEntry(origin, protocol, host, subdomains);

    loadURL(url, false);

    log("\n");
}

var tests = [
    ["http://127.0.0.1:8000", "http", "localhost", false, "http://localhost:8000/xmlhttprequest/resources/get.txt"],
    ["http://127.0.0.1:8000", "http", "localhost", true, "http://localhost:8000/xmlhttprequest/resources/get.txt"],
    ["http://127.0.0.1:8000", "hTtP", "LoCaLhOsT", true, "http://localhost:8000/xmlhttprequest/resources/get.txt"],
    ["http://127.0.0.1:8000", "http", "", true, "http://localhost:8000/xmlhttprequest/resources/get.txt"]
];

tests.forEach(function(testEntry) { test.apply(null, testEntry) });
</script>
