diff options
Diffstat (limited to 'dom/plugins/test/mochitest/test_redirect_handling.html')
-rw-r--r-- | dom/plugins/test/mochitest/test_redirect_handling.html | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/dom/plugins/test/mochitest/test_redirect_handling.html b/dom/plugins/test/mochitest/test_redirect_handling.html new file mode 100644 index 000000000..7d60ec06e --- /dev/null +++ b/dom/plugins/test/mochitest/test_redirect_handling.html @@ -0,0 +1,67 @@ +<html> +<head> + <title>Basic NPAPI Redirect Handling</title> + <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> + <script type="application/javascript" src="plugin-utils.js"></script> +</head> +<body onload="runTests()"> + <script class="testbody" type="application/javascript"> + SimpleTest.waitForExplicitFinish(); + setTestPluginEnabledState(SpecialPowers.Ci.nsIPluginTag.STATE_ENABLED); + + var p = null; + + var redirectingURL = "307-xo-redirect.sjs"; + var redirectTargetURL = "http://example.org/tests/dom/plugins/test/mochitest/loremipsum.txt"; + + var expectedWriteURL = ""; + var expectedNotifyStatus = -1; + + function redirectCallback(url, httpStatus) { + is(url, redirectTargetURL, "Test for expected redirect notify URL."); + is(httpStatus, 307, "Test for expected http redirect status."); + } + + function writeCallback(url) { + is(url, expectedWriteURL, "Test for expected stream write URL."); + } + + function notifyCallback(status, data) { + is(status, expectedNotifyStatus, "Test for expected stream notification status."); + runNextTest(); + } + + function test1() { + expectedWriteURL = ""; + expectedNotifyStatus = 2; + + p.streamTest(redirectingURL, false, null, writeCallback, notifyCallback, redirectCallback, false); + } + + function test2() { + expectedWriteURL = redirectTargetURL; + expectedNotifyStatus = 0; + + p.streamTest(redirectingURL, false, null, writeCallback, notifyCallback, redirectCallback, true); + } + + var tests = [test1, test2]; + var currentTest = -1; + function runNextTest() { + currentTest++; + if (currentTest < tests.length) { + tests[currentTest](); + } else { + SimpleTest.finish(); + } + } + + function runTests() { + p = document.getElementById("plugin1"); + runNextTest(); + } + </script> + + <embed id="plugin1" type="application/x-test" width="200" height="200"></embed> +</body> +</html> |