| <html> |
| <head> |
| <script src="../../http/tests/inspector/inspector-test.js"></script> |
| <script src="../../http/tests/inspector/debugger-test.js"></script> |
| <script src="../../http/tests/inspector/workspace-test.js"></script> |
| <script> |
| function test() |
| { |
| var defaultScriptMapping; |
| function createResourceScriptMapping() |
| { |
| InspectorTest.createWorkspace(); |
| defaultScriptMapping = new WebInspector.DefaultScriptMapping(InspectorTest.testWorkspace); |
| var resourceScriptMapping = new WebInspector.ResourceScriptMapping(InspectorTest.testWorkspace); |
| return resourceScriptMapping; |
| } |
| |
| InspectorTest.runTestSuite([ |
| function testScriptWithPendingResource(next) |
| { |
| var script; |
| WebInspector.debuggerModel._reset(); |
| var resourceScriptMapping = createResourceScriptMapping(); |
| var url = "foo.js"; |
| step1(); |
| |
| function step1() |
| { |
| InspectorTest.addResult("Adding script for pending request."); |
| script = InspectorTest.createScriptMock(url, 0, 0, true, "<content script source>"); |
| InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(originalUISourceCodeAdded); |
| defaultScriptMapping.addScript(script); |
| resourceScriptMapping.addScript(script); |
| |
| var originalUISourceCode; |
| script.rawLocationToUILocation(0, 5); |
| |
| function originalUISourceCodeAdded(uiSourceCode) |
| { |
| originalUISourceCode = uiSourceCode; |
| } |
| |
| InspectorTest.checkUILocation(originalUISourceCode, 0, 5, script.rawLocationToUILocation(0, 5)); |
| InspectorTest.checkRawLocation(script, 10, 0, originalUISourceCode.uiLocationToRawLocation(10, 0)); |
| InspectorTest.dumpUISourceCode(originalUISourceCode, step2); |
| } |
| |
| function step2() |
| { |
| InspectorTest.addResult("Adding uiSourceCode for finished resource."); |
| InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(uiSourceCodeAdded); |
| InspectorTest.addMockUISourceCodeToWorkspace(url, WebInspector.resourceTypes.Script, "<content script resource content>"); |
| |
| function uiSourceCodeAdded(uiSourceCode) |
| { |
| InspectorTest.checkUILocation(uiSourceCode, 0, 5, script.rawLocationToUILocation(0, 5)); |
| InspectorTest.checkRawLocation(script, 10, 0, uiSourceCode.uiLocationToRawLocation(10, 0)); |
| InspectorTest.dumpUISourceCode(uiSourceCode, next); |
| } |
| } |
| }, |
| |
| function testScriptWithFinishedResource(next) |
| { |
| var script; |
| WebInspector.debuggerModel._reset(); |
| var mockUISourceCode; |
| var resourceScriptMapping = createResourceScriptMapping(); |
| var url = "foo.js"; |
| step1(); |
| |
| function step1() |
| { |
| InspectorTest.addResult("Adding uiSourceCode for finished resource."); |
| InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(uiSourceCodeForResourceAdded); |
| InspectorTest.addMockUISourceCodeToWorkspace(url, WebInspector.resourceTypes.Script, "<script resource content>"); |
| } |
| |
| function uiSourceCodeForResourceAdded(uiSourceCode) |
| { |
| mockUISourceCode = uiSourceCode; |
| InspectorTest.dumpUISourceCode(uiSourceCode, step2); |
| } |
| |
| function step2() |
| { |
| InspectorTest.addResult("Adding script for finished request."); |
| script = InspectorTest.createScriptMock(url, 0, 0, false, "<script source>"); |
| resourceScriptMapping.addScript(script); |
| InspectorTest.checkUILocation(mockUISourceCode, 0, 5, script.rawLocationToUILocation(0, 5)); |
| InspectorTest.checkRawLocation(script, 10, 0, mockUISourceCode.uiLocationToRawLocation(10, 0)); |
| InspectorTest.dumpUISourceCode(mockUISourceCode, next); |
| } |
| }, |
| |
| function testHTMLWithPendingResource(next) |
| { |
| var script1; |
| var script2; |
| WebInspector.debuggerModel._reset(); |
| var resourceScriptMapping = createResourceScriptMapping(); |
| var originalUISourceCode1; |
| var originalUISourceCode2; |
| var url = "index.html"; |
| step1(); |
| |
| function step1() |
| { |
| InspectorTest.addResult("Adding first script for pending request."); |
| script1 = InspectorTest.createScriptMock(url, 0, 10, false, "<script source 1>"); |
| InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(originalUISourceCodeAdded); |
| defaultScriptMapping.addScript(script1); |
| resourceScriptMapping.addScript(script1); |
| |
| script1.rawLocationToUILocation(0, 5); |
| |
| function originalUISourceCodeAdded(uiSourceCode) |
| { |
| originalUISourceCode1 = uiSourceCode; |
| } |
| |
| InspectorTest.checkUILocation(originalUISourceCode1, 0, 5, script1.rawLocationToUILocation(0, 5)); |
| InspectorTest.checkRawLocation(script1, 10, 0, originalUISourceCode1.uiLocationToRawLocation(10, 0)); |
| InspectorTest.dumpUISourceCode(originalUISourceCode1, step2); |
| } |
| |
| function step2() |
| { |
| InspectorTest.addResult("Adding second script for pending request."); |
| script2 = InspectorTest.createScriptMock(url, 0, 45, false, "<script source 2>"); |
| InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(originalUISourceCodeAdded); |
| defaultScriptMapping.addScript(script2); |
| resourceScriptMapping.addScript(script2); |
| |
| function originalUISourceCodeAdded(uiSourceCode) |
| { |
| originalUISourceCode2 = uiSourceCode; |
| } |
| |
| InspectorTest.checkUILocation(originalUISourceCode2, 0, 5, script2.rawLocationToUILocation(0, 5)); |
| InspectorTest.checkRawLocation(script1, 10, 0, originalUISourceCode1.uiLocationToRawLocation(10, 0)); |
| InspectorTest.dumpUISourceCode(originalUISourceCode2, step3); |
| } |
| |
| function step3() |
| { |
| InspectorTest.addResult("Adding uiSourceCode for finished resource."); |
| InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(uiSourceCodeAdded); |
| InspectorTest.addMockUISourceCodeToWorkspace(url, WebInspector.resourceTypes.Document, "<resource content>"); |
| |
| function uiSourceCodeAdded(uiSourceCode) |
| { |
| InspectorTest.checkUILocation(uiSourceCode, 0, 5, script1.rawLocationToUILocation(0, 5)); |
| InspectorTest.checkRawLocation(script1, 10, 0, uiSourceCode.uiLocationToRawLocation(10, 0)); |
| InspectorTest.dumpUISourceCode(uiSourceCode, next); |
| } |
| } |
| }, |
| |
| function testHTMLWithFinishedResource(next) |
| { |
| var script1; |
| var script2; |
| WebInspector.debuggerModel._reset(); |
| var mockUISourceCode; |
| var resourceScriptMapping = createResourceScriptMapping(); |
| var url = "index.html"; |
| step1(); |
| |
| function step1() |
| { |
| InspectorTest.addResult("Adding uiSourceCode for finished resource."); |
| InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(uiSourceCodeForResourceAdded); |
| InspectorTest.addMockUISourceCodeToWorkspace(url, WebInspector.resourceTypes.Document, "<resource content>"); |
| } |
| |
| function uiSourceCodeForResourceAdded(uiSourceCode) |
| { |
| mockUISourceCode = uiSourceCode; |
| InspectorTest.dumpUISourceCode(uiSourceCode, step2); |
| } |
| |
| function step2() |
| { |
| InspectorTest.addResult("Adding first script for finished request."); |
| script1 = InspectorTest.createScriptMock(url, 1, 10, false, "<script source 1>"); |
| resourceScriptMapping.addScript(script1); |
| InspectorTest.checkUILocation(mockUISourceCode, 1, 20, script1.rawLocationToUILocation(1, 20)); |
| InspectorTest.checkRawLocation(script1, 1, 0, mockUISourceCode.uiLocationToRawLocation(1, 0)); |
| InspectorTest.checkRawLocation(script1, 6, 0, mockUISourceCode.uiLocationToRawLocation(6, 0)); |
| InspectorTest.dumpUISourceCode(mockUISourceCode, step3); |
| } |
| |
| function step3() |
| { |
| InspectorTest.addResult("Adding second script for finished request."); |
| script2 = InspectorTest.createScriptMock(url, 5, 45, false, "<script\nsource\n2>"); |
| resourceScriptMapping.addScript(script2); |
| InspectorTest.checkUILocation(mockUISourceCode, 1, 20, script1.rawLocationToUILocation(1, 20)); |
| InspectorTest.checkRawLocation(script1, 1, 0, mockUISourceCode.uiLocationToRawLocation(1, 0)); |
| InspectorTest.checkRawLocation(script2, 6, 0, mockUISourceCode.uiLocationToRawLocation(6, 0)); |
| InspectorTest.dumpUISourceCode(mockUISourceCode, next); |
| } |
| } |
| ]); |
| }; |
| |
| </script> |
| </head> |
| <body onload="runTest()"> |
| <p>Tests ResourceScriptMapping class.</p> |
| </body> |
| </html> |