|
1 function test() { |
|
2 waitForExplicitFinish(); |
|
3 |
|
4 var tab = gBrowser.addTab(); |
|
5 gBrowser.selectedTab = tab; |
|
6 tab.linkedBrowser.addEventListener("load", function () { |
|
7 tab.linkedBrowser.removeEventListener("load", arguments.callee, true); |
|
8 checkPageStyleMenu(); |
|
9 }, true); |
|
10 let rootDir = getRootDirectory(gTestPath); |
|
11 content.location = rootDir + "page_style_sample.html"; |
|
12 } |
|
13 |
|
14 function checkPageStyleMenu() { |
|
15 var menupopup = document.getElementById("pageStyleMenu") |
|
16 .getElementsByTagName("menupopup")[0]; |
|
17 gPageStyleMenu.fillPopup(menupopup); |
|
18 |
|
19 var items = []; |
|
20 var current = menupopup.getElementsByTagName("menuseparator")[0]; |
|
21 while (current.nextSibling) { |
|
22 current = current.nextSibling; |
|
23 items.push(current); |
|
24 } |
|
25 |
|
26 var validLinks = 0; |
|
27 Array.forEach(content.document.getElementsByTagName("link"), function (link) { |
|
28 var title = link.getAttribute("title"); |
|
29 var rel = link.getAttribute("rel"); |
|
30 var media = link.getAttribute("media"); |
|
31 var idstring = "link " + (title ? title : "without title and") + |
|
32 " with rel=\"" + rel + "\"" + |
|
33 (media ? " and media=\"" + media + "\"" : ""); |
|
34 |
|
35 var item = items.filter(function (item) item.getAttribute("label") == title); |
|
36 var found = item.length == 1; |
|
37 var checked = found && (item[0].getAttribute("checked") == "true"); |
|
38 |
|
39 switch (link.getAttribute("data-state")) { |
|
40 case "0": |
|
41 ok(!found, idstring + " does not show up in page style menu"); |
|
42 break; |
|
43 case "0-todo": |
|
44 validLinks++; |
|
45 todo(!found, idstring + " should not show up in page style menu"); |
|
46 ok(!checked, idstring + " is not selected"); |
|
47 break; |
|
48 case "1": |
|
49 validLinks++; |
|
50 ok(found, idstring + " shows up in page style menu"); |
|
51 ok(!checked, idstring + " is not selected"); |
|
52 break; |
|
53 case "2": |
|
54 validLinks++; |
|
55 ok(found, idstring + " shows up in page style menu"); |
|
56 ok(checked, idstring + " is selected"); |
|
57 break; |
|
58 default: |
|
59 throw "data-state attribute is missing or has invalid value"; |
|
60 } |
|
61 }); |
|
62 |
|
63 is(validLinks, items.length, "all valid links found"); |
|
64 |
|
65 gBrowser.removeCurrentTab(); |
|
66 finish(); |
|
67 } |