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 | 4 |
5 <script> | 5 <script> |
6 | 6 |
7 function test() | 7 function test() |
8 { | 8 { |
9 var workspace; | 9 var workspace; |
10 var uiSourceCodes = {}; | 10 var uiSourceCodes = {}; |
11 var mockTarget = { | 11 var mockTarget = { |
12 | 12 |
13 id: function() | 13 id: function() |
14 { | 14 { |
15 return 1; | 15 return 1; |
16 } | 16 } |
17 }; | 17 }; |
18 var targetManager = { | 18 var targetManager = new WebInspector.TargetManager(); |
19 targets: function () { return [mockTarget]}, | 19 targetManager._targets.push(mockTarget); |
20 observeTargets: function() {} | |
21 } | |
22 | 20 |
23 var defaultMapping = { | 21 var defaultMapping = { |
24 rawLocationToUILocation: function(rawLocation) | 22 rawLocationToUILocation: function(rawLocation) |
25 { | 23 { |
26 return uiSourceCodes[rawLocation.scriptId].uiLocation(rawLocation.li
neNumber, 0); | 24 return uiSourceCodes[rawLocation.scriptId].uiLocation(rawLocation.li
neNumber, 0); |
27 }, | 25 }, |
28 | 26 |
29 uiLocationToRawLocation: function(uiSourceCode, lineNumber) | 27 uiLocationToRawLocation: function(uiSourceCode, lineNumber) |
30 { | 28 { |
31 if (!uiSourceCodes[uiSourceCode.url]) | 29 if (!uiSourceCodes[uiSourceCode.url]) |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
78 return false; | 76 return false; |
79 } | 77 } |
80 }; | 78 }; |
81 | 79 |
82 return mapping; | 80 return mapping; |
83 } | 81 } |
84 | 82 |
85 function DebuggerModelMock(sourceMapping) | 83 function DebuggerModelMock(sourceMapping) |
86 { | 84 { |
87 mockTarget.debuggerModel = this; | 85 mockTarget.debuggerModel = this; |
| 86 this._breakpointResolvedEventTarget = new WebInspector.Object(); |
88 this._scripts = {}; | 87 this._scripts = {}; |
89 this._sourceMapping = sourceMapping; | 88 this._sourceMapping = sourceMapping; |
90 this._breakpoints = {}; | 89 this._breakpoints = {}; |
91 } | 90 } |
92 | 91 |
93 DebuggerModelMock.prototype = { | 92 DebuggerModelMock.prototype = { |
94 target: function() | 93 target: function() |
95 { | 94 { |
96 return mockTarget; | 95 return mockTarget; |
97 }, | 96 }, |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
202 { | 201 { |
203 for (var scriptId in this._scripts) | 202 for (var scriptId in this._scripts) |
204 this._scripts[scriptId].pushSourceMapping(sourceMapping); | 203 this._scripts[scriptId].pushSourceMapping(sourceMapping); |
205 }, | 204 }, |
206 | 205 |
207 disableSourceMapping: function(sourceMapping) | 206 disableSourceMapping: function(sourceMapping) |
208 { | 207 { |
209 sourceMapping._disabled = true; | 208 sourceMapping._disabled = true; |
210 for (var scriptId in this._scripts) | 209 for (var scriptId in this._scripts) |
211 this._scripts[scriptId].updateLocations(); | 210 this._scripts[scriptId].updateLocations(); |
| 211 }, |
| 212 |
| 213 addBreakpointListener: function(breakpointId, listener, thisObject) |
| 214 { |
| 215 this._breakpointResolvedEventTarget.addEventListener(breakpointId, l
istener, thisObject) |
| 216 }, |
| 217 |
| 218 removeBreakpointListener: function(breakpointId, listener, thisObject) |
| 219 { |
| 220 this._breakpointResolvedEventTarget.removeEventListener(breakpointId
, listener, thisObject); |
| 221 }, |
| 222 |
| 223 _breakpointResolved: function(breakpointId, location) |
| 224 { |
| 225 this._breakpointResolvedEventTarget.dispatchEventToListeners(breakpo
intId, location); |
212 } | 226 } |
213 } | 227 } |
214 DebuggerModelMock.prototype.__proto__ = WebInspector.Object.prototype; | 228 DebuggerModelMock.prototype.__proto__ = WebInspector.Object.prototype; |
215 | 229 |
216 var dummySetting = { | |
217 get: function() { return []; }, | |
218 set: function(breakpoints) { } | |
219 }; | |
220 | |
221 function resetWorkspace(breakpointManager) | 230 function resetWorkspace(breakpointManager) |
222 { | 231 { |
223 InspectorTest.addResult(" Resetting workspace."); | 232 InspectorTest.addResult(" Resetting workspace."); |
224 breakpointManager._networkWorkspaceBinding.reset(); | 233 breakpointManager._networkWorkspaceBinding.reset(); |
225 breakpointManager._debuggerProjectDelegate.reset(); | 234 breakpointManager._debuggerProjectDelegate.reset(); |
226 } | 235 } |
227 | 236 |
228 function breakpointAdded(event) | 237 function breakpointAdded(event) |
229 { | 238 { |
230 var breakpoint = event.data.breakpoint; | 239 var breakpoint = event.data.breakpoint; |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
287 persistentBreakpoints = persistentBreakpoints || []; | 296 persistentBreakpoints = persistentBreakpoints || []; |
288 var setting = { | 297 var setting = { |
289 get: function() { return persistentBreakpoints; }, | 298 get: function() { return persistentBreakpoints; }, |
290 set: function(breakpoints) { persistentBreakpoints = breakpoints; } | 299 set: function(breakpoints) { persistentBreakpoints = breakpoints; } |
291 }; | 300 }; |
292 | 301 |
293 var sourceMapping = sourceMapping || defaultMapping; | 302 var sourceMapping = sourceMapping || defaultMapping; |
294 var debuggerModel = new DebuggerModelMock(sourceMapping); | 303 var debuggerModel = new DebuggerModelMock(sourceMapping); |
295 workspace = new WebInspector.Workspace(); | 304 workspace = new WebInspector.Workspace(); |
296 var breakpointManager = new WebInspector.BreakpointManager(setting, work
space, targetManager); | 305 var breakpointManager = new WebInspector.BreakpointManager(setting, work
space, targetManager); |
297 mockTarget.debuggerModel = debuggerModel; | |
298 breakpointManager.targetAdded(mockTarget); | |
299 breakpointManager._networkWorkspaceBinding = new WebInspector.NetworkWor
kspaceBinding(workspace); | 306 breakpointManager._networkWorkspaceBinding = new WebInspector.NetworkWor
kspaceBinding(workspace); |
300 breakpointManager._debuggerProjectDelegate = new WebInspector.DebuggerPr
ojectDelegate(workspace, "debugger:", WebInspector.projectTypes.Debugger); | 307 breakpointManager._debuggerProjectDelegate = new WebInspector.DebuggerPr
ojectDelegate(workspace, "debugger:", WebInspector.projectTypes.Debugger); |
301 breakpointManager.addEventListener(WebInspector.BreakpointManager.Events
.BreakpointAdded, breakpointAdded); | 308 breakpointManager.addEventListener(WebInspector.BreakpointManager.Events
.BreakpointAdded, breakpointAdded); |
302 breakpointManager.addEventListener(WebInspector.BreakpointManager.Events
.BreakpointRemoved, breakpointRemoved); | 309 breakpointManager.addEventListener(WebInspector.BreakpointManager.Events
.BreakpointRemoved, breakpointRemoved); |
303 InspectorTest.addResult(" Created breakpoints manager"); | 310 InspectorTest.addResult(" Created breakpoints manager"); |
304 dumpBreakpointStorage(breakpointManager); | 311 dumpBreakpointStorage(breakpointManager); |
305 return breakpointManager; | 312 return breakpointManager; |
306 } | 313 } |
307 | 314 |
308 function setBreakpoint(breakpointManager, uiSourceCode, lineNumber, columnNu
mber, condition, enabled) | 315 function setBreakpoint(breakpointManager, uiSourceCode, lineNumber, columnNu
mber, condition, enabled) |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
351 } | 358 } |
352 if (lastUISourceCode) | 359 if (lastUISourceCode) |
353 dumpLocations(lastUISourceCode, locations); | 360 dumpLocations(lastUISourceCode, locations); |
354 } | 361 } |
355 | 362 |
356 function resetBreakpointManager(breakpointManager, next) | 363 function resetBreakpointManager(breakpointManager, next) |
357 { | 364 { |
358 dumpBreakpointStorage(breakpointManager); | 365 dumpBreakpointStorage(breakpointManager); |
359 InspectorTest.addResult(" Resetting breakpoint manager"); | 366 InspectorTest.addResult(" Resetting breakpoint manager"); |
360 breakpointManager.removeAllBreakpoints(); | 367 breakpointManager.removeAllBreakpoints(); |
361 breakpointManager.removeProvisionalBreakpointsForTest(mockTarget); | 368 breakpointManager.removeProvisionalBreakpointsForTest(); |
362 uiSourceCodes = {}; | 369 uiSourceCodes = {}; |
363 next(); | 370 next(); |
364 } | 371 } |
365 | 372 |
366 InspectorTest.runTestSuite([ | 373 InspectorTest.runTestSuite([ |
367 function testSetBreakpoint(next) | 374 function testSetBreakpoint(next) |
368 { | 375 { |
369 var breakpointManager = createBreakpointManager(); | 376 var breakpointManager = createBreakpointManager(); |
370 var uiSourceCode = addUISourceCode(breakpointManager, "a.js"); | 377 var uiSourceCode = addUISourceCode(breakpointManager, "a.js"); |
371 setBreakpoint(breakpointManager, uiSourceCode, 30, 0, "", true); | 378 setBreakpoint(breakpointManager, uiSourceCode, 30, 0, "", true); |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
590 } | 597 } |
591 | 598 |
592 function step3() | 599 function step3() |
593 { | 600 { |
594 dumpBreakpointLocations(breakpointManager); | 601 dumpBreakpointLocations(breakpointManager); |
595 InspectorTest.addResult("\n Navigating back to A."); | 602 InspectorTest.addResult("\n Navigating back to A."); |
596 mockTarget.debuggerModel.reset(); | 603 mockTarget.debuggerModel.reset(); |
597 resetWorkspace(breakpointManager); | 604 resetWorkspace(breakpointManager); |
598 InspectorTest.addResult(" Resolving provisional breakpoint."); | 605 InspectorTest.addResult(" Resolving provisional breakpoint."); |
599 addTemporaryUISourceCode(breakpointManager, "a.js"); | 606 addTemporaryUISourceCode(breakpointManager, "a.js"); |
600 var eventData = { breakpointId: "a.js:10", location: new WebInsp
ector.DebuggerModel.Location(mockTarget, "a.js", 11, 5)}; | 607 mockTarget.debuggerModel._breakpointResolved("a.js:10", new WebI
nspector.DebuggerModel.Location(mockTarget, "a.js", 11, 5)); |
601 mockTarget.debuggerModel.dispatchEventToListeners(WebInspector.D
ebuggerModel.Events.BreakpointResolved, eventData); | |
602 addUISourceCode(breakpointManager, "a.js"); | 608 addUISourceCode(breakpointManager, "a.js"); |
603 window.setBreakpointCallback = step4.bind(this); | 609 window.setBreakpointCallback = step4.bind(this); |
604 } | 610 } |
605 | 611 |
606 function step4() | 612 function step4() |
607 { | 613 { |
608 dumpBreakpointLocations(breakpointManager); | 614 dumpBreakpointLocations(breakpointManager); |
609 resetBreakpointManager(breakpointManager, step5); | 615 resetBreakpointManager(breakpointManager, step5); |
610 } | 616 } |
611 | 617 |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
659 var breakpointManager = createBreakpointManager(serializedBreakpoint
s); | 665 var breakpointManager = createBreakpointManager(serializedBreakpoint
s); |
660 var uiSourceCode = addUISourceCode(breakpointManager, "a.js"); | 666 var uiSourceCode = addUISourceCode(breakpointManager, "a.js"); |
661 window.setBreakpointCallback = step2.bind(this); | 667 window.setBreakpointCallback = step2.bind(this); |
662 | 668 |
663 function step2() | 669 function step2() |
664 { | 670 { |
665 dumpBreakpointLocations(breakpointManager); | 671 dumpBreakpointLocations(breakpointManager); |
666 mockTarget.debuggerModel.reset(); | 672 mockTarget.debuggerModel.reset(); |
667 resetWorkspace(breakpointManager); | 673 resetWorkspace(breakpointManager); |
668 InspectorTest.addResult(" Resolving provisional breakpoint."); | 674 InspectorTest.addResult(" Resolving provisional breakpoint."); |
669 addTemporaryUISourceCode(breakpointManager, "a.js") | 675 addTemporaryUISourceCode(breakpointManager, "a.js"); |
670 var eventData = { breakpointId: "a.js:10", location: new WebInsp
ector.DebuggerModel.Location(mockTarget, "a.js", 11, 5)}; | 676 mockTarget.debuggerModel._breakpointResolved("a.js:10", new WebI
nspector.DebuggerModel.Location(mockTarget, "a.js", 11, 5)); |
671 mockTarget.debuggerModel.dispatchEventToListeners(WebInspector.D
ebuggerModel.Events.BreakpointResolved, eventData); | |
672 var breakpoints = breakpointManager.allBreakpoints(); | 677 var breakpoints = breakpointManager.allBreakpoints(); |
673 InspectorTest.assertEquals(breakpoints.length, 1, "Exactly one p
rovisional breakpoint should be registered in breakpoint manager."); | 678 InspectorTest.assertEquals(breakpoints.length, 1, "Exactly one p
rovisional breakpoint should be registered in breakpoint manager."); |
674 dumpBreakpointLocations(breakpointManager); | 679 dumpBreakpointLocations(breakpointManager); |
675 resetBreakpointManager(breakpointManager, step3); | 680 resetBreakpointManager(breakpointManager, step3); |
676 } | 681 } |
677 | 682 |
678 function step3() | 683 function step3() |
679 { | 684 { |
680 dumpBreakpointLocations(breakpointManager); | 685 dumpBreakpointLocations(breakpointManager); |
681 next(); | 686 next(); |
(...skipping 22 matching lines...) Expand all Loading... |
704 | 709 |
705 function step2() | 710 function step2() |
706 { | 711 { |
707 dumpBreakpointLocations(breakpointManager); | 712 dumpBreakpointLocations(breakpointManager); |
708 InspectorTest.addResult("\n Reloading:"); | 713 InspectorTest.addResult("\n Reloading:"); |
709 mockTarget.debuggerModel.reset(); | 714 mockTarget.debuggerModel.reset(); |
710 resetWorkspace(breakpointManager); | 715 resetWorkspace(breakpointManager); |
711 | 716 |
712 InspectorTest.addResult("\n Adding files:"); | 717 InspectorTest.addResult("\n Adding files:"); |
713 addTemporaryUISourceCode(breakpointManager, "a.js"); | 718 addTemporaryUISourceCode(breakpointManager, "a.js"); |
714 var eventData = { breakpointId: "a.js:10", location: new WebInsp
ector.DebuggerModel.Location(mockTarget, "a.js", 10, 5)}; | 719 mockTarget.debuggerModel._breakpointResolved("a.js:10", new WebI
nspector.DebuggerModel.Location(mockTarget, "a.js", 10, 5)); |
715 mockTarget.debuggerModel.dispatchEventToListeners(WebInspector.D
ebuggerModel.Events.BreakpointResolved, eventData); | |
716 uiSourceCodeA = addUISourceCode(breakpointManager, "a.js"); | 720 uiSourceCodeA = addUISourceCode(breakpointManager, "a.js"); |
717 uiSourceCodeB = addUISourceCode(breakpointManager, "b.js", true,
true); | 721 uiSourceCodeB = addUISourceCode(breakpointManager, "b.js", true,
true); |
718 | 722 |
719 InspectorTest.addResult("\n Toggling source mapping."); | 723 InspectorTest.addResult("\n Toggling source mapping."); |
720 var sourceMapping = createSourceMapping(uiSourceCodeA, uiSourceC
odeB); | 724 var sourceMapping = createSourceMapping(uiSourceCodeA, uiSourceC
odeB); |
721 mockTarget.debuggerModel.pushSourceMapping(sourceMapping); | 725 mockTarget.debuggerModel.pushSourceMapping(sourceMapping); |
722 window.setBreakpointCallback = provisionalBreakpointSetAfterRelo
ad.bind(this); | 726 window.setBreakpointCallback = provisionalBreakpointSetAfterRelo
ad.bind(this); |
723 uiSourceCodeB.setSourceMappingForTarget(mockTarget, sourceMappin
g); | 727 uiSourceCodeB.setSourceMappingForTarget(mockTarget, sourceMappin
g); |
724 } | 728 } |
725 | 729 |
(...skipping 29 matching lines...) Expand all Loading... |
755 { | 759 { |
756 dumpBreakpointLocations(breakpointManager); | 760 dumpBreakpointLocations(breakpointManager); |
757 InspectorTest.addResult("\n Reloading:"); | 761 InspectorTest.addResult("\n Reloading:"); |
758 mockTarget.debuggerModel.reset(); | 762 mockTarget.debuggerModel.reset(); |
759 resetWorkspace(breakpointManager); | 763 resetWorkspace(breakpointManager); |
760 | 764 |
761 InspectorTest.addResult("\n Adding file with script:"); | 765 InspectorTest.addResult("\n Adding file with script:"); |
762 var uiSourceCode = addUISourceCode(breakpointManager, "a.js"); | 766 var uiSourceCode = addUISourceCode(breakpointManager, "a.js"); |
763 | 767 |
764 InspectorTest.addResult("\n Emulating breakpoint resolved event
:"); | 768 InspectorTest.addResult("\n Emulating breakpoint resolved event
:"); |
765 var eventData = { breakpointId: "a.js:10", location: new WebInsp
ector.DebuggerModel.Location(mockTarget, "a.js", 10, 5)}; | 769 mockTarget.debuggerModel._breakpointResolved("a.js:10", new WebI
nspector.DebuggerModel.Location(mockTarget, "a.js", 10, 5)); |
766 mockTarget.debuggerModel.dispatchEventToListeners(WebInspector.D
ebuggerModel.Events.BreakpointResolved, eventData); | |
767 | 770 |
768 InspectorTest.addResult("\n Waiting for breakpoint to be set in
debugger again:"); | 771 InspectorTest.addResult("\n Waiting for breakpoint to be set in
debugger again:"); |
769 window.setBreakpointCallback = step3.bind(this); | 772 window.setBreakpointCallback = step3.bind(this); |
770 } | 773 } |
771 | 774 |
772 function step3() | 775 function step3() |
773 { | 776 { |
774 dumpBreakpointLocations(breakpointManager); | 777 dumpBreakpointLocations(breakpointManager); |
775 resetBreakpointManager(breakpointManager, step4); | 778 resetBreakpointManager(breakpointManager, step4); |
776 } | 779 } |
777 | 780 |
778 function step4() | 781 function step4() |
779 { | 782 { |
780 dumpBreakpointLocations(breakpointManager); | 783 dumpBreakpointLocations(breakpointManager); |
781 next(); | 784 next(); |
782 } | 785 } |
783 }, | 786 }, |
784 ]); | 787 ]); |
785 }; | 788 }; |
786 | 789 |
787 </script> | 790 </script> |
788 | 791 |
789 </head> | 792 </head> |
790 | 793 |
791 <body onload="runTest()"> | 794 <body onload="runTest()"> |
792 <p>Tests BreakpointManager class.</p> | 795 <p>Tests BreakpointManager class.</p> |
793 | 796 |
794 </body> | 797 </body> |
795 </html> | 798 </html> |
OLD | NEW |