Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / http / tests / inspector-enabled / search / sources-search-scope.html
1 <html>
2 <head>
3 <title>Change inspected iframe's "src" attribute.</title>
4 <script src="../../inspector/inspector-test.js"></script>
5 <script src="../../inspector/resources-test.js"></script>
6 <script src="../../inspector/network-test.js"></script>
7 <script src="../../inspector/debugger-test.js"></script>
8 <script>
9 function onload()
10 {
11     if (window.testRunner)
12         testRunner.waitUntilDone();
13     // Since this test could be run together with other inspector backend cache
14     // tests, we need to reset size limits to default ones.
15     resetInspectorResourcesData();
16
17     if (window.testRunner)
18         testRunner.showWebInspector();
19     runTest();
20 }
21
22 function test()
23 {
24     WebInspector.inspectorView.showViewInDrawer("search");
25     InspectorTest.runAfterResourcesAreFinished(["search.html", "search.js", "search.css"], step2)
26
27     function runSearchAndDumpResults(searchConfig, callback)
28     {
29         var scope = new WebInspector.SourcesSearchScope();
30         var searchResults = [];
31         var progress = new WebInspector.Progress();
32         scope.performSearch(searchConfig, progress, searchResultCallback, searchFinishedCallback);
33
34         function searchResultCallback(searchResult)
35         {
36             searchResults.push(searchResult);
37         }
38
39         function searchFinishedCallback()
40         {
41             function filterOutEmptySearchResults(searchResult)
42             {
43                 return searchResult.searchMatches.length;
44             }
45             searchResults = searchResults.filter(filterOutEmptySearchResults);
46
47             function comparator(searchResultA, searchResultB)
48             {
49                 return searchResultA.uiSourceCode.uri().compareTo(searchResultB.uiSourceCode.uri());
50             }
51             searchResults.sort(comparator);
52
53             for (var i = 0; i < searchResults.length; ++i) {
54                 var searchResult = searchResults[i];
55                 var uiSourceCode = searchResult.uiSourceCode;
56                 var searchMatches = searchResult.searchMatches;
57
58                 if (!searchMatches.length)
59                     continue;
60                 InspectorTest.addResult("Search result #" + (i + 1) + ": uiSourceCode.uri = " + uiSourceCode.uri());
61                 for (var j = 0; j < searchMatches.length; ++j) {
62                     var lineNumber = searchMatches[j].lineNumber;
63                     var lineContent = searchMatches[j].lineContent;
64                     InspectorTest.addResult("  search match #" + (j + 1) + ": lineNumber = " + lineNumber + ", lineContent = '" + lineContent + "'");
65                 }
66             }
67             callback();
68         }
69     }
70
71     function step2()
72     {
73         InspectorTest.runTestSuite([
74             function testIgnoreCase(next)
75             {
76                 var query = "searchTest" + "UniqueString";
77                 var searchConfig = new WebInspector.SearchConfig(query, true, false);
78                 runSearchAndDumpResults(searchConfig, next);
79             },
80
81             function testCaseSensitive(next)
82             {
83                 var query = "searchTest" + "UniqueString";
84                 var searchConfig = new WebInspector.SearchConfig(query, false, false);
85                 runSearchAndDumpResults(searchConfig, next);
86             },
87
88             function testFileHTML(next)
89             {
90                 var query = "searchTest" + "UniqueString" + " file:html";
91                 var searchConfig = new WebInspector.SearchConfig(query, true, false);
92                 runSearchAndDumpResults(searchConfig, next);
93             },
94
95             function testFileJS(next)
96             {
97                 var query = "file:js " + "searchTest" + "UniqueString";
98                 var searchConfig = new WebInspector.SearchConfig(query, true, false);
99                 runSearchAndDumpResults(searchConfig, next);
100             },
101
102             function testFileHTMLJS(next)
103             {
104                 var query = "file:js " + "searchTest" + "UniqueString" + " file:html";
105                 var searchConfig = new WebInspector.SearchConfig(query, true, false);
106                 runSearchAndDumpResults(searchConfig, next);
107             },
108
109             function testSpaceQueries(next)
110             {
111                 var query = "searchTest" + "Unique" + " space" + " String";
112                 var searchConfig = new WebInspector.SearchConfig(query, true, false);
113                 runSearchAndDumpResults(searchConfig, next);
114             },
115
116             function testSpaceQueriesFileHTML(next)
117             {
118                 var query = "file:html " + "searchTest" + "Unique" + " space" + " String";
119                 var searchConfig = new WebInspector.SearchConfig(query, true, false);
120                 runSearchAndDumpResults(searchConfig, next);
121             },
122
123             function testSpaceQueriesFileHTML_SEARCH(next)
124             {
125                 var query = "file:html " + "searchTest" + "Unique" + " space" + " String" + " file:search";
126                 var searchConfig = new WebInspector.SearchConfig(query, true, false);
127                 runSearchAndDumpResults(searchConfig, next);
128             },
129
130             function testSpaceQueriesFileJS_SEARCH_HTML(next)
131             {
132                 var query = "file:js " + "searchTest" + "Unique" + " space" + " String" + " file:search file:html";
133                 var searchConfig = new WebInspector.SearchConfig(query, true, false);
134                 runSearchAndDumpResults(searchConfig, next);
135             },
136
137             function testSeveralQueriesFileHTML(next)
138             {
139                 var query = "searchTest" + "Unique" + " file:html " + " space" + " String";
140                 var searchConfig = new WebInspector.SearchConfig(query, true, false);
141                 runSearchAndDumpResults(searchConfig, next);
142             },
143
144             function testSeveralQueriesFileHTML_SEARCH(next)
145             {
146                 var query = "searchTest" + "Unique" + " file:html " + " space" + " String" + " file:search";
147                 var searchConfig = new WebInspector.SearchConfig(query, true, false);
148                 runSearchAndDumpResults(searchConfig, next);
149             },
150
151             function testSeveralQueriesFileJS_SEARCH_HTML(next)
152             {
153                 var query = "file:js " + "searchTest" + "Unique" + " file:html " + " space" + " String" + " file:search";
154                 var searchConfig = new WebInspector.SearchConfig(query, true, false);
155                 runSearchAndDumpResults(searchConfig, next);
156             },
157
158             function testSeveralQueriesFileNotCSS(next)
159             {
160                 var query = "searchTest" + "Unique" + " -file:css " + " space" + " String";
161                 var searchConfig = new WebInspector.SearchConfig(query, true, false);
162                 runSearchAndDumpResults(searchConfig, next);
163             },
164
165             function testFileQueryWithProjectName(next)
166             {
167                 InspectorTest.addResult("Running a file query with existing project name first:");
168                 var query = "searchTest" + "Unique" + " file:127.0.0.1";
169                 var searchConfig = new WebInspector.SearchConfig(query, true, false);
170                 runSearchAndDumpResults(searchConfig, step2);
171
172                 function step2()
173                 {
174                     InspectorTest.addResult("Running a file query with non-existing project name now:");
175                     query = "searchTest" + "Unique" + " file:128.0.0.1";
176                     searchConfig = new WebInspector.SearchConfig(query, true, false);
177                     runSearchAndDumpResults(searchConfig, next);
178                 }
179             },
180
181             function testDirtyFiles(next)
182             {
183                 InspectorTest.showScriptSource("search.js", step2);
184
185                 function step2(sourceFrame)
186                 {
187                     sourceFrame.uiSourceCode().setWorkingCopy("FOO " + "searchTest" + "UniqueString" + " BAR");
188                     var query = "searchTest" + "UniqueString";
189                     var searchConfig = new WebInspector.SearchConfig(query, true, false);
190                     runSearchAndDumpResults(searchConfig, next);
191                 }
192             }
193         ]);
194     }
195 }
196
197 </script>
198 </head>
199 <body onload="onload()">
200 <iframe src="../../inspector/search/resources/search.html">
201 <p>Tests that ScriptSearchScope performs search across all sources correctly.</p>
202 See <a href="https://bugs.webkit.org/show_bug.cgi?id=41350">bug 41350</a>.
203 </body>
204 </html>