Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / inspector / sources / debugger / resource-script-mapping.html
1 <html>
2 <head>
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>
6 <script>
7 function test()
8 {
9     var defaultScriptMapping;
10     function createResourceScriptMapping()
11     {
12         InspectorTest.createWorkspace();
13         defaultScriptMapping = new WebInspector.DefaultScriptMapping(WebInspector.debuggerModel, InspectorTest.testWorkspace);
14         var resourceScriptMapping = new WebInspector.ResourceScriptMapping(WebInspector.debuggerModel, InspectorTest.testWorkspace);
15         return resourceScriptMapping;
16     }
17
18     InspectorTest.runTestSuite([
19         function testScriptWithPendingResource(next)
20         {
21             var script;
22             WebInspector.debuggerModel._reset();
23             var resourceScriptMapping = createResourceScriptMapping();
24             var url = "foo.js";
25             step1();
26
27             function step1()
28             {
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);
34                 
35                 var originalUISourceCode;
36                 script.rawLocationToUILocation(0, 5);
37
38                 function originalUISourceCodeAdded(uiSourceCode)
39                 {
40                     originalUISourceCode = uiSourceCode;
41                 }
42
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);
46             }
47
48             function step2()
49             {
50                 InspectorTest.addResult("Adding uiSourceCode for finished resource.");
51                 InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(uiSourceCodeAdded);
52                 InspectorTest.addMockUISourceCodeToWorkspace(url, WebInspector.resourceTypes.Script, "<content script resource content>");
53
54                 function uiSourceCodeAdded(uiSourceCode)
55                 {
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);
59                 }
60             }
61         },
62
63         function testScriptWithFinishedResource(next)
64         {
65             var script;
66             WebInspector.debuggerModel._reset();
67             var mockUISourceCode;
68             var resourceScriptMapping = createResourceScriptMapping();
69             var url = "foo.js";
70             step1();
71
72             function step1()
73             {
74                 InspectorTest.addResult("Adding uiSourceCode for finished resource.");
75                 InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(uiSourceCodeForResourceAdded);
76                 InspectorTest.addMockUISourceCodeToWorkspace(url, WebInspector.resourceTypes.Script, "<script resource content>");
77             }
78
79             function uiSourceCodeForResourceAdded(uiSourceCode)
80             {
81                 mockUISourceCode = uiSourceCode;
82                 InspectorTest.dumpUISourceCode(uiSourceCode, step2);
83             }
84
85             function step2()
86             {
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);
93             }
94         },
95
96         function testHTMLWithPendingResource(next)
97         {
98             var script1;
99             var script2;
100             WebInspector.debuggerModel._reset();
101             var resourceScriptMapping = createResourceScriptMapping();
102             var originalUISourceCode1;
103             var originalUISourceCode2;
104             var url = "index.html";
105             step1();
106
107             function step1()
108             {
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);
114                 
115                 script1.rawLocationToUILocation(0, 5);
116
117                 function originalUISourceCodeAdded(uiSourceCode)
118                 {
119                     originalUISourceCode1 = uiSourceCode;
120                 }
121
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);
125             }
126
127             function step2()
128             {
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);
134
135                 function originalUISourceCodeAdded(uiSourceCode)
136                 {
137                     originalUISourceCode2 = uiSourceCode;
138                 }
139
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);
143             }
144
145             function step3()
146             {
147                 InspectorTest.addResult("Adding uiSourceCode for finished resource.");
148                 InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(uiSourceCodeAdded);
149                 InspectorTest.addMockUISourceCodeToWorkspace(url, WebInspector.resourceTypes.Document, "<resource content>");
150
151                 function uiSourceCodeAdded(uiSourceCode)
152                 {
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);
156                 }
157             }
158         },
159
160         function testHTMLWithFinishedResource(next)
161         {
162             var script1;
163             var script2;
164             WebInspector.debuggerModel._reset();
165             var mockUISourceCode;
166             var resourceScriptMapping = createResourceScriptMapping();
167             var url = "index.html";
168             step1();
169
170             function step1()
171             {
172                 InspectorTest.addResult("Adding uiSourceCode for finished resource.");
173                 InspectorTest.waitForWorkspaceUISourceCodeAddedEvent(uiSourceCodeForResourceAdded);
174                 InspectorTest.addMockUISourceCodeToWorkspace(url, WebInspector.resourceTypes.Document, "<resource content>");
175             }
176
177             function uiSourceCodeForResourceAdded(uiSourceCode)
178             {
179                 mockUISourceCode = uiSourceCode;
180                 InspectorTest.dumpUISourceCode(uiSourceCode, step2);
181             }
182
183             function step2()
184             {
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);
192             }
193
194             function step3()
195             {
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);
203             }
204         }
205     ]);
206 };
207
208 </script>
209 </head>
210 <body onload="runTest()">
211 <p>Tests ResourceScriptMapping class.</p>
212 </body>
213 </html>