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>