|
1 /* Any copyright is dedicated to the Public Domain. |
|
2 http://creativecommons.org/publicdomain/zero/1.0/ */ |
|
3 |
|
4 function test() { |
|
5 |
|
6 let DOMUtils = Cc["@mozilla.org/inspector/dom-utils;1"].getService(Ci.inIDOMUtils); |
|
7 |
|
8 let pseudos = ["hover", "active", "focus"]; |
|
9 |
|
10 let doc; |
|
11 let div; |
|
12 let menu; |
|
13 let inspector; |
|
14 |
|
15 waitForExplicitFinish(); |
|
16 ignoreAllUncaughtExceptions(); |
|
17 gBrowser.selectedTab = gBrowser.addTab(); |
|
18 gBrowser.selectedBrowser.addEventListener("load", function() { |
|
19 gBrowser.selectedBrowser.removeEventListener("load", arguments.callee, true); |
|
20 doc = content.document; |
|
21 waitForFocus(createDocument, content); |
|
22 }, true); |
|
23 |
|
24 content.location = "data:text/html,pseudo-class lock node menu tests"; |
|
25 |
|
26 function createDocument() |
|
27 { |
|
28 div = doc.createElement("div"); |
|
29 div.textContent = "test div"; |
|
30 |
|
31 doc.body.appendChild(div); |
|
32 |
|
33 openInspector(selectNode); |
|
34 } |
|
35 |
|
36 function selectNode(aInspector) |
|
37 { |
|
38 inspector = aInspector; |
|
39 inspector.selection.setNode(div); |
|
40 inspector.once("inspector-updated", performTests); |
|
41 } |
|
42 |
|
43 function performTests() |
|
44 { |
|
45 menu = inspector.panelDoc.getElementById("inspector-node-popup"); |
|
46 menu.addEventListener("popupshowing", testMenuItems, true); |
|
47 menu.openPopup(); |
|
48 } |
|
49 |
|
50 function testMenuItems() |
|
51 { |
|
52 menu.removeEventListener("popupshowing", testMenuItems, true); |
|
53 |
|
54 var tryNext = () => { |
|
55 if (pseudos.length === 0) { |
|
56 finishUp(); |
|
57 return; |
|
58 } |
|
59 let pseudo = pseudos.shift(); |
|
60 |
|
61 let menuitem = inspector.panelDoc.getElementById("node-menu-pseudo-" + pseudo); |
|
62 ok(menuitem, ":" + pseudo + " menuitem exists"); |
|
63 |
|
64 menuitem.doCommand(); |
|
65 inspector.selection.once("pseudoclass", () => { |
|
66 is(DOMUtils.hasPseudoClassLock(div, ":" + pseudo), true, |
|
67 "pseudo-class lock has been applied"); |
|
68 tryNext(); |
|
69 }); |
|
70 } |
|
71 tryNext(); |
|
72 } |
|
73 |
|
74 function finishUp() |
|
75 { |
|
76 gBrowser.removeCurrentTab(); |
|
77 finish(); |
|
78 } |
|
79 } |