Index: chrome/android/javatests/src/org/chromium/chrome/browser/search_engines/TemplateUrlServiceTest.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/search_engines/TemplateUrlServiceTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/search_engines/TemplateUrlServiceTest.java |
index ac86d8ff02cc5d72ab93cb532157604c29dbc54f..d89d576291341271d70a125c6194672dc7d1479e 100644 |
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/search_engines/TemplateUrlServiceTest.java |
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/search_engines/TemplateUrlServiceTest.java |
@@ -155,6 +155,74 @@ public class TemplateUrlServiceTest extends NativeLibraryTestBase { |
assertEquals(searchEngines.get(1).getKeyword(), searchEngineKeyword); |
} |
+ @SmallTest |
+ @Feature({"SearchEngines"}) |
+ public void testSortandGetCustomSearchEngine() throws InterruptedException { |
+ final TemplateUrlService templateUrlService = waitForTemplateUrlServiceToLoad(); |
+ |
+ // Add custom search engines and verified only engines visited within 2 days are added. |
+ // Also verified custom engines are sorted correctly. |
+ List<TemplateUrl> searchEngines = |
+ ThreadUtils.runOnUiThreadBlockingNoException(new Callable<List<TemplateUrl>>() { |
+ @Override |
+ public List<TemplateUrl> call() throws Exception { |
+ templateUrlService.addSearchEngineForTesting("keyword1", 0); |
+ templateUrlService.addSearchEngineForTesting("keyword2", 0); |
+ templateUrlService.addSearchEngineForTesting("keyword3", 3); |
+ return templateUrlService.getSearchEngines(); |
+ } |
+ }); |
+ assertEquals(7, searchEngines.size()); |
Ted C
2016/12/15 21:38:06
I assume the 7 comes from the fact that there are
ltian
2016/12/15 22:56:54
Return the sublist after pre-populated ones is a g
|
+ assertEquals("keyword2", searchEngines.get(5).getKeyword()); |
+ assertEquals("keyword1", searchEngines.get(6).getKeyword()); |
+ |
+ // Add more custom search engines and verified at most 3 custom engines are returned. |
+ // Also verified custom engines are sorted correctly. |
+ searchEngines = |
+ ThreadUtils.runOnUiThreadBlockingNoException(new Callable<List<TemplateUrl>>() { |
+ @Override |
+ public List<TemplateUrl> call() throws Exception { |
+ templateUrlService.addSearchEngineForTesting("keyword4", 0); |
+ templateUrlService.addSearchEngineForTesting("keyword5", 0); |
+ return templateUrlService.getSearchEngines(); |
+ } |
+ }); |
+ assertEquals(8, searchEngines.size()); |
+ assertEquals("keyword5", searchEngines.get(5).getKeyword()); |
+ assertEquals("keyword4", searchEngines.get(6).getKeyword()); |
+ assertEquals("keyword2", searchEngines.get(7).getKeyword()); |
+ |
+ // Verified last_visited is updated correctly and sorting in descending order correctly. |
+ searchEngines = |
+ ThreadUtils.runOnUiThreadBlockingNoException(new Callable<List<TemplateUrl>>() { |
+ @Override |
+ public List<TemplateUrl> call() throws Exception { |
+ templateUrlService.updateLastVisitedForTesting("keyword3"); |
+ return templateUrlService.getSearchEngines(); |
+ } |
+ }); |
+ assertEquals(8, searchEngines.size()); |
+ assertEquals("keyword3", searchEngines.get(5).getKeyword()); |
+ assertEquals("keyword5", searchEngines.get(6).getKeyword()); |
+ assertEquals("keyword4", searchEngines.get(7).getKeyword()); |
+ |
+ // Set a custom engine as default provider and verified still 3 custom engines are returned. |
+ // Also verified custom engines are sorted correctly. |
+ searchEngines = |
+ ThreadUtils.runOnUiThreadBlockingNoException(new Callable<List<TemplateUrl>>() { |
+ @Override |
+ public List<TemplateUrl> call() throws Exception { |
+ templateUrlService.setSearchEngine("keyword4"); |
+ return templateUrlService.getSearchEngines(); |
+ } |
+ }); |
+ assertEquals(9, searchEngines.size()); |
+ assertEquals("keyword4", searchEngines.get(5).getKeyword()); |
+ assertEquals("keyword3", searchEngines.get(6).getKeyword()); |
+ assertEquals("keyword5", searchEngines.get(7).getKeyword()); |
+ assertEquals("keyword2", searchEngines.get(8).getKeyword()); |
+ } |
+ |
private TemplateUrlService waitForTemplateUrlServiceToLoad() throws InterruptedException { |
final AtomicBoolean observerNotified = new AtomicBoolean(false); |
final LoadListener listener = new LoadListener() { |