<html>
<head>
<script type="text/javascript" src="../inspector-protocol-test.js"></script>
<script type="text/javascript" src="interception-test.js"></script>

<script>
function appendIframe()
{
    var iframe = document.createElement("iframe");
    iframe.src = "resources/xhr-iframe-auth-fail.html";
    document.body.appendChild(iframe);
}

function test()
{
    var requestInterceptedDict = {
        "xhr-iframe-auth-fail.html": InspectorTest.allowRequest,
        "unauthorised.pl": InspectorTest.allowRequest,
    };

    InspectorTest.startInterceptionTest(requestInterceptedDict, 1);
}
</script>
</head>
<body onload="runTest();">
<p>Tests interception of an XHR request that fails due to lack of credentials.</a>
</p>
</body>
</html>
