Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 <html> | 1 <html> |
| 2 <head> | 2 <head> |
| 3 <script src="../../../http/tests/inspector/inspector-test.js"></script> | 3 <script src="../../../http/tests/inspector/inspector-test.js"></script> |
| 4 <script src="../../../http/tests/inspector/elements-test.js"></script> | 4 <script src="../../../http/tests/inspector/elements-test.js"></script> |
| 5 <script> | 5 <script> |
| 6 | 6 |
| 7 function test() | 7 function test() |
| 8 { | 8 { |
| 9 function flattenRuleRanges(rule) | 9 function flattenRuleRanges(rule) |
| 10 { | 10 { |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 68 } | 68 } |
| 69 if (!lazyRange.range.equal(originalRange.range)) { | 69 if (!lazyRange.range.equal(originalRange.range)) { |
| 70 InspectorTest.addResult("Error: ranges '" + lazyRange.name + "' are not equal: " + lazyRange.range.toString() + " != " + originalRange.range.toS tring()); | 70 InspectorTest.addResult("Error: ranges '" + lazyRange.name + "' are not equal: " + lazyRange.range.toString() + " != " + originalRange.range.toS tring()); |
| 71 return false; | 71 return false; |
| 72 } | 72 } |
| 73 } | 73 } |
| 74 InspectorTest.addResult(flattenLazy.length + " rule ranges are equal."); | 74 InspectorTest.addResult(flattenLazy.length + " rule ranges are equal."); |
| 75 return true; | 75 return true; |
| 76 } | 76 } |
| 77 | 77 |
| 78 function validateRuleRanges(rules, callback) | 78 function validateRuleRanges(selector, rules, callback) |
| 79 { | 79 { |
| 80 InspectorTest.selectNodeAndWaitForStyles("other", onOtherSelected); | 80 InspectorTest.selectNodeAndWaitForStyles("other", onOtherSelected); |
| 81 | 81 |
| 82 function onOtherSelected() | 82 function onOtherSelected() |
| 83 { | 83 { |
| 84 InspectorTest.selectNodeAndWaitForStyles("container", onContainerSel ected); | 84 InspectorTest.selectNodeAndWaitForStyles(selector, onContainerSelect ed); |
| 85 } | 85 } |
| 86 | 86 |
| 87 function onContainerSelected() | 87 function onContainerSelected() |
| 88 { | 88 { |
| 89 var fetchedRules = getMatchedRules(); | 89 var fetchedRules = getMatchedRules(); |
| 90 if (fetchedRules.length !== rules.length) { | 90 if (fetchedRules.length !== rules.length) { |
| 91 InspectorTest.addResult("Error: rules sizes are not equal!"); | 91 InspectorTest.addResult("Error: rules sizes are not equal! " + ( fetchedRules.length - rules.length)); |
|
vsevik
2014/11/05 06:49:11
Expected: %d, actual: %d
lushnikov
2014/11/05 08:51:09
Done.
| |
| 92 InspectorTest.completeTest(); | 92 InspectorTest.completeTest(); |
| 93 return; | 93 return; |
| 94 } | 94 } |
| 95 for (var i = 0; i < fetchedRules.length; ++i) { | 95 for (var i = 0; i < fetchedRules.length; ++i) { |
| 96 if (!compareRuleRanges(rules[i], fetchedRules[i])) { | 96 if (!compareRuleRanges(rules[i], fetchedRules[i])) { |
| 97 InspectorTest.completeTest(); | 97 InspectorTest.completeTest(); |
| 98 return; | 98 return; |
| 99 } | 99 } |
| 100 } | 100 } |
| 101 callback(); | 101 callback(); |
| 102 } | 102 } |
| 103 } | 103 } |
| 104 | 104 |
| 105 function getMatchedRules() | 105 function getMatchedRules() |
| 106 { | 106 { |
| 107 var matchedStyleSections = WebInspector.panels.elements.sidebarPanes.sty les.sections[0]; | |
| 108 var rules = []; | 107 var rules = []; |
| 109 for (var i = 1; i < matchedStyleSections.length; ++i) { | 108 for (var pseudoId in WebInspector.panels.elements.sidebarPanes.styles.se ctions) { |
| 110 var rule = matchedStyleSections[i].rule; | 109 var matchedStyleSections = WebInspector.panels.elements.sidebarPanes .styles.sections[pseudoId]; |
| 111 if (rule) | 110 for (var i = 0; i < matchedStyleSections.length; ++i) { |
| 112 rules.push(rule); | 111 var section = matchedStyleSections[i]; |
| 112 if (section.computedStyle) | |
| 113 continue; | |
| 114 var rule = section.rule; | |
| 115 if (rule) | |
| 116 rules.push(rule); | |
| 117 } | |
| 113 } | 118 } |
| 114 return rules; | 119 return rules; |
| 115 } | 120 } |
| 116 | 121 |
| 117 function insertProperty() | 122 InspectorTest.runTestSuite([ |
| 118 { | 123 function selectInitialNode(next) |
| 119 InspectorTest.dumpSelectedElementStyles(true, false, true); | 124 { |
| 120 var treeItem = InspectorTest.getMatchedStylePropertyTreeItem("color"); | 125 InspectorTest.selectNodeAndWaitForStyles("container", next); |
| 121 var treeElement = treeItem.section().addNewBlankProperty(1); | 126 }, |
| 122 InspectorTest.waitForStyleApplied(onPropertyInserted); | |
| 123 treeElement.applyStyleText("PROPERTY: INSERTED;", true, true); | |
| 124 } | |
| 125 | 127 |
| 126 function onPropertyInserted() | 128 function testInsertProperty(next) |
| 127 { | 129 { |
| 128 InspectorTest.addResult("\n\n#### AFTER PROPERTY INSERTION ####\n\n"); | 130 InspectorTest.dumpSelectedElementStyles(true, false, true); |
| 129 InspectorTest.dumpSelectedElementStyles(true, false, true); | 131 var treeItem = InspectorTest.getMatchedStylePropertyTreeItem("color" ); |
| 130 var rules = getMatchedRules(); | 132 var treeElement = treeItem.section().addNewBlankProperty(1); |
| 131 validateRuleRanges(rules, editSelector); | 133 InspectorTest.waitForStyleApplied(onPropertyInserted); |
| 132 } | 134 treeElement.applyStyleText("PROPERTY: INSERTED;", true, true); |
| 133 | 135 |
| 134 function editSelector() | 136 function onPropertyInserted() |
| 135 { | 137 { |
| 136 var section = WebInspector.panels.elements.sidebarPanes.styles.sections[ 0][4]; | 138 InspectorTest.addResult("\n\n#### AFTER PROPERTY INSERTION ####\ n\n"); |
| 137 section.startEditingSelector(); | 139 InspectorTest.dumpSelectedElementStyles(true, false, true); |
| 138 section._selectorElement.textContent = ".should-change, .INSERTED-OTHER- SELECTOR"; | 140 var rules = getMatchedRules(); |
| 139 InspectorTest.waitForSelectorCommitted(onSelectorEdited); | 141 validateRuleRanges("container", rules, next); |
| 140 section._selectorElement.dispatchEvent(InspectorTest.createKeyEvent("Ent er")); | 142 } |
| 141 } | 143 }, |
| 142 | 144 |
| 143 function onSelectorEdited() | 145 function testEditSelector(next) |
| 144 { | 146 { |
| 145 InspectorTest.addResult("\n\n#### AFTER SELECTOR EDIT ####\n\n"); | 147 var section = WebInspector.panels.elements.sidebarPanes.styles.secti ons[0][4]; |
| 146 InspectorTest.dumpSelectedElementStyles(true, false, true); | 148 section.startEditingSelector(); |
| 147 var rules = getMatchedRules(); | 149 section._selectorElement.textContent = ".should-change, .INSERTED-OT HER-SELECTOR"; |
| 148 validateRuleRanges(rules, disableProperty); | 150 InspectorTest.waitForSelectorCommitted(onSelectorEdited); |
| 149 } | 151 section._selectorElement.dispatchEvent(InspectorTest.createKeyEvent( "Enter")); |
| 150 | 152 |
| 151 function disableProperty() | 153 function onSelectorEdited() |
| 152 { | 154 { |
| 153 var treeItem = InspectorTest.getMatchedStylePropertyTreeItem("border"); | 155 InspectorTest.addResult("\n\n#### AFTER SELECTOR EDIT ####\n\n") ; |
| 154 InspectorTest.waitForStyleApplied(onPropertyDisabled); | 156 InspectorTest.dumpSelectedElementStyles(true, false, true); |
| 155 treeItem.toggleEnabled({ target: { checked: false }, consume: function() { } }); | 157 var rules = getMatchedRules(); |
| 156 } | 158 validateRuleRanges("container", rules, next); |
| 159 } | |
| 160 }, | |
| 157 | 161 |
| 158 function onPropertyDisabled() | 162 function testDisableProperty(next) |
| 159 { | 163 { |
| 160 InspectorTest.addResult("\n\n#### AFTER PROPERTY DISABLED ####\n\n"); | 164 var treeItem = InspectorTest.getMatchedStylePropertyTreeItem("border "); |
| 161 InspectorTest.dumpSelectedElementStyles(true, false, true); | 165 InspectorTest.waitForStyleApplied(onPropertyDisabled); |
| 162 var rules = getMatchedRules(); | 166 treeItem.toggleEnabled({ target: { checked: false }, consume: functi on() { } }); |
| 163 validateRuleRanges(rules, InspectorTest.completeTest.bind(InspectorTest) ); | |
| 164 } | |
| 165 | 167 |
| 166 InspectorTest.selectNodeAndWaitForStyles("container", insertProperty); | 168 function onPropertyDisabled() |
| 169 { | |
| 170 InspectorTest.addResult("\n\n#### AFTER PROPERTY DISABLED ####\n \n"); | |
| 171 InspectorTest.dumpSelectedElementStyles(true, false, true); | |
| 172 var rules = getMatchedRules(); | |
| 173 validateRuleRanges("container", rules, next); | |
| 174 } | |
| 175 }, | |
| 176 | |
| 177 function selectNodeWithPseudoElements(next) | |
| 178 { | |
| 179 InspectorTest.selectNodeAndWaitForStyles("pseudo", next); | |
| 180 }, | |
| 181 | |
| 182 function testPseudoSectionPropertyEdit(next) | |
| 183 { | |
| 184 var treeItem = InspectorTest.getMatchedStylePropertyTreeItem("pseudo -property"); | |
| 185 var treeElement = treeItem.section().addNewBlankProperty(1); | |
| 186 InspectorTest.waitForStyleApplied(onPropertyInserted); | |
| 187 treeElement.applyStyleText("PROPERTY: INSERTED;", true, true); | |
| 188 | |
| 189 function onPropertyInserted() | |
| 190 { | |
| 191 InspectorTest.addResult("\n\n#### AFTER PROPERTY INSERTED ####\n \n"); | |
| 192 InspectorTest.dumpSelectedElementStyles(true, false, true); | |
| 193 var rules = getMatchedRules(); | |
| 194 validateRuleRanges("pseudo", rules, next); | |
| 195 } | |
| 196 }, | |
| 197 ]); | |
| 167 } | 198 } |
| 168 </script> | 199 </script> |
| 169 <link rel="stylesheet" href="resources/styles-update-links-2.css"></link> | 200 <link rel="stylesheet" href="resources/styles-update-links-2.css"></link> |
| 170 <link rel="stylesheet" href="resources/styles-update-links.css"></link> | 201 <link rel="stylesheet" href="resources/styles-update-links.css"></link> |
| 202 <style> | |
| 203 #pseudo::after { | |
| 204 pseudo-property: "12"; | |
| 205 color: red; | |
| 206 } | |
| 207 | |
| 208 #pseudo::after { | |
| 209 border: 1px solid black; | |
| 210 } | |
| 211 | |
| 212 #pseudo::before { | |
| 213 color: blue; | |
| 214 } | |
| 215 </style> | |
| 171 </head> | 216 </head> |
| 172 | 217 |
| 173 <body onload="runTest()"> | 218 <body onload="runTest()"> |
| 174 <p> | 219 <p> |
| 175 Tests that removal of property following its disabling works. | 220 Tests that removal of property following its disabling works. |
| 176 </p> | 221 </p> |
| 177 | 222 |
| 178 <div id="container" class="left-intact should-change"> | 223 <div id="container" class="left-intact should-change"> |
| 179 Red text here. | 224 Red text here. |
| 180 </div> | 225 </div> |
| 181 | 226 |
| 182 <div id="other"></div> | 227 <div id="other"></div> |
| 183 | 228 |
| 229 <section id="pseudo"></div> | |
| 230 | |
| 184 </body> | 231 </body> |
| 185 </html> | 232 </html> |
| OLD | NEW |