<!DOCTYPE HTML> <html> <!-- https://bugzilla.mozilla.org/show_bug.cgi?id=877072 --> <head> <title>Test for Bug 877072</title> <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.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> <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=877072">Mozilla Bug 877072</a> <script type="text/javascript"> SimpleTest.waitForExplicitFinish(); var loadEventFired = false; var errorEventFired = false; var counter = 0; function loaded() { loadEventFired = true; } function failed() { errorEventFired = true; } </script> <link rel="import" href="file_imports_basics.html" id="import1" onload="loaded()" onerror="failed()"></link> <script type="text/javascript"> ok(importDone, "Script of the imported document runned before this script"); ok(loadEventFired, "Load eventhandler works"); ok(!errorEventFired, "There were no error event fired"); var import1 = document.getElementById("import1").import; is(import1.getElementById("foo").textContent, "bar", "import property of link import works"); try{ import1.open(); import1.write("<h1>This should not show up!</h1>"); import1.close(); } catch (e) { ok(true, "import.open/write should throw"); } // Let's add dynamically a new link import with the same URI var link = document.createElement("link"); link.setAttribute("id", "inserted"); link.setAttribute("rel", "import"); link.setAttribute("href", "file_imports_basics.html"); function loaded2() { ok(true, "Load event is fired for link import that refers to an already loaded import"); is(counter, 1, "Adding another link referring to the same import, does not load it twice"); is(document.getElementById("inserted").import.getElementById("foo").textContent, "bar", "import property of dynamic link import works"); SimpleTest.finish(); }; link.setAttribute("onload", "loaded2()"); function failed2() { ok(false, "You should not reach this code"); SimpleTest.finish(); }; link.setAttribute("onerror", "failed2()"); document.body.appendChild(link); </script> </body> </html>