browser/components/feeds/test/test_bug436801.html

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/browser/components/feeds/test/test_bug436801.html	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,118 @@
     1.4 +<!DOCTYPE HTML>
     1.5 +<html>
     1.6 +<!--
     1.7 +https://bugzilla.mozilla.org/show_bug.cgi?id=436801
     1.8 +-->
     1.9 +<head>
    1.10 +  <title>Test feed preview subscribe UI</title>
    1.11 +  <script type="text/javascript" src="/MochiKit/packed.js"></script>
    1.12 +  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
    1.13 +  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
    1.14 +</head>
    1.15 +<body>
    1.16 +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=436801">Mozilla Bug 436801</a>
    1.17 +<p id="display"><iframe id="testFrame" src="bug436801-data.xml"></iframe></p>
    1.18 +<div id="content" style="display: none">
    1.19 +</div>
    1.20 +<pre id="test">
    1.21 +<script class="testbody" type="text/javascript">
    1.22 +
    1.23 +SimpleTest.waitForExplicitFinish();
    1.24 +
    1.25 +addLoadEvent(function () {
    1.26 +  var doc = SpecialPowers.wrap($("testFrame")).contentDocument;
    1.27 +
    1.28 +  checkNode(doc.getElementById("feedTitleText"), [
    1.29 +    "ELEMENT", "h1", { "xml:base": "http://www.example.com/foo/bar/" }, [
    1.30 +      ["TEXT", "Example of a "],
    1.31 +      ["ELEMENT", "em", [
    1.32 +        ["TEXT", "special"],
    1.33 +      ]],
    1.34 +      ["TEXT", " feed ("],
    1.35 +      ["ELEMENT", "img", { "src": "baz.png" }],
    1.36 +      ["TEXT", ")"],
    1.37 +    ]
    1.38 +  ]);
    1.39 +
    1.40 +  checkNode(doc.getElementById("feedSubtitleText"), [
    1.41 +    "ELEMENT", "h2", { "xml:base": "http://www.example.com/foo/bar/" }, [
    1.42 +      ["TEXT", "With a "],
    1.43 +      ["ELEMENT", "em", [
    1.44 +        ["TEXT", "special"],
    1.45 +      ]],
    1.46 +      ["TEXT", " subtitle ("],
    1.47 +      ["ELEMENT", "img", { "src": "baz.png" }],
    1.48 +      ["TEXT", ")"],
    1.49 +    ]
    1.50 +  ]);
    1.51 +
    1.52 +  checkNode(doc.querySelector(".entry").firstChild.firstChild.firstChild, [
    1.53 +    "ELEMENT", "span", { "xml:base": "http://www.example.com/foo/bar/" }, [
    1.54 +      ["TEXT", "Some "],
    1.55 +      ["ELEMENT", "abbr", { title: "Extensible Hyper-text Mark-up Language" }, [
    1.56 +        ["TEXT", "XHTML"],
    1.57 +      ]],
    1.58 +      ["TEXT", " examples ("],
    1.59 +      ["ELEMENT", "img", { "src": "baz.png" }],
    1.60 +      ["TEXT", ")"],
    1.61 +    ]
    1.62 +  ]);
    1.63 +
    1.64 +  checkNode(doc.querySelectorAll(".entry")[1].firstChild.firstChild.firstChild, [
    1.65 +    "ELEMENT", "span", { "xml:base": "http://www.example.com/foo/bar/" }, [
    1.66 +      ["TEXT", "Some "],
    1.67 +      ["ELEMENT", "abbr", { title: "Hyper-text Mark-up Language" }, [
    1.68 +        ["TEXT", "HTML"],
    1.69 +      ]],
    1.70 +      ["TEXT", " examples ("],
    1.71 +      ["ELEMENT", "img", { "src": "baz.png" }],
    1.72 +      ["TEXT", ")"],
    1.73 +    ]
    1.74 +  ]);
    1.75 +});
    1.76 +
    1.77 +addLoadEvent(SimpleTest.finish);
    1.78 +
    1.79 +function checkNode(node, schema) {
    1.80 +  var typeName = schema.shift() + "_NODE";
    1.81 +  var type = Node[typeName];
    1.82 +  is(node.nodeType, type, "Node should be expected type " + typeName);
    1.83 +  if (type == Node.TEXT_NODE) {
    1.84 +    var text = schema.shift();
    1.85 +    is(node.data, text, "Text should match");
    1.86 +    return;
    1.87 +  }
    1.88 +  // type == Node.ELEMENT_NODE
    1.89 +  var tag = schema.shift();
    1.90 +  is(node.localName, tag, "Element should have expected tag");
    1.91 +  while (schema.length) {
    1.92 +    var val = schema.shift();
    1.93 +    if (Array.isArray(val))
    1.94 +      var childSchema = val;
    1.95 +    else
    1.96 +      var attrSchema = val;
    1.97 +  }
    1.98 +  if (attrSchema) {
    1.99 +    var nsTable = {
   1.100 +      xml: "http://www.w3.org/XML/1998/namespace",
   1.101 +    };
   1.102 +    for (var name in attrSchema) {
   1.103 +      var [ns, nsName] = name.split(":");
   1.104 +      var val = nsName ? node.getAttributeNS(nsTable[ns], nsName) :
   1.105 +                node.getAttribute(name);
   1.106 +      is(val, attrSchema[name], "Attribute " + name + " should match");
   1.107 +    }
   1.108 +  }
   1.109 +  if (childSchema) {
   1.110 +    var numChildren = node.childNodes.length;
   1.111 +    is(childSchema.length, numChildren,
   1.112 +       "Element should have expected number of children");
   1.113 +    for (var i = 0; i < numChildren; i++)
   1.114 +      checkNode(node.childNodes[i], childSchema[i]);
   1.115 +  }
   1.116 +}
   1.117 +
   1.118 +</script>
   1.119 +</pre>
   1.120 +</body>
   1.121 +</html>

mercurial