<!doctype html> <html> <head> <title>Test for Bug 738396</title> <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> <script type="text/javascript" src="plugin-utils.js"></script> <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> <meta http-equiv="content-type" content="text/html; charset=utf-8"> </head> <body> <script type="text/javascript"> setTestPluginEnabledState(SpecialPowers.Ci.nsIPluginTag.STATE_ENABLED, "Java Test Plug-in"); SpecialPowers.pushPrefEnv({ "set": [ ['plugin.java.mime', 'application/x-java-test'] ] }, loadFrame); SimpleTest.waitForExplicitFinish(); function loadFrame() { var iframe = document.createElement("iframe"); iframe.src = "./file_bug738396.html"; iframe.addEventListener("load", function() { runTest(iframe.contentDocument); }); document.body.appendChild(iframe); } function runTest(doc) { // Check that the canonicalized version of the codebase 'good' was passed // to the plugin in all cases var a = doc.createElement('a'); a.href = "good"; var goodCodebase = a.href; var codebasevis = doc.getElementById("codebasevis") .querySelectorAll("applet, object, embed"); for (var elem of codebasevis) { var codebase = null; try { codebase = elem.getJavaCodebase(); } catch (e) {} is(codebase, goodCodebase, "Check that the test plugin sees the proper codebase"); } // Check that none of the applets in blockedcodebase were allowed to spawn var blockedcodebase = doc.getElementById("blockedcodebase") .querySelectorAll("applet, object, embed"); for (var elem of blockedcodebase) { var spawned = false; try { elem.getObjectValue(); spawned = true; } catch (e) {} ok(!spawned, "Plugin should not be allowed to spawn"); } // With no codebase, the codebase should resolve to "." a.href = "."; goodCodebase = a.href; var nocodebase = doc.getElementById("nocodebase") .querySelectorAll("applet, object, embed"); for (var elem of nocodebase) { var codebase = null; try { codebase = elem.getJavaCodebase(); } catch (e) {} is(codebase, goodCodebase, "Codebase should resolve to '.'"); } // With empty codebase, the codebase should resolve to "/" a.href = "/"; goodCodebase = a.href; var nocodebase = doc.getElementById("emptycodebase") .querySelectorAll("applet, object, embed"); for (var elem of nocodebase) { var codebase = null; try { codebase = elem.getJavaCodebase(); } catch (e) {} is(codebase, goodCodebase, "Codebase should resolve to '/'"); } SimpleTest.finish(); } </script> </body> </html>