Chromium Code Reviews| 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() { |