OLD | NEW |
1 // History api test for Chrome. | 1 // History api test for Chrome. |
2 // browser_tests.exe --gtest_filter=ExtensionApiTest.History | 2 // browser_tests.exe --gtest_filter=ExtensionApiTest.History |
3 | 3 |
4 var pass = chrome.test.callbackPass; | 4 var pass = chrome.test.callbackPass; |
5 var fail = chrome.test.callbackFail; | 5 var fail = chrome.test.callbackFail; |
6 var assertEq = chrome.test.assertEq; | 6 var assertEq = chrome.test.assertEq; |
7 | 7 |
8 var GOOGLE_URL = 'http://www.google.com/'; | 8 var GOOGLE_URL = 'http://www.google.com/'; |
9 var PICASA_URL = 'http://www.picasa.com/'; | 9 var PICASA_URL = 'http://www.picasa.com/'; |
10 var A_RELATIVE_URL = | 10 var A_RELATIVE_URL = |
(...skipping 16 matching lines...) Expand all Loading... |
27 * object 'itemVisited' stores the last item received. | 27 * object 'itemVisited' stores the last item received. |
28 */ | 28 */ |
29 var itemVisitedCallback = null; | 29 var itemVisitedCallback = null; |
30 function itemVisitedListener(visited) { | 30 function itemVisitedListener(visited) { |
31 if (null != itemVisitedCallback) { | 31 if (null != itemVisitedCallback) { |
32 itemVisitedCallback(visited); | 32 itemVisitedCallback(visited); |
33 }; | 33 }; |
34 }; | 34 }; |
35 | 35 |
36 function removeItemVisitedListener() { | 36 function removeItemVisitedListener() { |
37 chrome.experimental.history.onVisited.removeListener(itemVisitedListener); | 37 chrome.history.onVisited.removeListener(itemVisitedListener); |
38 itemVisitedCallback = null; | 38 itemVisitedCallback = null; |
39 } | 39 } |
40 | 40 |
41 function setItemVisitedListener(callback) { | 41 function setItemVisitedListener(callback) { |
42 chrome.experimental.history.onVisited.addListener(itemVisitedListener); | 42 chrome.history.onVisited.addListener(itemVisitedListener); |
43 itemVisitedCallback = callback; | 43 itemVisitedCallback = callback; |
44 } | 44 } |
45 | 45 |
46 function setNextItemVisitedListener(callback) { | 46 function setNextItemVisitedListener(callback) { |
47 itemVisitedCallback = callback; | 47 itemVisitedCallback = callback; |
48 } | 48 } |
49 | 49 |
50 /** | 50 /** |
51 * An object used for listening to the chrome.history.onVisitRemoved events. The | 51 * An object used for listening to the chrome.history.onVisitRemoved events. The |
52 * global object 'itemRemovedInfo' stores the information from the last callback. | 52 * global object 'itemRemovedInfo' stores the information from the last callback. |
53 */ | 53 */ |
54 var itemRemovedCallback = null; | 54 var itemRemovedCallback = null; |
55 function itemRemovedListener(removed) { | 55 function itemRemovedListener(removed) { |
56 if (null != itemRemovedCallback) { | 56 if (null != itemRemovedCallback) { |
57 itemRemovedCallback(removed); | 57 itemRemovedCallback(removed); |
58 }; | 58 }; |
59 }; | 59 }; |
60 | 60 |
61 function removeItemRemovedListener() { | 61 function removeItemRemovedListener() { |
62 chrome.experimental.history.onVisited.removeListener(itemRemovedListener); | 62 chrome.history.onVisited.removeListener(itemRemovedListener); |
63 itemRemovedCallback = null; | 63 itemRemovedCallback = null; |
64 } | 64 } |
65 | 65 |
66 function setItemRemovedListener(callback) { | 66 function setItemRemovedListener(callback) { |
67 chrome.experimental.history.onVisitRemoved.addListener(itemRemovedListener); | 67 chrome.history.onVisitRemoved.addListener(itemRemovedListener); |
68 itemRemovedCallback = callback; | 68 itemRemovedCallback = callback; |
69 } | 69 } |
70 | 70 |
71 function setNextItemRemovedListener(callback) { | 71 function setNextItemRemovedListener(callback) { |
72 itemRemovedCallback = callback; | 72 itemRemovedCallback = callback; |
73 } | 73 } |
74 | 74 |
75 /** | 75 /** |
76 * An object used for listening to the chrome.history.onVisitRemoved events. Set | 76 * An object used for listening to the chrome.history.onVisitRemoved events. Set |
77 * 'tabCompleteCallback' to a function to add extra processing to the callback. | 77 * 'tabCompleteCallback' to a function to add extra processing to the callback. |
(...skipping 11 matching lines...) Expand all Loading... |
89 }; | 89 }; |
90 }; | 90 }; |
91 | 91 |
92 /** | 92 /** |
93 * Queries the entire history for items, calling the closure with an argument | 93 * Queries the entire history for items, calling the closure with an argument |
94 * specifying the the number of items in the query. | 94 * specifying the the number of items in the query. |
95 * @param {function(number)} callback The closure. | 95 * @param {function(number)} callback The closure. |
96 */ | 96 */ |
97 function countItemsInHistory(callback) { | 97 function countItemsInHistory(callback) { |
98 var query = {'text': ''}; | 98 var query = {'text': ''}; |
99 chrome.experimental.history.search(query, function(results) { | 99 chrome.history.search(query, function(results) { |
100 callback(results.length); | 100 callback(results.length); |
101 }); | 101 }); |
102 }; | 102 }; |
103 | 103 |
104 /** | 104 /** |
105 * Populates the history by calling addUrl for each url in the array urls. | 105 * Populates the history by calling addUrl for each url in the array urls. |
106 * @param {Array.<string>} urls The array of urls to populate the history. | 106 * @param {Array.<string>} urls The array of urls to populate the history. |
107 * @param {function} callback Closure. | 107 * @param {function} callback Closure. |
108 */ | 108 */ |
109 function populateHistory(urls, callback) { | 109 function populateHistory(urls, callback) { |
110 urls.forEach(function(url) { | 110 urls.forEach(function(url) { |
111 chrome.experimental.history.addUrl({ 'url': url }); | 111 chrome.history.addUrl({ 'url': url }); |
112 }); | 112 }); |
113 callback(); | 113 callback(); |
114 }; | 114 }; |
115 | 115 |
116 chrome.test.runTests([ | 116 chrome.test.runTests([ |
117 // All the tests require a blank state to start from. This test is run | 117 // All the tests require a blank state to start from. This test is run |
118 // first to insure that state can be acheived. | 118 // first to insure that state can be acheived. |
119 function clearHistory() { | 119 function clearHistory() { |
120 chrome.experimental.history.deleteAll(pass(function() { | 120 chrome.history.deleteAll(pass(function() { |
121 countItemsInHistory(pass(function(count) { | 121 countItemsInHistory(pass(function(count) { |
122 assertEq(0, count); | 122 assertEq(0, count); |
123 })); | 123 })); |
124 })); | 124 })); |
125 }, | 125 }, |
126 | 126 |
127 function basicSearch() { | 127 function basicSearch() { |
128 // basicSearch callback. | 128 // basicSearch callback. |
129 function basicSearchTestVerification() { | 129 function basicSearchTestVerification() { |
130 removeItemVisitedListener(); | 130 removeItemVisitedListener(); |
131 var query = { 'text': '' }; | 131 var query = { 'text': '' }; |
132 chrome.experimental.history.search(query, function(results) { | 132 chrome.history.search(query, function(results) { |
133 assertEq(1, results.length); | 133 assertEq(1, results.length); |
134 assertEq(GOOGLE_URL, results[0].url); | 134 assertEq(GOOGLE_URL, results[0].url); |
135 | 135 |
136 // The test has succeeded. | 136 // The test has succeeded. |
137 chrome.test.succeed(); | 137 chrome.test.succeed(); |
138 }); | 138 }); |
139 }; | 139 }; |
140 | 140 |
141 // basicSearch entry point. | 141 // basicSearch entry point. |
142 chrome.experimental.history.deleteAll(function() { | 142 chrome.history.deleteAll(function() { |
143 setItemVisitedListener(basicSearchTestVerification); | 143 setItemVisitedListener(basicSearchTestVerification); |
144 populateHistory([GOOGLE_URL], function() { }); | 144 populateHistory([GOOGLE_URL], function() { }); |
145 }); | 145 }); |
146 }, | 146 }, |
147 | 147 |
148 function timeScopedSearch() { | 148 function timeScopedSearch() { |
149 var startDate = {}; | 149 var startDate = {}; |
150 var endDate = {}; | 150 var endDate = {}; |
151 | 151 |
152 function timeScopedSearchTestVerification() { | 152 function timeScopedSearchTestVerification() { |
153 removeItemVisitedListener(); | 153 removeItemVisitedListener(); |
154 | 154 |
155 var query = { 'text': '', | 155 var query = { 'text': '', |
156 'startTime': startDate.getTime(), | 156 'startTime': startDate.getTime(), |
157 'endTime': endDate.getTime() }; | 157 'endTime': endDate.getTime() }; |
158 chrome.experimental.history.search(query, function(results) { | 158 chrome.history.search(query, function(results) { |
159 assertEq(1, results.length); | 159 assertEq(1, results.length); |
160 assertEq(GOOGLE_URL, results[0].url); | 160 assertEq(GOOGLE_URL, results[0].url); |
161 | 161 |
162 // The test has succeeded. | 162 // The test has succeeded. |
163 chrome.test.succeed(); | 163 chrome.test.succeed(); |
164 }); | 164 }); |
165 }; | 165 }; |
166 | 166 |
167 function onAddedItem() { | 167 function onAddedItem() { |
168 // Set the next test callback. | 168 // Set the next test callback. |
169 setNextItemVisitedListener(timeScopedSearchTestVerification); | 169 setNextItemVisitedListener(timeScopedSearchTestVerification); |
170 | 170 |
171 // Chrome has seconds resolution, so we must wait in order to search | 171 // Chrome has seconds resolution, so we must wait in order to search |
172 // a range. | 172 // a range. |
173 waitAFewSeconds(2, function() { | 173 waitAFewSeconds(2, function() { |
174 endDate = new Date(); | 174 endDate = new Date(); |
175 endDate.setTime(endDate.getTime() - 500); | 175 endDate.setTime(endDate.getTime() - 500); |
176 populateHistory([PICASA_URL], function() { }); | 176 populateHistory([PICASA_URL], function() { }); |
177 }); | 177 }); |
178 }; | 178 }; |
179 | 179 |
180 // timeScopedSearch entry point. | 180 // timeScopedSearch entry point. |
181 chrome.experimental.history.deleteAll(function() { | 181 chrome.history.deleteAll(function() { |
182 // Set the test callback. | 182 // Set the test callback. |
183 setItemVisitedListener(onAddedItem); | 183 setItemVisitedListener(onAddedItem); |
184 // Set the start time a few seconds in the past. | 184 // Set the start time a few seconds in the past. |
185 startDate = new Date(); | 185 startDate = new Date(); |
186 startDate.setTime(startDate.getTime() - 1000); | 186 startDate.setTime(startDate.getTime() - 1000); |
187 populateHistory([GOOGLE_URL], function() { }); | 187 populateHistory([GOOGLE_URL], function() { }); |
188 }); | 188 }); |
189 }, | 189 }, |
190 | 190 |
191 function searchWithIntegerTimes() { | 191 function searchWithIntegerTimes() { |
192 chrome.experimental.history.deleteAll(function() { | 192 chrome.history.deleteAll(function() { |
193 // Search with an integer time range. | 193 // Search with an integer time range. |
194 var query = { 'text': '', | 194 var query = { 'text': '', |
195 'startTime': 0, | 195 'startTime': 0, |
196 'endTime': 12345678 }; | 196 'endTime': 12345678 }; |
197 chrome.experimental.history.search(query, function(results) { | 197 chrome.history.search(query, function(results) { |
198 assertEq(0, results.length); | 198 assertEq(0, results.length); |
199 chrome.test.succeed(); | 199 chrome.test.succeed(); |
200 }); | 200 }); |
201 }); | 201 }); |
202 }, | 202 }, |
203 | 203 |
204 // Give time epochs x,y,z and history events A,B which occur in the sequence | 204 // Give time epochs x,y,z and history events A,B which occur in the sequence |
205 // x A y B z, this test scopes the search to the interval [y,z] to test that | 205 // x A y B z, this test scopes the search to the interval [y,z] to test that |
206 // [x,y) is excluded. The previous test scoped to the interval [x,y]. | 206 // [x,y) is excluded. The previous test scoped to the interval [x,y]. |
207 function timeScopedSearch2() { | 207 function timeScopedSearch2() { |
208 var startDate = {}; | 208 var startDate = {}; |
209 var endDate = {}; | 209 var endDate = {}; |
210 | 210 |
211 function timeScopedSearch2TestVerification() { | 211 function timeScopedSearch2TestVerification() { |
212 removeItemVisitedListener(); | 212 removeItemVisitedListener(); |
213 | 213 |
214 endDate = new Date(); | 214 endDate = new Date(); |
215 endDate.setTime(endDate.getTime() + 1000); | 215 endDate.setTime(endDate.getTime() + 1000); |
216 var query = { 'text': '', | 216 var query = { 'text': '', |
217 'startTime': startDate.getTime(), | 217 'startTime': startDate.getTime(), |
218 'endTime': endDate.getTime() }; | 218 'endTime': endDate.getTime() }; |
219 chrome.experimental.history.search(query, function(results) { | 219 chrome.history.search(query, function(results) { |
220 assertEq(1, results.length); | 220 assertEq(1, results.length); |
221 assertEq(PICASA_URL, results[0].url); | 221 assertEq(PICASA_URL, results[0].url); |
222 | 222 |
223 // The test has succeeded. | 223 // The test has succeeded. |
224 chrome.test.succeed(); | 224 chrome.test.succeed(); |
225 }); | 225 }); |
226 }; | 226 }; |
227 | 227 |
228 function onAddedItem() { | 228 function onAddedItem() { |
229 // Set the next test callback. | 229 // Set the next test callback. |
230 setNextItemVisitedListener(timeScopedSearch2TestVerification); | 230 setNextItemVisitedListener(timeScopedSearch2TestVerification); |
231 | 231 |
232 // Chrome has seconds resolution, so we must wait in order to search | 232 // Chrome has seconds resolution, so we must wait in order to search |
233 // a range. | 233 // a range. |
234 waitAFewSeconds(2, function() { | 234 waitAFewSeconds(2, function() { |
235 startDate = new Date(); | 235 startDate = new Date(); |
236 startDate.setTime(startDate.getTime() - 1000); | 236 startDate.setTime(startDate.getTime() - 1000); |
237 populateHistory([PICASA_URL], function() { }); | 237 populateHistory([PICASA_URL], function() { }); |
238 }); | 238 }); |
239 }; | 239 }; |
240 | 240 |
241 // timeScopedSearch entry point. | 241 // timeScopedSearch entry point. |
242 chrome.experimental.history.deleteAll(function() { | 242 chrome.history.deleteAll(function() { |
243 // Set the test callback. | 243 // Set the test callback. |
244 setItemVisitedListener(onAddedItem); | 244 setItemVisitedListener(onAddedItem); |
245 populateHistory([GOOGLE_URL], function() { }); | 245 populateHistory([GOOGLE_URL], function() { }); |
246 }); | 246 }); |
247 }, | 247 }, |
248 | 248 |
249 function lengthScopedSearch() { | 249 function lengthScopedSearch() { |
250 var urls = [GOOGLE_URL, PICASA_URL]; | 250 var urls = [GOOGLE_URL, PICASA_URL]; |
251 var urlsAdded = 0; | 251 var urlsAdded = 0; |
252 | 252 |
253 function lengthScopedSearchTestVerification() { | 253 function lengthScopedSearchTestVerification() { |
254 // Ensure all urls have been added. | 254 // Ensure all urls have been added. |
255 urlsAdded += 1; | 255 urlsAdded += 1; |
256 if (urlsAdded < urls.length) | 256 if (urlsAdded < urls.length) |
257 return; | 257 return; |
258 | 258 |
259 removeItemVisitedListener(); | 259 removeItemVisitedListener(); |
260 | 260 |
261 var query = { 'text': '', 'maxResults': 1 }; | 261 var query = { 'text': '', 'maxResults': 1 }; |
262 chrome.experimental.history.search(query, function(results) { | 262 chrome.history.search(query, function(results) { |
263 assertEq(1, results.length); | 263 assertEq(1, results.length); |
264 assertEq(PICASA_URL, results[0].url); | 264 assertEq(PICASA_URL, results[0].url); |
265 | 265 |
266 // The test has succeeded. | 266 // The test has succeeded. |
267 chrome.test.succeed(); | 267 chrome.test.succeed(); |
268 }); | 268 }); |
269 }; | 269 }; |
270 | 270 |
271 // lengthScopedSearch entry point. | 271 // lengthScopedSearch entry point. |
272 chrome.experimental.history.deleteAll(function() { | 272 chrome.history.deleteAll(function() { |
273 setItemVisitedListener(lengthScopedSearchTestVerification); | 273 setItemVisitedListener(lengthScopedSearchTestVerification); |
274 populateHistory(urls, function() { }); | 274 populateHistory(urls, function() { }); |
275 }); | 275 }); |
276 }, | 276 }, |
277 | 277 |
278 function fullTextSearch() { | 278 function fullTextSearch() { |
279 chrome.experimental.history.deleteAll(function() { | 279 chrome.history.deleteAll(function() { |
280 // The continuation of the test after the windows have been opened. | 280 // The continuation of the test after the windows have been opened. |
281 var validateTest = function() { | 281 var validateTest = function() { |
282 // Continue with the test. | 282 // Continue with the test. |
283 // A title search for www.a.com should find a. | 283 // A title search for www.a.com should find a. |
284 var query = { 'text': 'www.a.com' }; | 284 var query = { 'text': 'www.a.com' }; |
285 chrome.experimental.history.search(query, function(results) { | 285 chrome.history.search(query, function(results) { |
286 assertEq(1, results.length); | 286 assertEq(1, results.length); |
287 assertEq(A_RELATIVE_URL, results[0].url); | 287 assertEq(A_RELATIVE_URL, results[0].url); |
288 | 288 |
289 // Text in the body of b.html. | 289 // Text in the body of b.html. |
290 query = { 'text': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' }; | 290 query = { 'text': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' }; |
291 chrome.experimental.history.search(query, function(results) { | 291 chrome.history.search(query, function(results) { |
292 assertEq(1, results.length); | 292 assertEq(1, results.length); |
293 assertEq(B_RELATIVE_URL, results[0].url); | 293 assertEq(B_RELATIVE_URL, results[0].url); |
294 | 294 |
295 // The test has succeeded. | 295 // The test has succeeded. |
296 chrome.test.succeed(); | 296 chrome.test.succeed(); |
297 }); | 297 }); |
298 }); | 298 }); |
299 }; | 299 }; |
300 | 300 |
301 // Setup a callback object for tab events. | 301 // Setup a callback object for tab events. |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
337 }); | 337 }); |
338 }, | 338 }, |
339 | 339 |
340 function getVisits() { | 340 function getVisits() { |
341 // getVisits callback. | 341 // getVisits callback. |
342 function getVisitsTestVerification() { | 342 function getVisitsTestVerification() { |
343 removeItemVisitedListener(); | 343 removeItemVisitedListener(); |
344 | 344 |
345 // Verify that we received the url. | 345 // Verify that we received the url. |
346 var query = { 'text': '' }; | 346 var query = { 'text': '' }; |
347 chrome.experimental.history.search(query, function(results) { | 347 chrome.history.search(query, function(results) { |
348 assertEq(1, results.length); | 348 assertEq(1, results.length); |
349 assertEq(GOOGLE_URL, results[0].url); | 349 assertEq(GOOGLE_URL, results[0].url); |
350 | 350 |
351 var id = results[0].id; | 351 var id = results[0].id; |
352 chrome.experimental.history.getVisits({ 'url': GOOGLE_URL }, function(re
sults) { | 352 chrome.history.getVisits({ 'url': GOOGLE_URL }, function(results) { |
353 assertEq(1, results.length); | 353 assertEq(1, results.length); |
354 assertEq(id, results[0].id); | 354 assertEq(id, results[0].id); |
355 | 355 |
356 // The test has succeeded. | 356 // The test has succeeded. |
357 chrome.test.succeed(); | 357 chrome.test.succeed(); |
358 }); | 358 }); |
359 }); | 359 }); |
360 }; | 360 }; |
361 | 361 |
362 // getVisits entry point. | 362 // getVisits entry point. |
363 chrome.experimental.history.deleteAll(function() { | 363 chrome.history.deleteAll(function() { |
364 setItemVisitedListener(getVisitsTestVerification); | 364 setItemVisitedListener(getVisitsTestVerification); |
365 populateHistory([GOOGLE_URL], function() { }); | 365 populateHistory([GOOGLE_URL], function() { }); |
366 }); | 366 }); |
367 }, | 367 }, |
368 | 368 |
369 function deleteUrl() { | 369 function deleteUrl() { |
370 function deleteUrlTestVerification() { | 370 function deleteUrlTestVerification() { |
371 removeItemRemovedListener(); | 371 removeItemRemovedListener(); |
372 | 372 |
373 var query = { 'text': '' }; | 373 var query = { 'text': '' }; |
374 chrome.experimental.history.search(query, function(results) { | 374 chrome.history.search(query, function(results) { |
375 assertEq(0, results.length); | 375 assertEq(0, results.length); |
376 | 376 |
377 // The test has succeeded. | 377 // The test has succeeded. |
378 chrome.test.succeed(); | 378 chrome.test.succeed(); |
379 }); | 379 }); |
380 }; | 380 }; |
381 | 381 |
382 function onAddedItem() { | 382 function onAddedItem() { |
383 removeItemVisitedListener(); | 383 removeItemVisitedListener(); |
384 | 384 |
385 var query = { 'text': '' }; | 385 var query = { 'text': '' }; |
386 chrome.experimental.history.search(query, function(results) { | 386 chrome.history.search(query, function(results) { |
387 assertEq(1, results.length); | 387 assertEq(1, results.length); |
388 assertEq(GOOGLE_URL, results[0].url); | 388 assertEq(GOOGLE_URL, results[0].url); |
389 | 389 |
390 chrome.experimental.history.deleteUrl({ 'url': GOOGLE_URL }); | 390 chrome.history.deleteUrl({ 'url': GOOGLE_URL }); |
391 }); | 391 }); |
392 }; | 392 }; |
393 | 393 |
394 // deleteUrl entry point. | 394 // deleteUrl entry point. |
395 chrome.experimental.history.deleteAll(function() { | 395 chrome.history.deleteAll(function() { |
396 setItemVisitedListener(onAddedItem); | 396 setItemVisitedListener(onAddedItem); |
397 setItemRemovedListener(deleteUrlTestVerification); | 397 setItemRemovedListener(deleteUrlTestVerification); |
398 populateHistory([GOOGLE_URL], function() { }); | 398 populateHistory([GOOGLE_URL], function() { }); |
399 }); | 399 }); |
400 }, | 400 }, |
401 | 401 |
402 function deleteRange() { | 402 function deleteRange() { |
403 var urls = [GOOGLE_URL, PICASA_URL]; | 403 var urls = [GOOGLE_URL, PICASA_URL]; |
404 var startDate = {}; | 404 var startDate = {}; |
405 var endDate = {}; | 405 var endDate = {}; |
406 var itemsAdded = 0; | 406 var itemsAdded = 0; |
407 | 407 |
408 function deleteRangeTestVerification() { | 408 function deleteRangeTestVerification() { |
409 removeItemRemovedListener(); | 409 removeItemRemovedListener(); |
410 | 410 |
411 var query = { 'text': '' }; | 411 var query = { 'text': '' }; |
412 chrome.experimental.history.search(query, function(results) { | 412 chrome.history.search(query, function(results) { |
413 assertEq(1, results.length); | 413 assertEq(1, results.length); |
414 assertEq(PICASA_URL, results[0].url); | 414 assertEq(PICASA_URL, results[0].url); |
415 | 415 |
416 // The test has succeeded. | 416 // The test has succeeded. |
417 chrome.test.succeed(); | 417 chrome.test.succeed(); |
418 }); | 418 }); |
419 }; | 419 }; |
420 | 420 |
421 function onAddedItem() { | 421 function onAddedItem() { |
422 itemsAdded += 1; | 422 itemsAdded += 1; |
423 | 423 |
424 if (itemsAdded < urls.length) { | 424 if (itemsAdded < urls.length) { |
425 // Chrome has seconds resolution, so we must wait to search a range. | 425 // Chrome has seconds resolution, so we must wait to search a range. |
426 waitAFewSeconds(2, function() { | 426 waitAFewSeconds(2, function() { |
427 endDate = new Date(); | 427 endDate = new Date(); |
428 endDate.setTime(endDate.getTime() - 1000); | 428 endDate.setTime(endDate.getTime() - 1000); |
429 populateHistory([urls[itemsAdded]], function() { }); | 429 populateHistory([urls[itemsAdded]], function() { }); |
430 }); | 430 }); |
431 return; | 431 return; |
432 }; | 432 }; |
433 | 433 |
434 removeItemVisitedListener(); | 434 removeItemVisitedListener(); |
435 chrome.experimental.history.deleteRange({ 'startTime': startDate.getTime()
, | 435 chrome.history.deleteRange({ 'startTime': startDate.getTime(), |
436 'endTime': endDate.getTime() }, | 436 'endTime': endDate.getTime() }, |
437 function() { }); | 437 function() { }); |
438 }; | 438 }; |
439 | 439 |
440 // deletRange entry point. | 440 // deletRange entry point. |
441 chrome.experimental.history.deleteAll(function() { | 441 chrome.history.deleteAll(function() { |
442 setItemVisitedListener(onAddedItem); | 442 setItemVisitedListener(onAddedItem); |
443 setItemRemovedListener(deleteRangeTestVerification); | 443 setItemRemovedListener(deleteRangeTestVerification); |
444 | 444 |
445 startDate = new Date(); | 445 startDate = new Date(); |
446 startDate.setTime(startDate.getTime() - 1000); | 446 startDate.setTime(startDate.getTime() - 1000); |
447 | 447 |
448 populateHistory([urls[itemsAdded]], function() { }); | 448 populateHistory([urls[itemsAdded]], function() { }); |
449 }); | 449 }); |
450 }, | 450 }, |
451 | 451 |
452 // Suppose we have time epochs x,y,z and history events A,B which occur in the | 452 // Suppose we have time epochs x,y,z and history events A,B which occur in the |
453 // sequence x A y B z. The previous deleteRange test deleted the range [x,y], | 453 // sequence x A y B z. The previous deleteRange test deleted the range [x,y], |
454 // this test deletes the range [y,z]. | 454 // this test deletes the range [y,z]. |
455 function deleteRange2() { | 455 function deleteRange2() { |
456 var urls = [GOOGLE_URL, PICASA_URL]; | 456 var urls = [GOOGLE_URL, PICASA_URL]; |
457 var startDate = {}; | 457 var startDate = {}; |
458 var endDate = {}; | 458 var endDate = {}; |
459 var itemsAdded = 0; | 459 var itemsAdded = 0; |
460 | 460 |
461 function deleteRange2TestVerification() { | 461 function deleteRange2TestVerification() { |
462 removeItemRemovedListener(); | 462 removeItemRemovedListener(); |
463 | 463 |
464 var query = { 'text': '' }; | 464 var query = { 'text': '' }; |
465 chrome.experimental.history.search(query, function(results) { | 465 chrome.history.search(query, function(results) { |
466 assertEq(1, results.length); | 466 assertEq(1, results.length); |
467 assertEq(GOOGLE_URL, results[0].url); | 467 assertEq(GOOGLE_URL, results[0].url); |
468 | 468 |
469 // The test has succeeded. | 469 // The test has succeeded. |
470 chrome.test.succeed(); | 470 chrome.test.succeed(); |
471 }); | 471 }); |
472 }; | 472 }; |
473 | 473 |
474 function onAddedItem() { | 474 function onAddedItem() { |
475 itemsAdded += 1; | 475 itemsAdded += 1; |
476 | 476 |
477 if (itemsAdded < urls.length) { | 477 if (itemsAdded < urls.length) { |
478 // Chrome has seconds resolution, so we must wait to search a range. | 478 // Chrome has seconds resolution, so we must wait to search a range. |
479 waitAFewSeconds(2, function() { | 479 waitAFewSeconds(2, function() { |
480 startDate = new Date(); | 480 startDate = new Date(); |
481 startDate.setTime(startDate.getTime() - 1000); | 481 startDate.setTime(startDate.getTime() - 1000); |
482 populateHistory([urls[itemsAdded]], function() { }); | 482 populateHistory([urls[itemsAdded]], function() { }); |
483 }); | 483 }); |
484 return; | 484 return; |
485 }; | 485 }; |
486 | 486 |
487 removeItemVisitedListener(); | 487 removeItemVisitedListener(); |
488 | 488 |
489 endDate = new Date(); | 489 endDate = new Date(); |
490 endDate.setTime(endDate.getTime() + 1000); | 490 endDate.setTime(endDate.getTime() + 1000); |
491 chrome.experimental.history.deleteRange({ 'startTime': startDate.getTime()
, | 491 chrome.history.deleteRange({ 'startTime': startDate.getTime(), |
492 'endTime': endDate.getTime() }, | 492 'endTime': endDate.getTime() }, |
493 function() { }); | 493 function() { }); |
494 }; | 494 }; |
495 | 495 |
496 // deletRange entry point. | 496 // deletRange entry point. |
497 chrome.experimental.history.deleteAll(function() { | 497 chrome.history.deleteAll(function() { |
498 setItemVisitedListener(onAddedItem); | 498 setItemVisitedListener(onAddedItem); |
499 setItemRemovedListener(deleteRange2TestVerification); | 499 setItemRemovedListener(deleteRange2TestVerification); |
500 populateHistory([urls[itemsAdded]], function() { }); | 500 populateHistory([urls[itemsAdded]], function() { }); |
501 }); | 501 }); |
502 }, | 502 }, |
503 ]); | 503 ]); |
OLD | NEW |