summaryrefslogtreecommitdiffstats
path: root/dom/html/test/test_imports_basics.html
blob: 3bdd96152e21986fdca9ca72e7a55117894e64db (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<!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>