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 src="../../../http/tests/inspector/debugger-test.js"></script> | 5 <script src="../../../http/tests/inspector/debugger-test.js"></script> |
6 <script> | 6 <script> |
7 | 7 |
8 function appendElement(parentId, childId) | 8 function appendElement(parentId, childId) |
9 { | 9 { |
10 var child = document.createElement("div"); | 10 var child = document.createElement("div"); |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
74 | 74 |
75 function appendElementToOpenShadowRoot(childId) | 75 function appendElementToOpenShadowRoot(childId) |
76 { | 76 { |
77 var child = document.createElement("div"); | 77 var child = document.createElement("div"); |
78 child.id = childId; | 78 child.id = childId; |
79 authorShadowRoot().appendChild(child); | 79 authorShadowRoot().appendChild(child); |
80 } | 80 } |
81 | 81 |
82 function test() | 82 function test() |
83 { | 83 { |
84 | |
85 var pane = WebInspector.domBreakpointsSidebarPane; | |
86 var rootElement; | 84 var rootElement; |
87 var outerElement; | 85 var outerElement; |
88 var authorShadowRoot; | 86 var authorShadowRoot; |
89 InspectorTest.runDebuggerTestSuite([ | 87 InspectorTest.runDebuggerTestSuite([ |
90 function testInsertChild(next) | 88 function testInsertChild(next) |
91 { | 89 { |
92 InspectorTest.addResult("Test that 'Subtree Modified' breakpoint is
hit when appending a child."); | 90 InspectorTest.addResult("Test that 'Subtree Modified' breakpoint is
hit when appending a child."); |
93 InspectorTest.nodeWithId("rootElement", step2); | 91 InspectorTest.nodeWithId("rootElement", step2); |
94 | 92 |
95 function step2(node) | 93 function step2(node) |
96 { | 94 { |
97 rootElement = node; | 95 rootElement = node; |
98 pane._setBreakpoint(node, pane._breakpointTypes.SubtreeModified,
true); | 96 WebInspector.domBreakpointManager.setBreakpoint(node, WebInspect
or.DOMBreakpointsSidebarPane.BreakpointTypes.SubtreeModified, true); |
99 InspectorTest.addResult("Set 'Subtree Modified' DOM breakpoint o
n rootElement."); | 97 InspectorTest.addResult("Set 'Subtree Modified' DOM breakpoint o
n rootElement."); |
100 InspectorTest.evaluateInPageWithTimeout("appendElement('rootElem
ent', 'childElement')"); | 98 InspectorTest.evaluateInPageWithTimeout("appendElement('rootElem
ent', 'childElement')"); |
101 InspectorTest.addResult("Append childElement to rootElement."); | 99 InspectorTest.addResult("Append childElement to rootElement."); |
102 InspectorTest.waitUntilPausedAndDumpStackAndResume(next); | 100 InspectorTest.waitUntilPausedAndDumpStackAndResume(next); |
103 } | 101 } |
104 }, | 102 }, |
105 | 103 |
| 104 function testBreakpointToggle(next) |
| 105 { |
| 106 InspectorTest.addResult("Test that 'Attribute Modified' breakpoint t
oggles properly"); |
| 107 InspectorTest.nodeWithId("rootElement", step2); |
| 108 var element; |
| 109 |
| 110 function step2(node) |
| 111 { |
| 112 rootElement = node; |
| 113 InspectorTest.addResult("Set 'Attribute Modified' DOM breakpoint
on rootElement."); |
| 114 WebInspector.domBreakpointManager.setBreakpoint(node, WebInspect
or.DOMBreakpointsSidebarPane.BreakpointTypes.AttributeModified, true); |
| 115 var pane = InspectorTest.domBreakpointsSidebarPane(); |
| 116 var elementId = pane._createBreakpointId(node.id, WebInspector.D
OMBreakpointsSidebarPane.BreakpointTypes.AttributeModified); |
| 117 element = pane._breakpointElements.get(elementId); |
| 118 InspectorTest.addResult("Uncheck 'Attribute Modified' DOM breakp
oint on rootElement."); |
| 119 element._checkboxElement.click(); |
| 120 InspectorTest.evaluateInPagePromise("modifyAttribute('rootElemen
t', 'data-test-breakpoint-disabled', 'foo')").then(step3); |
| 121 InspectorTest.addResult("Modify attribute for rootElement."); |
| 122 } |
| 123 |
| 124 function step3() |
| 125 { |
| 126 InspectorTest.addResult("Test that 'Attribute Modified' breakpoi
nt is not hit when disabled"); |
| 127 InspectorTest.assertNotPaused(); |
| 128 InspectorTest.addResult("Check 'Attribute Modified' DOM breakpoi
nt on rootElement."); |
| 129 element._checkboxElement.click(); |
| 130 InspectorTest.evaluateInPageWithTimeout("modifyAttribute('rootEl
ement', 'data-test-breakpoint-disabled', 'bar')"); |
| 131 InspectorTest.addResult("Modify attribute for rootElement."); |
| 132 InspectorTest.addResult("Test that 'Attribute Modified' breakpoi
nt is hit when re-enabled"); |
| 133 InspectorTest.waitUntilPausedAndDumpStackAndResume(next); |
| 134 } |
| 135 }, |
| 136 |
106 function testInsertGrandchild(next) | 137 function testInsertGrandchild(next) |
107 { | 138 { |
108 InspectorTest.addResult("Test that 'Subtree Modified' breakpoint is
hit when appending a grandchild."); | 139 InspectorTest.addResult("Test that 'Subtree Modified' breakpoint is
hit when appending a grandchild."); |
109 InspectorTest.evaluateInPageWithTimeout("appendElement('childElement
', 'grandchildElement')"); | 140 InspectorTest.evaluateInPageWithTimeout("appendElement('childElement
', 'grandchildElement')"); |
110 InspectorTest.addResult("Append grandchildElement to childElement.")
; | 141 InspectorTest.addResult("Append grandchildElement to childElement.")
; |
111 InspectorTest.waitUntilPausedAndDumpStackAndResume(next); | 142 InspectorTest.waitUntilPausedAndDumpStackAndResume(next); |
112 }, | 143 }, |
113 | 144 |
114 function testRemoveChild(next) | 145 function testRemoveChild(next) |
115 { | 146 { |
(...skipping 13 matching lines...) Expand all Loading... |
129 function step2() | 160 function step2() |
130 { | 161 { |
131 InspectorTest.waitUntilPaused(step3); | 162 InspectorTest.waitUntilPaused(step3); |
132 InspectorTest.evaluateInPageWithTimeout("breakDebugger()"); | 163 InspectorTest.evaluateInPageWithTimeout("breakDebugger()"); |
133 InspectorTest.addResult("Call breakDebugger, expect it to show u
p in next stack trace."); | 164 InspectorTest.addResult("Call breakDebugger, expect it to show u
p in next stack trace."); |
134 } | 165 } |
135 | 166 |
136 function step3(frames) | 167 function step3(frames) |
137 { | 168 { |
138 InspectorTest.captureStackTrace(frames); | 169 InspectorTest.captureStackTrace(frames); |
139 pane._removeBreakpoint(rootElement, pane._breakpointTypes.Subtre
eModified); | 170 WebInspector.domBreakpointManager.removeBreakpoint(rootElement,
WebInspector.DOMBreakpointsSidebarPane.BreakpointTypes.SubtreeModified); |
140 InspectorTest.resumeExecution(next); | 171 InspectorTest.resumeExecution(next); |
141 } | 172 } |
142 }, | 173 }, |
143 | 174 |
144 function testModifyAttribute(next) | 175 function testModifyAttribute(next) |
145 { | 176 { |
146 InspectorTest.addResult("Test that 'Attribute Modified' breakpoint i
s hit when modifying attribute."); | 177 InspectorTest.addResult("Test that 'Attribute Modified' breakpoint i
s hit when modifying attribute."); |
147 pane._setBreakpoint(rootElement, pane._breakpointTypes.AttributeModi
fied, true); | 178 WebInspector.domBreakpointManager.setBreakpoint(rootElement, WebInsp
ector.DOMBreakpointsSidebarPane.BreakpointTypes.AttributeModified, true); |
148 InspectorTest.addResult("Set 'Attribute Modified' DOM breakpoint on
rootElement."); | 179 InspectorTest.addResult("Set 'Attribute Modified' DOM breakpoint on
rootElement."); |
149 InspectorTest.evaluateInPageWithTimeout("modifyAttribute('rootElemen
t', 'data-test', 'foo')"); | 180 InspectorTest.evaluateInPageWithTimeout("modifyAttribute('rootElemen
t', 'data-test', 'foo')"); |
150 InspectorTest.addResult("Modify rootElement data-test attribute."); | 181 InspectorTest.addResult("Modify rootElement data-test attribute."); |
151 InspectorTest.waitUntilPausedAndDumpStackAndResume(step2); | 182 InspectorTest.waitUntilPausedAndDumpStackAndResume(step2); |
152 | 183 |
153 function step2(callFrames) | 184 function step2(callFrames) |
154 { | 185 { |
155 pane._removeBreakpoint(rootElement, pane._breakpointTypes.Attrib
uteModified); | 186 WebInspector.domBreakpointManager.removeBreakpoint(rootElement,
WebInspector.DOMBreakpointsSidebarPane.BreakpointTypes.AttributeModified); |
156 next(); | 187 InspectorTest.addResult("Ensure the breakpoint is actually remov
ed."); |
| 188 InspectorTest.evaluateInPagePromise("modifyAttribute('rootElemen
t', 'data-test', 'foo')").then(step3); |
| 189 InspectorTest.addResult("Modify rootElement data-test attribute.
"); |
| 190 } |
| 191 |
| 192 function step3() |
| 193 { |
| 194 InspectorTest.waitUntilResumed(next); |
157 } | 195 } |
158 }, | 196 }, |
159 | 197 |
160 function testModifyAttrNode(next) | 198 function testModifyAttrNode(next) |
161 { | 199 { |
162 InspectorTest.addResult("Test that 'Attribute Modified' breakpoint i
s hit when modifying Attr node."); | 200 InspectorTest.addResult("Test that 'Attribute Modified' breakpoint i
s hit when modifying Attr node."); |
163 pane._setBreakpoint(rootElement, pane._breakpointTypes.AttributeModi
fied, true); | 201 WebInspector.domBreakpointManager.setBreakpoint(rootElement, WebInsp
ector.DOMBreakpointsSidebarPane.BreakpointTypes.AttributeModified, true); |
164 InspectorTest.addResult("Set 'Attribute Modified' DOM breakpoint on
rootElement."); | 202 InspectorTest.addResult("Set 'Attribute Modified' DOM breakpoint on
rootElement."); |
165 InspectorTest.evaluateInPageWithTimeout("modifyAttrNode('rootElement
', 'data-test', 'bar')"); | 203 InspectorTest.evaluateInPageWithTimeout("modifyAttrNode('rootElement
', 'data-test', 'bar')"); |
166 InspectorTest.addResult("Modify rootElement data-test attribute."); | 204 InspectorTest.addResult("Modify rootElement data-test attribute."); |
167 InspectorTest.waitUntilPausedAndDumpStackAndResume(step2); | 205 InspectorTest.waitUntilPausedAndDumpStackAndResume(step2); |
168 | 206 |
169 function step2(callFrames) | 207 function step2(callFrames) |
170 { | 208 { |
171 pane._removeBreakpoint(rootElement, pane._breakpointTypes.Attrib
uteModified); | 209 WebInspector.domBreakpointManager.removeBreakpoint(rootElement,
WebInspector.DOMBreakpointsSidebarPane.BreakpointTypes.AttributeModified); |
172 next(); | 210 next(); |
173 } | 211 } |
174 }, | 212 }, |
175 | 213 |
176 function testSetAttrNode(next) | 214 function testSetAttrNode(next) |
177 { | 215 { |
178 InspectorTest.addResult("Test that 'Attribute Modified' breakpoint i
s hit when adding a new Attr node."); | 216 InspectorTest.addResult("Test that 'Attribute Modified' breakpoint i
s hit when adding a new Attr node."); |
179 pane._setBreakpoint(rootElement, pane._breakpointTypes.AttributeModi
fied, true); | 217 WebInspector.domBreakpointManager.setBreakpoint(rootElement, WebInsp
ector.DOMBreakpointsSidebarPane.BreakpointTypes.AttributeModified, true); |
180 InspectorTest.addResult("Set 'Attribute Modified' DOM breakpoint on
rootElement."); | 218 InspectorTest.addResult("Set 'Attribute Modified' DOM breakpoint on
rootElement."); |
181 InspectorTest.evaluateInPageWithTimeout("setAttrNode('rootElement',
'data-foo', 'bar')"); | 219 InspectorTest.evaluateInPageWithTimeout("setAttrNode('rootElement',
'data-foo', 'bar')"); |
182 InspectorTest.addResult("Modify rootElement data-foo attribute."); | 220 InspectorTest.addResult("Modify rootElement data-foo attribute."); |
183 InspectorTest.waitUntilPausedAndDumpStackAndResume(step2); | 221 InspectorTest.waitUntilPausedAndDumpStackAndResume(step2); |
184 | 222 |
185 function step2(callFrames) | 223 function step2(callFrames) |
186 { | 224 { |
187 pane._removeBreakpoint(rootElement, pane._breakpointTypes.Attrib
uteModified); | 225 WebInspector.domBreakpointManager.removeBreakpoint(rootElement,
WebInspector.DOMBreakpointsSidebarPane.BreakpointTypes.AttributeModified); |
188 next(); | 226 next(); |
189 } | 227 } |
190 }, | 228 }, |
191 | 229 |
192 function testModifyStyleAttribute(next) | 230 function testModifyStyleAttribute(next) |
193 { | 231 { |
194 InspectorTest.addResult("Test that 'Attribute Modified' breakpoint i
s hit when modifying style attribute."); | 232 InspectorTest.addResult("Test that 'Attribute Modified' breakpoint i
s hit when modifying style attribute."); |
195 pane._setBreakpoint(rootElement, pane._breakpointTypes.AttributeModi
fied, true); | 233 WebInspector.domBreakpointManager.setBreakpoint(rootElement, WebInsp
ector.DOMBreakpointsSidebarPane.BreakpointTypes.AttributeModified, true); |
196 InspectorTest.addResult("Set 'Attribute Modified' DOM breakpoint on
rootElement."); | 234 InspectorTest.addResult("Set 'Attribute Modified' DOM breakpoint on
rootElement."); |
197 InspectorTest.evaluateInPageWithTimeout("modifyStyleAttribute('rootE
lement', 'color', 'green')"); | 235 InspectorTest.evaluateInPageWithTimeout("modifyStyleAttribute('rootE
lement', 'color', 'green')"); |
198 InspectorTest.addResult("Modify rootElement style.color attribute.")
; | 236 InspectorTest.addResult("Modify rootElement style.color attribute.")
; |
199 InspectorTest.waitUntilPausedAndDumpStackAndResume(step2); | 237 InspectorTest.waitUntilPausedAndDumpStackAndResume(step2); |
200 | 238 |
201 function step2(callFrames) | 239 function step2(callFrames) |
202 { | 240 { |
203 pane._removeBreakpoint(rootElement, pane._breakpointTypes.Attrib
uteModified); | 241 WebInspector.domBreakpointManager.removeBreakpoint(rootElement,
WebInspector.DOMBreakpointsSidebarPane.BreakpointTypes.AttributeModified); |
204 next(); | 242 next(); |
205 } | 243 } |
206 }, | 244 }, |
207 | 245 |
208 function testRemoveNode(next) | 246 function testRemoveNode(next) |
209 { | 247 { |
210 InspectorTest.addResult("Test that 'Node Removed' breakpoint is hit
when removing a node."); | 248 InspectorTest.addResult("Test that 'Node Removed' breakpoint is hit
when removing a node."); |
211 InspectorTest.nodeWithId("elementToRemove", step2); | 249 InspectorTest.nodeWithId("elementToRemove", step2); |
212 | 250 |
213 function step2(node) | 251 function step2(node) |
214 { | 252 { |
215 pane._setBreakpoint(node, pane._breakpointTypes.NodeRemoved, tru
e); | 253 WebInspector.domBreakpointManager.setBreakpoint(node, WebInspect
or.DOMBreakpointsSidebarPane.BreakpointTypes.NodeRemoved, true); |
216 InspectorTest.addResult("Set 'Node Removed' DOM breakpoint on el
ementToRemove."); | 254 InspectorTest.addResult("Set 'Node Removed' DOM breakpoint on el
ementToRemove."); |
217 InspectorTest.evaluateInPageWithTimeout("removeElement('elementT
oRemove')"); | 255 InspectorTest.evaluateInPageWithTimeout("removeElement('elementT
oRemove')"); |
218 InspectorTest.addResult("Remove elementToRemove."); | 256 InspectorTest.addResult("Remove elementToRemove."); |
219 InspectorTest.waitUntilPausedAndDumpStackAndResume(next); | 257 InspectorTest.waitUntilPausedAndDumpStackAndResume(next); |
220 } | 258 } |
221 }, | 259 }, |
222 | 260 |
223 function testReload(next) | 261 function testReload(next) |
224 { | 262 { |
225 InspectorTest.addResult("Test that DOM breakpoints are persisted bet
ween page reloads."); | 263 InspectorTest.addResult("Test that DOM breakpoints are persisted bet
ween page reloads."); |
226 InspectorTest.nodeWithId("rootElement", step2); | 264 InspectorTest.nodeWithId("rootElement", step2); |
227 | 265 |
228 function step2(node) | 266 function step2(node) |
229 { | 267 { |
230 pane._setBreakpoint(node, pane._breakpointTypes.SubtreeModified,
true); | 268 WebInspector.domBreakpointManager.setBreakpoint(node, WebInspect
or.DOMBreakpointsSidebarPane.BreakpointTypes.SubtreeModified, true); |
231 pane._saveBreakpoints(); | |
232 InspectorTest.addResult("Set 'Subtree Modified' DOM breakpoint o
n rootElement."); | 269 InspectorTest.addResult("Set 'Subtree Modified' DOM breakpoint o
n rootElement."); |
233 InspectorTest.reloadPage(step3); | 270 InspectorTest.reloadPage(step3); |
234 } | 271 } |
235 | 272 |
236 function step3() | 273 function step3() |
237 { | 274 { |
238 InspectorTest.expandElementsTree(step4); | 275 InspectorTest.expandElementsTree(step4); |
239 } | 276 } |
240 | 277 |
241 function step4() | 278 function step4() |
242 { | 279 { |
243 InspectorTest.evaluateInPageWithTimeout("appendElement('rootElem
ent', 'childElement')"); | 280 InspectorTest.evaluateInPageWithTimeout("appendElement('rootElem
ent', 'childElement')"); |
244 InspectorTest.addResult("Append childElement to rootElement."); | 281 InspectorTest.addResult("Append childElement to rootElement."); |
245 InspectorTest.waitUntilPausedAndDumpStackAndResume(next); | 282 InspectorTest.waitUntilPausedAndDumpStackAndResume(next); |
246 } | 283 } |
247 }, | 284 }, |
248 | 285 |
249 function testInsertChildIntoAuthorShadowTree(next) | 286 function testInsertChildIntoAuthorShadowTree(next) |
250 { | 287 { |
251 InspectorTest.shadowRootByHostId("hostElement", callback); | 288 InspectorTest.shadowRootByHostId("hostElement", callback); |
252 | 289 |
253 function callback(node) | 290 function callback(node) |
254 { | 291 { |
255 authorShadowRoot = node; | 292 authorShadowRoot = node; |
256 InspectorTest.addResult("Test that 'Subtree Modified' breakpoint
on author shadow root is hit when appending a child."); | 293 InspectorTest.addResult("Test that 'Subtree Modified' breakpoint
on author shadow root is hit when appending a child."); |
257 pane._setBreakpoint(authorShadowRoot, pane._breakpointTypes.Subt
reeModified, true); | 294 WebInspector.domBreakpointManager.setBreakpoint(authorShadowRoot
, WebInspector.DOMBreakpointsSidebarPane.BreakpointTypes.SubtreeModified, true); |
258 InspectorTest.addResult("Set 'Subtree Modified' DOM breakpoint o
n author shadow root."); | 295 InspectorTest.addResult("Set 'Subtree Modified' DOM breakpoint o
n author shadow root."); |
259 InspectorTest.evaluateInPageWithTimeout("appendElementToOpenShad
owRoot('childElement')"); | 296 InspectorTest.evaluateInPageWithTimeout("appendElementToOpenShad
owRoot('childElement')"); |
260 InspectorTest.addResult("Append childElement to author shadow ro
ot."); | 297 InspectorTest.addResult("Append childElement to author shadow ro
ot."); |
261 InspectorTest.waitUntilPausedAndDumpStackAndResume(next); | 298 InspectorTest.waitUntilPausedAndDumpStackAndResume(next); |
262 } | 299 } |
263 }, | 300 }, |
264 | 301 |
265 function testReloadWithShadowElementBreakpoint(next) | 302 function testReloadWithShadowElementBreakpoint(next) |
266 { | 303 { |
267 InspectorTest.nodeWithId("outerElement", step1); | 304 InspectorTest.nodeWithId("outerElement", step1); |
268 | 305 |
269 function step1(node) | 306 function step1(node) |
270 { | 307 { |
271 outerElement = node; | 308 outerElement = node; |
272 | 309 |
273 InspectorTest.addResult("Test that shadow DOM breakpoints are pe
rsisted between page reloads."); | 310 InspectorTest.addResult("Test that shadow DOM breakpoints are pe
rsisted between page reloads."); |
274 pane._setBreakpoint(outerElement, pane._breakpointTypes.SubtreeM
odified, true); | 311 WebInspector.domBreakpointManager.setBreakpoint(outerElement, We
bInspector.DOMBreakpointsSidebarPane.BreakpointTypes.SubtreeModified, true); |
275 pane._saveBreakpoints(); | |
276 InspectorTest.addResult("Set 'Subtree Modified' DOM breakpoint o
n outerElement."); | 312 InspectorTest.addResult("Set 'Subtree Modified' DOM breakpoint o
n outerElement."); |
277 InspectorTest.reloadPage(step2); | 313 InspectorTest.reloadPage(step2); |
278 } | 314 } |
279 | 315 |
280 function step2() | 316 function step2() |
281 { | 317 { |
282 InspectorTest.expandElementsTree(step3); | 318 InspectorTest.expandElementsTree(step3); |
283 } | 319 } |
284 | 320 |
285 function step3() | 321 function step3() |
(...skipping 20 matching lines...) Expand all Loading... |
306 </div> | 342 </div> |
307 | 343 |
308 <div id="hostElement"></div> | 344 <div id="hostElement"></div> |
309 <script> | 345 <script> |
310 var root = document.getElementById("hostElement").createShadowRoot(); | 346 var root = document.getElementById("hostElement").createShadowRoot(); |
311 root.innerHTML = "<div id='outerElement' style='red'><input id='input'/></div>"; | 347 root.innerHTML = "<div id='outerElement' style='red'><input id='input'/></div>"; |
312 </script> | 348 </script> |
313 | 349 |
314 </body> | 350 </body> |
315 </html> | 351 </html> |
OLD | NEW |