| OLD | NEW |
| (Empty) |
| 1 <html> | |
| 2 <head> | |
| 3 | |
| 4 <link rel="stylesheet" href="resources/styles-source-offsets.css"> | |
| 5 | |
| 6 <script src="../../../http/tests/inspector/inspector-test.js"></script> | |
| 7 <script src="../../../http/tests/inspector/elements-test.js"></script> | |
| 8 <script> | |
| 9 | |
| 10 function test() | |
| 11 { | |
| 12 function dumpStyleData(ruleOrStyle) | |
| 13 { | |
| 14 var isRule = !!(ruleOrStyle.style); | |
| 15 var style; | |
| 16 var header = ""; | |
| 17 if (isRule) { | |
| 18 if (ruleOrStyle.origin !== "regular") | |
| 19 return; | |
| 20 style = ruleOrStyle.style; | |
| 21 var selectorRanges = []; | |
| 22 var selectors = ruleOrStyle.selectorList.selectors; | |
| 23 var firstRange = selectors[0].range; | |
| 24 var lastRange = selectors[selectors.length - 1].range; | |
| 25 var range = { startLine: firstRange.startLine, startColumn: firstRan
ge.startColumn, endLine: lastRange.endLine, endColumn: lastRange.endColumn }; | |
| 26 header = ruleOrStyle.selectorList.text + ": " + (range ? InspectorTe
st.rangeText(range) : ""); | |
| 27 } else { | |
| 28 style = ruleOrStyle; | |
| 29 header = "element.style:"; | |
| 30 } | |
| 31 InspectorTest.addResult(header + " " + InspectorTest.rangeText(style.ran
ge)); | |
| 32 var allProperties = style.cssProperties; | |
| 33 for (var i = 0; i < allProperties.length; ++i) { | |
| 34 var property = allProperties[i]; | |
| 35 if (!property.range) | |
| 36 continue; | |
| 37 InspectorTest.addResult("['" + property.name + "':'" + property.valu
e + "'" + (property.important ? " !important" : "") + (("parsedOk" in property)
? " non-parsed" : "") +"] @" + InspectorTest.rangeText(property.range)); | |
| 38 } | |
| 39 } | |
| 40 | |
| 41 InspectorTest.selectNodeWithId("mainBody", step1); | |
| 42 | |
| 43 var resultStyles = {}; | |
| 44 | |
| 45 function inlineCallback(error, inlineStyle) | |
| 46 { | |
| 47 if (error) { | |
| 48 InspectorTest.addResult("error: " + error); | |
| 49 InspectorTest.completeTest(); | |
| 50 return; | |
| 51 } | |
| 52 | |
| 53 resultStyles.inlineStyle = inlineStyle; | |
| 54 } | |
| 55 | |
| 56 function matchedCallback(error, matchedCSSRules) | |
| 57 { | |
| 58 if (error) { | |
| 59 InspectorTest.addResult("error: " + error); | |
| 60 InspectorTest.completeTest(); | |
| 61 return; | |
| 62 } | |
| 63 resultStyles.matchedCSSRules = matchedCSSRules; | |
| 64 step2(); | |
| 65 } | |
| 66 | |
| 67 function step1(node) | |
| 68 { | |
| 69 InspectorTest.CSSAgent.getInlineStylesForNode(node.id, inlineCallback); | |
| 70 InspectorTest.CSSAgent.getMatchedStylesForNode(node.id, matchedCallback)
; | |
| 71 } | |
| 72 | |
| 73 function step2() | |
| 74 { | |
| 75 var matchedCSSRules = resultStyles.matchedCSSRules; | |
| 76 for (var i = 0; i < matchedCSSRules.length; ++i) | |
| 77 dumpStyleData(matchedCSSRules[i].rule); | |
| 78 dumpStyleData(resultStyles.inlineStyle); | |
| 79 InspectorTest.completeTest(); | |
| 80 } | |
| 81 } | |
| 82 | |
| 83 </script> | |
| 84 | |
| 85 <style> | |
| 86 | |
| 87 body.mainpage { | |
| 88 text-decoration: none; /* at least one valid property is necessary for WebCo
re to match a rule */ | |
| 89 badproperty: 1badvalue1; | |
| 90 } | |
| 91 | |
| 92 </style> | |
| 93 </head> | |
| 94 | |
| 95 <body id="mainBody" class="main1 main2 mainpage" onload="runTest()" style="font-
weight: normal; width: 80%"> | |
| 96 <p> | |
| 97 Tests that proper data and start/end offset positions are reported for CSS style
declarations and properties. | |
| 98 </p> | |
| 99 | |
| 100 </body> | |
| 101 </html> | |
| OLD | NEW |