<html manifest="resources/allowlist-wildcard.manifest">
<body>
<p>Test that online allowlist wildcard flag is implemented.</p>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

function test()
{
    try {
        var req = new XMLHttpRequest;
        req.open("GET", "resources/empty.txt", false);
        req.send();
        document.body.appendChild(document.createTextNode("SUCCESS"));
    } catch (ex) {
        document.body.appendChild(document.createTextNode(ex));
    }
    if (window.testRunner)
        testRunner.notifyDone();
}

applicationCache.oncached = test;
applicationCache.onnoupdate = test;

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