diff options
Diffstat (limited to 'dom/plugins/test/mochitest/test_streamNotify.html')
-rw-r--r-- | dom/plugins/test/mochitest/test_streamNotify.html | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/dom/plugins/test/mochitest/test_streamNotify.html b/dom/plugins/test/mochitest/test_streamNotify.html new file mode 100644 index 000000000..d1aa8be8d --- /dev/null +++ b/dom/plugins/test/mochitest/test_streamNotify.html @@ -0,0 +1,89 @@ +<head> + <title>NPN_Get/PostURLNotify tests</title> + <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> + <script type="application/javascript" src="plugin-utils.js"></script> + +<body onload="runTests()"> + <script class="testbody" type="application/javascript"> + SimpleTest.waitForExplicitFinish(); + SimpleTest.requestFlakyTimeout("untriaged"); + setTestPluginEnabledState(SpecialPowers.Ci.nsIPluginTag.STATE_ENABLED); + + var pending = 5; + function testDone() { + dump("testDone: " + pending + "\n") + --pending; + + // Wait for a bit so that any unexpected notifications from the + // malformed data or null-post tests are received. + if (0 == pending) + window.setTimeout(SimpleTest.finish, 2000); + } + + function runTests() { + var p = document.getElementById('plugin1'); + + ok(p.streamTest("loremipsum.txt", false, null, null, + function(r, t) { + is(r, 0, "GET loremipsum.txt"); + is(t.substr(0, 11), "Lorem ipsum", + "GET loremipsum.txt correct"); + testDone(); + }, null, true), "streamTest GET"); + + ok(!p.streamTest("post.sjs", true, null, null, + function(r, t) { + ok(false, "Shouldn't get callback from null post"); + }, null, true), "streamTest POST null postdata"); + + ok(p.streamTest("post.sjs", true, "Something good", null, + function(r, t) { + is(r, 0, "POST something good"); + is(t, "Something good", "POST non-null correct"); + testDone(); + }, null, true), "streamTest POST valid postdata"); + + ok(p.streamTest("http://example.invalid/", false, null, null, + function(r, t) { + is(r, 1, "Shouldn't load example.invalid DNS name"); + testDone(); + }, null, true), "streamTest GET bad DNS"); + + ok(!p.streamTest("http://localhost:-8/", false, null, null, + function(r, t) { + ok(false, "Shouldn't get callback from malformed URI"); + }, null, true), "streamTest GET invalid URL"); + + ok(p.streamTest("javascript:'Hello';", false, null, null, + function(r, t) { + is(r, 0, "GET javascript: URI"); + is(t, "Hello", "GET javascript: URI correct"); + testDone(); + }, null, true), "streamTest GET javascript: URI"); + +/* + * XXX/cjones: disabled for now because it appears to be hard to make + * mochitest ignore the malformed javascript + + ok(!p.streamTest("javascript:syntax##$&*@error-*", false, null, + function(r, t) { + is(r, 1, "Shouldn't load invalid javascript: URI"); + testDone(); + }), "streamTest GET bad javascript: URI"); +*/ + + ok(p.streamTest("data:text/plain,World", false, null, null, + function(r, t) { + is(r, 0, "GET data: URI"); + is(t, "World", "GET data: URI correct"); + testDone(); + }, null, true), "streamTest GET data: URI"); + + ok(!p.streamTest("data:malformed?", false, null, null, + function(r, t) { + todo(false, "Shouldn't get callback for invalid data: URI"); + }, null, true), "streamTest GET bad data: URI"); + } + </script> + + <embed id="plugin1" type="application/x-test" width="400" height="400"></embed> |