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>
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();
17 if (window.testRunner)
18 testRunner.showWebInspector();
24 WebInspector.inspectorView.showViewInDrawer("search");
25 InspectorTest.runAfterResourcesAreFinished(["search.html", "search.js", "search.css"], step2)
27 function runSearchAndDumpResults(searchConfig, callback)
29 var scope = new WebInspector.SourcesSearchScope();
30 var searchResults = [];
31 var progress = new WebInspector.Progress();
32 scope.performSearch(searchConfig, progress, searchResultCallback, searchFinishedCallback);
34 function searchResultCallback(searchResult)
36 searchResults.push(searchResult);
39 function searchFinishedCallback()
41 function filterOutEmptySearchResults(searchResult)
43 return searchResult.searchMatches.length;
45 searchResults = searchResults.filter(filterOutEmptySearchResults);
47 function comparator(searchResultA, searchResultB)
49 return searchResultA.uiSourceCode.uri().compareTo(searchResultB.uiSourceCode.uri());
51 searchResults.sort(comparator);
53 for (var i = 0; i < searchResults.length; ++i) {
54 var searchResult = searchResults[i];
55 var uiSourceCode = searchResult.uiSourceCode;
56 var searchMatches = searchResult.searchMatches;
58 if (!searchMatches.length)
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 + "'");
73 InspectorTest.runTestSuite([
74 function testIgnoreCase(next)
76 var query = "searchTest" + "UniqueString";
77 var searchConfig = new WebInspector.SearchConfig(query, true, false);
78 runSearchAndDumpResults(searchConfig, next);
81 function testCaseSensitive(next)
83 var query = "searchTest" + "UniqueString";
84 var searchConfig = new WebInspector.SearchConfig(query, false, false);
85 runSearchAndDumpResults(searchConfig, next);
88 function testFileHTML(next)
90 var query = "searchTest" + "UniqueString" + " file:html";
91 var searchConfig = new WebInspector.SearchConfig(query, true, false);
92 runSearchAndDumpResults(searchConfig, next);
95 function testFileJS(next)
97 var query = "file:js " + "searchTest" + "UniqueString";
98 var searchConfig = new WebInspector.SearchConfig(query, true, false);
99 runSearchAndDumpResults(searchConfig, next);
102 function testFileHTMLJS(next)
104 var query = "file:js " + "searchTest" + "UniqueString" + " file:html";
105 var searchConfig = new WebInspector.SearchConfig(query, true, false);
106 runSearchAndDumpResults(searchConfig, next);
109 function testSpaceQueries(next)
111 var query = "searchTest" + "Unique" + " space" + " String";
112 var searchConfig = new WebInspector.SearchConfig(query, true, false);
113 runSearchAndDumpResults(searchConfig, next);
116 function testSpaceQueriesFileHTML(next)
118 var query = "file:html " + "searchTest" + "Unique" + " space" + " String";
119 var searchConfig = new WebInspector.SearchConfig(query, true, false);
120 runSearchAndDumpResults(searchConfig, next);
123 function testSpaceQueriesFileHTML_SEARCH(next)
125 var query = "file:html " + "searchTest" + "Unique" + " space" + " String" + " file:search";
126 var searchConfig = new WebInspector.SearchConfig(query, true, false);
127 runSearchAndDumpResults(searchConfig, next);
130 function testSpaceQueriesFileJS_SEARCH_HTML(next)
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);
137 function testSeveralQueriesFileHTML(next)
139 var query = "searchTest" + "Unique" + " file:html " + " space" + " String";
140 var searchConfig = new WebInspector.SearchConfig(query, true, false);
141 runSearchAndDumpResults(searchConfig, next);
144 function testSeveralQueriesFileHTML_SEARCH(next)
146 var query = "searchTest" + "Unique" + " file:html " + " space" + " String" + " file:search";
147 var searchConfig = new WebInspector.SearchConfig(query, true, false);
148 runSearchAndDumpResults(searchConfig, next);
151 function testSeveralQueriesFileJS_SEARCH_HTML(next)
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);
158 function testSeveralQueriesFileNotCSS(next)
160 var query = "searchTest" + "Unique" + " -file:css " + " space" + " String";
161 var searchConfig = new WebInspector.SearchConfig(query, true, false);
162 runSearchAndDumpResults(searchConfig, next);
165 function testFileQueryWithProjectName(next)
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);
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);
181 function testDirtyFiles(next)
183 InspectorTest.showScriptSource("search.js", step2);
185 function step2(sourceFrame)
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);
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>.