tizen beta release
[profile/ivi/webkit-efl.git] / LayoutTests / inspector / debugger / linkifier.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>
6
7 function test()
8 {
9     InspectorTest.startDebuggerTest(waitForScripts);
10
11     var linkifier;
12     var link;
13     var rawSourceCode;
14
15     function waitForScripts()
16     {
17         var continued = false;
18         function scriptAdded(event)
19         {
20             if (continued)
21                 return;
22
23             var script = event.data;
24             if (script.sourceURL === WebInspector.inspectedPageURL) {
25                 continued = true;
26                 setTimeout(debuggerTest, 0);
27             }
28         }
29
30         WebInspector.debuggerModel.queryScripts(function(script) { scriptAdded({ data: script }) });
31         WebInspector.debuggerModel.addEventListener(WebInspector.DebuggerModel.Events.ParsedScriptSource, scriptAdded);
32     }
33
34     function debuggerTest()
35     {
36         linkifier = WebInspector.debuggerPresentationModel.createLinkifier();
37         rawSourceCode = WebInspector.debuggerPresentationModel._rawSourceCodeForScriptWithURL(WebInspector.inspectedPageURL);
38
39         var count1 = listenersCount(rawSourceCode);
40         link = linkifier.linkifyLocation(WebInspector.inspectedPageURL, 20, 0, "dummy-class");
41         var count2 = listenersCount(rawSourceCode);
42
43         InspectorTest.addResult("listeners added on raw source code: " + (count2 - count1));
44         InspectorTest.addResult("original location: " + link.textContent);
45
46         InspectorTest.addSniffer(linkifier, "_updateAnchor", linkUpdated);
47         WebInspector.debuggerPresentationModel.setFormatSource(true);
48     }
49
50     function linkUpdated()
51     {
52         InspectorTest.addResult("pretty printed location: " + link.textContent);
53         InspectorTest.addSniffer(linkifier, "_updateAnchor", linkReverted);
54         WebInspector.debuggerPresentationModel.setFormatSource(false);
55     }
56
57     function linkReverted()
58     {
59         InspectorTest.addResult("reverted location: " + link.textContent);
60
61         var count1 = listenersCount(rawSourceCode);
62         linkifier.reset();
63         var count2 = listenersCount(rawSourceCode);
64
65         InspectorTest.addResult("listeners removed from raw source code: " + (count1 - count2));
66
67         InspectorTest.completeDebuggerTest();
68     }
69
70     function listenersCount(object)
71     {
72         var listeners = object._listeners;
73         var count = 0;
74         for (var eventTypes in listeners) {
75             var listenersArray = listeners[eventTypes];
76             count += listenersArray.length;
77         }
78         return count; 
79     }
80 }
81
82 </script>
83 </head>
84
85 <body onload="runTest()">
86 <p>
87 Tests that Linkifier works correctly.
88 <p>
89
90 </body>
91 </html>