<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/redirect-iframe.html";
    document.body.appendChild(iframe);
}

function test()
{
    var requestInterceptedDict = {
        "redirect-iframe.html": InspectorTest.allowRequest,
        "redirect1.pl": function(event) {
            InspectorTest.modifyRequest(event, {
                "url": "post-echo.pl",
                "method": "POST",
                "postData": "console.log('POST MODIFICATION SUCCESS!');"
            });
        },
    };

    InspectorTest.startInterceptionTest(requestInterceptedDict, 1);
}
</script>
</head>
<body onload="runTest();">
<p>Tests modifying a GET into a POST.</a>
</p>
</body>
</html>
