Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / inspector / elements / styles / add-new-rule-inline-style-csp.html
1 <html>
2 <head>
3 <meta http-equiv="Content-Security-Policy" content="style-src https://*:443 'unsafe-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.cssText + "}");
34                 InspectorTest.addResult("Selectors matching the (#inspected) node: " + 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                     WebInspector.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.cssText + "}");
60                 InspectorTest.addResult("Selectors matching the (#inspected) node: " + 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             WebInspector.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>