Upstream version 5.34.98.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / inspector / styles / multiple-imports-edit-crash.html
1 <html>
2 <head>
3 <style>
4 @import url(resources/multiple-imports-edit-crash-1.css);
5 @import url(resources/multiple-imports-edit-crash-2.css);
6 @import url(resources/multiple-imports-edit-crash-1.css);
7 #inspected {
8     color: green;
9 }
10 </style>
11 <script src="../../http/tests/inspector/inspector-test.js"></script>
12 <script src="../../http/tests/inspector/elements-test.js"></script>
13 <script>
14
15 function test()
16 {
17     WebInspector.showPanel("elements");
18     WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.StyleSheetAdded, styleSheetAdded, this);
19     WebInspector.cssModel.addEventListener(WebInspector.CSSStyleModel.Events.StyleSheetRemoved, styleSheetRemoved, this);
20     InspectorTest.nodeWithId("inspected", nodeFound);
21
22     function nodeFound(node)
23     {
24         WebInspector.cssModel.getMatchedStylesAsync(node.id, true, false, matchedStylesCallback);
25     }
26
27     var styleSheetId;
28
29     function matchedStylesCallback(styles)
30     {
31         styleSheetId = styles.matchedCSSRules[1].id.styleSheetId;
32         CSSAgent.setStyleSheetText(styleSheetId,
33             "@import url(resources/multiple-imports-edit-crash-1.css);\n@import url(resources/multiple-imports-edit-crash-2.css);\n#inspected { color: black }\n");
34     }
35
36     function modifiedCallback()
37     {
38         WebInspector.cssModel.removeEventListener(WebInspector.CSSStyleModel.Events.StyleSheetAdded, styleSheetAdded, this);
39         WebInspector.cssModel.removeEventListener(WebInspector.CSSStyleModel.Events.StyleSheetRemoved, styleSheetRemoved, this);
40         InspectorTest.completeTest();
41     }
42
43     var addsExpected = 2;
44     var removesExpected = 3;
45     var added = [];
46     var removed = [];
47
48     function styleSheetAdded(event)
49     {
50         added.push(resourceName(event.data.sourceURL));
51
52         if (!(--addsExpected)) {
53             added.sort();
54             InspectorTest.addResult("Added:");
55             InspectorTest.addResult(added.join("\n"));
56         }
57     }
58
59     function styleSheetRemoved(event)
60     {
61         removed.push(resourceName(event.data.sourceURL));
62
63         if (!(--removesExpected)) {
64             removed.sort();
65             InspectorTest.addResult("Removed:");
66             InspectorTest.addResult(removed.join("\n"));
67             InspectorTest.completeTest();
68         }
69     }
70
71     function resourceName(url)
72     {
73         return url.substring(url.lastIndexOf("/") + 1);
74     }
75 }
76
77 </script>
78 </head>
79
80 <body onload="runTest()">
81 <p>
82 Tests that modifying stylesheet text with multiple @import at-rules does not crash.
83 </p>
84
85 <div id="inspected">Text</div>
86 </body>
87 </html>