3 <script src="../../http/tests/inspector/inspector-test.js"></script>
4 <script src="../../http/tests/inspector/debugger-test.js"></script>
5 <script src="../../http/tests/inspector/workspace-test.js"></script>
9 var defaultScriptMapping;
10 function createResourceScriptMapping()
12 InspectorTest.createWorkspace();
13 defaultScriptMapping = new WebInspector.DefaultScriptMapping(InspectorTest.testWorkspace);
14 var resourceScriptMapping = new WebInspector.ResourceScriptMapping(InspectorTest.testWorkspace);
15 return resourceScriptMapping;
18 InspectorTest.runTestSuite([
19 function testScriptWithPendingResource(next)
22 WebInspector.debuggerModel._reset();
23 var resourceScriptMapping = createResourceScriptMapping();
29 InspectorTest.addResult("Adding script for pending request.");
30 script = InspectorTest.createScriptMock(url, 0, 0, true, "<content script source>");
31 InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(originalUISourceCodeAdded);
32 defaultScriptMapping.addScript(script);
33 resourceScriptMapping.addScript(script);
35 var originalUISourceCode;
36 script.rawLocationToUILocation(0, 5);
38 function originalUISourceCodeAdded(uiSourceCode)
40 originalUISourceCode = uiSourceCode;
43 InspectorTest.checkUILocation(originalUISourceCode, 0, 5, script.rawLocationToUILocation(0, 5));
44 InspectorTest.checkRawLocation(script, 10, 0, originalUISourceCode.uiLocationToRawLocation(10, 0));
45 InspectorTest.dumpUISourceCode(originalUISourceCode, step2);
50 InspectorTest.addResult("Adding uiSourceCode for finished resource.");
51 InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(uiSourceCodeAdded);
52 InspectorTest.addMockUISourceCodeToWorkspace(url, WebInspector.resourceTypes.Script, "<content script resource content>");
54 function uiSourceCodeAdded(uiSourceCode)
56 InspectorTest.checkUILocation(uiSourceCode, 0, 5, script.rawLocationToUILocation(0, 5));
57 InspectorTest.checkRawLocation(script, 10, 0, uiSourceCode.uiLocationToRawLocation(10, 0));
58 InspectorTest.dumpUISourceCode(uiSourceCode, next);
63 function testScriptWithFinishedResource(next)
66 WebInspector.debuggerModel._reset();
68 var resourceScriptMapping = createResourceScriptMapping();
74 InspectorTest.addResult("Adding uiSourceCode for finished resource.");
75 InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(uiSourceCodeForResourceAdded);
76 InspectorTest.addMockUISourceCodeToWorkspace(url, WebInspector.resourceTypes.Script, "<script resource content>");
79 function uiSourceCodeForResourceAdded(uiSourceCode)
81 mockUISourceCode = uiSourceCode;
82 InspectorTest.dumpUISourceCode(uiSourceCode, step2);
87 InspectorTest.addResult("Adding script for finished request.");
88 script = InspectorTest.createScriptMock(url, 0, 0, false, "<script source>");
89 resourceScriptMapping.addScript(script);
90 InspectorTest.checkUILocation(mockUISourceCode, 0, 5, script.rawLocationToUILocation(0, 5));
91 InspectorTest.checkRawLocation(script, 10, 0, mockUISourceCode.uiLocationToRawLocation(10, 0));
92 InspectorTest.dumpUISourceCode(mockUISourceCode, next);
96 function testHTMLWithPendingResource(next)
100 WebInspector.debuggerModel._reset();
101 var resourceScriptMapping = createResourceScriptMapping();
102 var originalUISourceCode1;
103 var originalUISourceCode2;
104 var url = "index.html";
109 InspectorTest.addResult("Adding first script for pending request.");
110 script1 = InspectorTest.createScriptMock(url, 0, 10, false, "<script source 1>");
111 InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(originalUISourceCodeAdded);
112 defaultScriptMapping.addScript(script1);
113 resourceScriptMapping.addScript(script1);
115 script1.rawLocationToUILocation(0, 5);
117 function originalUISourceCodeAdded(uiSourceCode)
119 originalUISourceCode1 = uiSourceCode;
122 InspectorTest.checkUILocation(originalUISourceCode1, 0, 5, script1.rawLocationToUILocation(0, 5));
123 InspectorTest.checkRawLocation(script1, 10, 0, originalUISourceCode1.uiLocationToRawLocation(10, 0));
124 InspectorTest.dumpUISourceCode(originalUISourceCode1, step2);
129 InspectorTest.addResult("Adding second script for pending request.");
130 script2 = InspectorTest.createScriptMock(url, 0, 45, false, "<script source 2>");
131 InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(originalUISourceCodeAdded);
132 defaultScriptMapping.addScript(script2);
133 resourceScriptMapping.addScript(script2);
135 function originalUISourceCodeAdded(uiSourceCode)
137 originalUISourceCode2 = uiSourceCode;
140 InspectorTest.checkUILocation(originalUISourceCode2, 0, 5, script2.rawLocationToUILocation(0, 5));
141 InspectorTest.checkRawLocation(script1, 10, 0, originalUISourceCode1.uiLocationToRawLocation(10, 0));
142 InspectorTest.dumpUISourceCode(originalUISourceCode2, step3);
147 InspectorTest.addResult("Adding uiSourceCode for finished resource.");
148 InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(uiSourceCodeAdded);
149 InspectorTest.addMockUISourceCodeToWorkspace(url, WebInspector.resourceTypes.Document, "<resource content>");
151 function uiSourceCodeAdded(uiSourceCode)
153 InspectorTest.checkUILocation(uiSourceCode, 0, 5, script1.rawLocationToUILocation(0, 5));
154 InspectorTest.checkRawLocation(script1, 10, 0, uiSourceCode.uiLocationToRawLocation(10, 0));
155 InspectorTest.dumpUISourceCode(uiSourceCode, next);
160 function testHTMLWithFinishedResource(next)
164 WebInspector.debuggerModel._reset();
165 var mockUISourceCode;
166 var resourceScriptMapping = createResourceScriptMapping();
167 var url = "index.html";
172 InspectorTest.addResult("Adding uiSourceCode for finished resource.");
173 InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(uiSourceCodeForResourceAdded);
174 InspectorTest.addMockUISourceCodeToWorkspace(url, WebInspector.resourceTypes.Document, "<resource content>");
177 function uiSourceCodeForResourceAdded(uiSourceCode)
179 mockUISourceCode = uiSourceCode;
180 InspectorTest.dumpUISourceCode(uiSourceCode, step2);
185 InspectorTest.addResult("Adding first script for finished request.");
186 script1 = InspectorTest.createScriptMock(url, 1, 10, false, "<script source 1>");
187 resourceScriptMapping.addScript(script1);
188 InspectorTest.checkUILocation(mockUISourceCode, 1, 20, script1.rawLocationToUILocation(1, 20));
189 InspectorTest.checkRawLocation(script1, 1, 0, mockUISourceCode.uiLocationToRawLocation(1, 0));
190 InspectorTest.checkRawLocation(script1, 6, 0, mockUISourceCode.uiLocationToRawLocation(6, 0));
191 InspectorTest.dumpUISourceCode(mockUISourceCode, step3);
196 InspectorTest.addResult("Adding second script for finished request.");
197 script2 = InspectorTest.createScriptMock(url, 5, 45, false, "<script\nsource\n2>");
198 resourceScriptMapping.addScript(script2);
199 InspectorTest.checkUILocation(mockUISourceCode, 1, 20, script1.rawLocationToUILocation(1, 20));
200 InspectorTest.checkRawLocation(script1, 1, 0, mockUISourceCode.uiLocationToRawLocation(1, 0));
201 InspectorTest.checkRawLocation(script2, 6, 0, mockUISourceCode.uiLocationToRawLocation(6, 0));
202 InspectorTest.dumpUISourceCode(mockUISourceCode, next);
210 <body onload="runTest()">
211 <p>Tests ResourceScriptMapping class.</p>