|
1 /* |
|
2 * Any copyright is dedicated to the Public Domain. |
|
3 * http://creativecommons.org/publicdomain/zero/1.0/ |
|
4 */ |
|
5 |
|
6 // Test the webconsole output for various types of objects. |
|
7 |
|
8 const TEST_URI = "http://example.com/browser/browser/devtools/webconsole/test/test-console-output-04.html"; |
|
9 |
|
10 let inputTests = [ |
|
11 // 0 |
|
12 { |
|
13 input: "testTextNode()", |
|
14 output: '#text "hello world!"', |
|
15 printOutput: "[object Text]", |
|
16 inspectable: true, |
|
17 noClick: true, |
|
18 }, |
|
19 |
|
20 // 1 |
|
21 { |
|
22 input: "testCommentNode()", |
|
23 output: /<!--\s+- Any copyright /, |
|
24 printOutput: "[object Comment]", |
|
25 inspectable: true, |
|
26 noClick: true, |
|
27 }, |
|
28 |
|
29 // 2 |
|
30 { |
|
31 input: "testDocumentFragment()", |
|
32 output: 'DocumentFragment [ <div#foo1.bar>, <div#foo3> ]', |
|
33 printOutput: "[object DocumentFragment]", |
|
34 inspectable: true, |
|
35 variablesViewLabel: "DocumentFragment[2]", |
|
36 }, |
|
37 |
|
38 // 3 |
|
39 { |
|
40 input: "testError()", |
|
41 output: "TypeError: window.foobar is not a function\n" + |
|
42 "Stack trace:\n" + |
|
43 "testError@" + TEST_URI + ":44", |
|
44 printOutput: '"TypeError: window.foobar is not a function"', |
|
45 inspectable: true, |
|
46 variablesViewLabel: "TypeError", |
|
47 }, |
|
48 |
|
49 // 4 |
|
50 { |
|
51 input: "testDOMException()", |
|
52 output: 'DOMException [SyntaxError: "An invalid or illegal string was specified"', |
|
53 printOutput: '[Exception... "An invalid or illegal string was specified"', |
|
54 inspectable: true, |
|
55 variablesViewLabel: "SyntaxError", |
|
56 }, |
|
57 |
|
58 // 5 |
|
59 { |
|
60 input: "testCSSStyleDeclaration()", |
|
61 output: 'CSS2Properties { color: "green", font-size: "2em" }', |
|
62 printOutput: "[object CSS2Properties]", |
|
63 inspectable: true, |
|
64 noClick: true, |
|
65 }, |
|
66 |
|
67 // 6 |
|
68 { |
|
69 input: "testStyleSheetList()", |
|
70 output: "StyleSheetList [ CSSStyleSheet ]", |
|
71 printOutput: "[object StyleSheetList", |
|
72 inspectable: true, |
|
73 variablesViewLabel: "StyleSheetList[1]", |
|
74 }, |
|
75 |
|
76 // 7 |
|
77 { |
|
78 input: "document.styleSheets[0]", |
|
79 output: "CSSStyleSheet", |
|
80 printOutput: "[object CSSStyleSheet]", |
|
81 inspectable: true, |
|
82 }, |
|
83 |
|
84 // 8 |
|
85 { |
|
86 input: "document.styleSheets[0].cssRules", |
|
87 output: "CSSRuleList [ CSSStyleRule, CSSMediaRule ]", |
|
88 printOutput: "[object CSSRuleList", |
|
89 inspectable: true, |
|
90 variablesViewLabel: "CSSRuleList[2]", |
|
91 }, |
|
92 |
|
93 // 9 |
|
94 { |
|
95 input: "document.styleSheets[0].cssRules[0]", |
|
96 output: 'CSSStyleRule "p, div"', |
|
97 printOutput: "[object CSSStyleRule", |
|
98 inspectable: true, |
|
99 variablesViewLabel: "CSSStyleRule", |
|
100 }, |
|
101 |
|
102 // 10 |
|
103 { |
|
104 input: "document.styleSheets[0].cssRules[1]", |
|
105 output: 'CSSMediaRule "print"', |
|
106 printOutput: "[object CSSMediaRule", |
|
107 inspectable: true, |
|
108 variablesViewLabel: "CSSMediaRule", |
|
109 }, |
|
110 ]; |
|
111 |
|
112 function test() { |
|
113 addTab(TEST_URI); |
|
114 browser.addEventListener("load", function onLoad() { |
|
115 browser.removeEventListener("load", onLoad, true); |
|
116 openConsole().then((hud) => { |
|
117 return checkOutputForInputs(hud, inputTests); |
|
118 }).then(finishTest); |
|
119 }, true); |
|
120 } |