OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 package org.chromium.chrome.browser.search_engines; | 5 package org.chromium.chrome.browser.search_engines; |
6 | 6 |
7 import android.net.Uri; | 7 import android.net.Uri; |
8 import android.test.suitebuilder.annotation.SmallTest; | 8 import android.test.suitebuilder.annotation.SmallTest; |
9 | 9 |
10 import org.chromium.base.ThreadUtils; | 10 import org.chromium.base.ThreadUtils; |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
112 return TemplateUrlService.getInstance().isLoaded(); | 112 return TemplateUrlService.getInstance().isLoaded(); |
113 } | 113 } |
114 })); | 114 })); |
115 } | 115 } |
116 | 116 |
117 @SmallTest | 117 @SmallTest |
118 @Feature({"SearchEngines"}) | 118 @Feature({"SearchEngines"}) |
119 public void testSetAndGetSearchEngine() throws InterruptedException { | 119 public void testSetAndGetSearchEngine() throws InterruptedException { |
120 final TemplateUrlService templateUrlService = waitForTemplateUrlServiceT
oLoad(); | 120 final TemplateUrlService templateUrlService = waitForTemplateUrlServiceT
oLoad(); |
121 | 121 |
122 // Ensure known state of default search index before running test. | 122 List<TemplateUrl> searchEngines = |
123 int searchEngineIndex = ThreadUtils.runOnUiThreadBlockingNoException( | 123 ThreadUtils.runOnUiThreadBlockingNoException(new Callable<List<T
emplateUrl>>() { |
124 new Callable<Integer>() { | |
125 @Override | 124 @Override |
126 public Integer call() throws Exception { | 125 public List<TemplateUrl> call() throws Exception { |
127 return templateUrlService.getDefaultSearchEngineIndex(); | 126 return templateUrlService.getSearchEngines(); |
128 } | 127 } |
129 }); | 128 }); |
130 assertEquals(0, searchEngineIndex); | 129 // Ensure known state of default search index before running test. |
| 130 String searchEngineKeyword = |
| 131 ThreadUtils.runOnUiThreadBlockingNoException(new Callable<String
>() { |
| 132 @Override |
| 133 public String call() throws Exception { |
| 134 return templateUrlService.getDefaultSearchEngineTemplate
Url().getKeyword(); |
| 135 } |
| 136 }); |
| 137 assertEquals(searchEngines.get(0).getKeyword(), searchEngineKeyword); |
131 | 138 |
132 // Set search engine index and verified it stuck. | 139 // Set search engine index and verified it stuck. |
133 ThreadUtils.runOnUiThreadBlocking(new Runnable() { | 140 ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
134 @Override | 141 @Override |
135 public void run() { | 142 public void run() { |
136 List<TemplateUrl> searchEngines = | 143 List<TemplateUrl> searchEngines = templateUrlService.getSearchEn
gines(); |
137 templateUrlService.getLocalizedSearchEngines(); | |
138 assertTrue("There must be more than one search engine to change
searchEngines", | 144 assertTrue("There must be more than one search engine to change
searchEngines", |
139 searchEngines.size() > 1); | 145 searchEngines.size() > 1); |
140 templateUrlService.setSearchEngine(1); | 146 templateUrlService.setSearchEngine(searchEngines.get(1).getKeywo
rd()); |
141 } | 147 } |
142 }); | 148 }); |
143 searchEngineIndex = ThreadUtils.runOnUiThreadBlockingNoException( | 149 searchEngineKeyword = ThreadUtils.runOnUiThreadBlockingNoException(new C
allable<String>() { |
144 new Callable<Integer>() { | 150 @Override |
145 @Override | 151 public String call() throws Exception { |
146 public Integer call() throws Exception { | 152 return templateUrlService.getDefaultSearchEngineTemplateUrl().ge
tKeyword(); |
147 return templateUrlService.getDefaultSearchEngineIndex(); | 153 } |
148 } | 154 }); |
149 }); | 155 assertEquals(searchEngines.get(1).getKeyword(), searchEngineKeyword); |
150 assertEquals(1, searchEngineIndex); | |
151 } | 156 } |
152 | 157 |
153 private TemplateUrlService waitForTemplateUrlServiceToLoad() throws Interrup
tedException { | 158 private TemplateUrlService waitForTemplateUrlServiceToLoad() throws Interrup
tedException { |
154 final AtomicBoolean observerNotified = new AtomicBoolean(false); | 159 final AtomicBoolean observerNotified = new AtomicBoolean(false); |
155 final LoadListener listener = new LoadListener() { | 160 final LoadListener listener = new LoadListener() { |
156 @Override | 161 @Override |
157 public void onTemplateUrlServiceLoaded() { | 162 public void onTemplateUrlServiceLoaded() { |
158 observerNotified.set(true); | 163 observerNotified.set(true); |
159 } | 164 } |
160 }; | 165 }; |
(...skipping 11 matching lines...) Expand all Loading... |
172 CriteriaHelper.pollInstrumentationThread(new Criteria( | 177 CriteriaHelper.pollInstrumentationThread(new Criteria( |
173 "Observer wasn't notified of TemplateUrlService load.") { | 178 "Observer wasn't notified of TemplateUrlService load.") { |
174 @Override | 179 @Override |
175 public boolean isSatisfied() { | 180 public boolean isSatisfied() { |
176 return observerNotified.get(); | 181 return observerNotified.get(); |
177 } | 182 } |
178 }); | 183 }); |
179 return templateUrlService; | 184 return templateUrlService; |
180 } | 185 } |
181 } | 186 } |
OLD | NEW |