OLD | NEW |
| (Empty) |
1 <html> | |
2 <head> | |
3 <meta http-equiv="Content-Security-Policy" content="style-src https://*:443 'uns
afe-eval'"> | |
4 <script src="../../../http/tests/inspector/inspector-test.js"></script> | |
5 <script src="../../../http/tests/inspector/elements-test.js"></script> | |
6 <script> | |
7 | |
8 function test() | |
9 { | |
10 var nodeId; | |
11 var rule; | |
12 | |
13 | |
14 InspectorTest.runTestSuite([ | |
15 function testSetUp(next) { | |
16 InspectorTest.selectNodeAndWaitForStyles("inspected", next); | |
17 }, | |
18 | |
19 function testAddRule(next) | |
20 { | |
21 InspectorTest.nodeWithId("inspected", nodeCallback); | |
22 | |
23 function nodeCallback(node) | |
24 { | |
25 nodeId = node.id; | |
26 InspectorTest.addNewRule("#inspected", successCallback); | |
27 } | |
28 | |
29 function successCallback(section) | |
30 { | |
31 rule = section.styleRule.rule(); | |
32 InspectorTest.addResult("=== Rule added ==="); | |
33 InspectorTest.addResult(rule.selectorText + " {" + rule.style.cs
sText + "}"); | |
34 InspectorTest.addResult("Selectors matching the (#inspected) nod
e: " + InspectorTest.matchingSelectors(rule)); | |
35 next(); | |
36 } | |
37 }, | |
38 | |
39 function testAddProperty(next) | |
40 { | |
41 rule.style.appendProperty("width", "100%", callback); | |
42 | |
43 function callback(newStyle) | |
44 { | |
45 InspectorTest.addResult("=== Added rule modified ==="); | |
46 if (!newStyle) { | |
47 InspectorTest.addResult("[!] No valid rule style received"); | |
48 InspectorTest.completeTest(); | |
49 } else { | |
50 dumpProperties(newStyle); | |
51 InspectorTest.cssModel.setRuleSelector(rule, nodeId, "body",
successCallback, failureCallback); | |
52 } | |
53 } | |
54 | |
55 function successCallback(rule) | |
56 { | |
57 var doesAffectSelectedNode = rule.matchingSelectors.length > 0; | |
58 InspectorTest.addResult("=== Selector changed ==="); | |
59 InspectorTest.addResult(rule.selectorText + " {" + rule.style.cs
sText + "}"); | |
60 InspectorTest.addResult("Selectors matching the (#inspected) nod
e: " + InspectorTest.matchingSelectors(rule)); | |
61 | |
62 next(); | |
63 } | |
64 | |
65 function failureCallback() | |
66 { | |
67 InspectorTest.addResult("[!] Failed to change selector"); | |
68 InspectorTest.completeTest(); | |
69 } | |
70 }, | |
71 | |
72 function testModifyInlineStyle(next) | |
73 { | |
74 InspectorTest.cssModel.getInlineStylesAsync(nodeId, stylesCallback); | |
75 | |
76 function stylesCallback(inlineStyle) | |
77 { | |
78 if (!inlineStyle) { | |
79 InspectorTest.completeTest(); | |
80 return; | |
81 } | |
82 inlineStyle.appendProperty("font-size", "14px", appendCallback); | |
83 } | |
84 | |
85 function appendCallback(newStyle) | |
86 { | |
87 InspectorTest.addResult("=== Inline style modified ==="); | |
88 if (!newStyle) { | |
89 InspectorTest.addResult("No valid inline style received"); | |
90 InspectorTest.completeTest(); | |
91 return; | |
92 } | |
93 | |
94 dumpProperties(newStyle); | |
95 next(); | |
96 } | |
97 } | |
98 ]); | |
99 | |
100 function dumpProperties(style) | |
101 { | |
102 if (!style) | |
103 return; | |
104 var allProperties = style.allProperties; | |
105 for (var i = 0; i < allProperties.length; ++i) | |
106 InspectorTest.addResult(allProperties[i].text); | |
107 } | |
108 } | |
109 </script> | |
110 </head> | |
111 | |
112 <body onload="runTest()"> | |
113 <p> | |
114 Tests that adding a new rule does not crash the renderer and modifying an inline
style does not report errors when forbidden by Content-Security-Policy. | |
115 </p> | |
116 | |
117 <div id="inspected">Text</div> | |
118 | |
119 </body> | |
120 </html> | |
OLD | NEW |