Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(205)

Side by Side Diff: chrome/test/data/webui/history_browsertest.js

Issue 13523002: History: Add search browser test. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix stub Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** @const */ var TOTAL_RESULT_COUNT = 160; 5 /** @const */ var TOTAL_RESULT_COUNT = 160;
6 /** @const */ var WAIT_TIMEOUT = 200; 6 /** @const */ var WAIT_TIMEOUT = 200;
7 7
8 /** 8 /**
9 * Create a fake history result with the given timestamp. 9 * Create a fake history result with the given timestamp.
10 * @param {Number} timestamp Timestamp of the entry, in ms since the epoch. 10 * @param {Number} timestamp Timestamp of the entry, in ms since the epoch.
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 } 167 }
168 }; 168 };
169 169
170 function queryHistoryImpl(args, beginTime, history) { 170 function queryHistoryImpl(args, beginTime, history) {
171 var searchText = args[0]; 171 var searchText = args[0];
172 var offset = args[1]; 172 var offset = args[1];
173 var range = args[2]; 173 var range = args[2];
174 var endTime = args[3] || Number.MAX_VALUE; 174 var endTime = args[3] || Number.MAX_VALUE;
175 var maxCount = args[4]; 175 var maxCount = args[4];
176 176
177 var results = [];
178 if (searchText) {
179 for (var k = 0; k < history.length; k++) {
180 // Search only by title in this stub.
181 if (history[k].title.indexOf(searchText) != -1)
182 results.push(history[k]);
183 }
184 } else {
185 results = history;
186 }
187
177 // Advance past all entries newer than the specified end time. 188 // Advance past all entries newer than the specified end time.
178 var i = 0; 189 var i = 0;
179 while (i < history.length && history[i].time >= endTime) 190 // Finished is set from the history database so this behavior may not be
191 // completely identical.
192 var finished = true;
193 while (i < results.length && results[i].time >= endTime)
180 ++i; 194 ++i;
181 195
182 var results = new Array();
183 if (beginTime) { 196 if (beginTime) {
184 var j = i; 197 var j = i;
185 while (j < history.length && history[j].time >= beginTime) 198 while (j < results.length && results[j].time >= beginTime)
186 ++j; 199 ++j;
187 200
188 results = history.slice(i, j); 201 finished = (j == results.length);
202 results = results.slice(i, j);
189 } else { 203 } else {
190 results = history.slice(i); 204 results = results.slice(i);
191 } 205 }
192 206
193 if (maxCount) 207 if (maxCount) {
208 finished = (maxCount >= results.length);
194 results = results.slice(0, maxCount); 209 results = results.slice(0, maxCount);
210 }
195 211
196 var queryStartTime = ''; 212 var queryStartTime = '';
197 var queryEndTime = ''; 213 var queryEndTime = '';
198 if (results.length) { 214 if (results.length) {
199 queryStartTime = results[results.length - 1].dateRelativeDay; 215 queryStartTime = results[results.length - 1].dateRelativeDay;
200 queryEndTime = results[0].dateRelativeDay; 216 queryEndTime = results[0].dateRelativeDay;
201 } else if (beginTime) { 217 } else if (beginTime) {
202 queryStartTime = Date(beginTime); 218 queryStartTime = Date(beginTime);
203 queryEndTime = Date(endTime); 219 queryEndTime = Date(endTime);
204 } 220 }
205 221
206 callFrontendAsync( 222 callFrontendAsync(
207 'historyResult', 223 'historyResult',
208 { 224 {
209 term: searchText, 225 term: searchText,
210 finished: (history.length <= i + results.length), 226 finished: finished,
211 queryStartTime: queryStartTime, 227 queryStartTime: queryStartTime,
212 queryEndTime: queryEndTime 228 queryEndTime: queryEndTime
213 }, 229 },
214 results); 230 results);
215 } 231 }
216 232
217 /** 233 /**
218 * Fixture for History WebUI testing which returns some fake history results 234 * Fixture for History WebUI testing which returns some fake history results
219 * to the frontend. 235 * to the frontend.
220 * @extends {BaseHistoryWebUITest} 236 * @extends {BaseHistoryWebUITest}
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 // checkbox-20 to checkbox-24 should be deselected now. 510 // checkbox-20 to checkbox-24 should be deselected now.
495 expectEquals(12, checked.length); 511 expectEquals(12, checked.length);
496 // First set of checkboxes (11). 512 // First set of checkboxes (11).
497 checkInterval(checked, 4, 14); 513 checkInterval(checked, 4, 14);
498 // Only checkbox-19 should still be selected. 514 // Only checkbox-19 should still be selected.
499 expectEquals('checkbox-19', checked[11].id); 515 expectEquals('checkbox-19', checked[11].id);
500 516
501 testDone(); 517 testDone();
502 }); 518 });
503 519
520 TEST_F('HistoryWebUITest', 'searchHistory', function() {
521 var getResultCount = function() {
522 return document.querySelectorAll('.entry').length;
523 };
524 // See that all the elements are there.
525 expectEquals(RESULTS_PER_PAGE, getResultCount());
526
527 // See that the search works.
528 $('search-field').value = 'Thu Oct 02 2008';
529 $('search-button').click();
530
531 waitForCallback('historyResult', function() {
532 expectEquals(31, getResultCount());
533
534 // Clear the search.
535 $('search-field').value = '';
536 $('search-button').click();
537 waitForCallback('historyResult', function() {
538 expectEquals(RESULTS_PER_PAGE, getResultCount());
539 testDone();
540 });
541 });
542 });
543
504 function setPageState(searchText, page, groupByDomain, range, offset) { 544 function setPageState(searchText, page, groupByDomain, range, offset) {
505 window.location = '#' + PageState.getHashString( 545 window.location = '#' + PageState.getHashString(
506 searchText, page, groupByDomain, range, offset); 546 searchText, page, groupByDomain, range, offset);
507 } 547 }
508 548
509 function RangeHistoryWebUITest() {} 549 function RangeHistoryWebUITest() {}
510 550
511 RangeHistoryWebUITest.prototype = { 551 RangeHistoryWebUITest.prototype = {
512 __proto__: HistoryWebUITest.prototype, 552 __proto__: HistoryWebUITest.prototype,
513 553
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
663 703
664 waitForCallback('historyResult', function() { 704 waitForCallback('historyResult', function() {
665 // See if the correct number of days is shown. 705 // See if the correct number of days is shown.
666 var resultsDisplay = $('results-display'); 706 var resultsDisplay = $('results-display');
667 assertEquals(0, resultsDisplay.querySelectorAll('.months-results').length); 707 assertEquals(0, resultsDisplay.querySelectorAll('.months-results').length);
668 assertEquals(1, resultsDisplay.querySelectorAll('div').length); 708 assertEquals(1, resultsDisplay.querySelectorAll('div').length);
669 709
670 testDone(); 710 testDone();
671 }); 711 });
672 }); 712 });
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698