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

Side by Side Diff: chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappRegistryTest.java

Issue 2195143002: [Android] Update all Robolectric tests to Robolectric 3.0 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add OfflinePageTestRunner.java to CL Created 4 years, 4 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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.webapps; 5 package org.chromium.chrome.browser.webapps;
6 6
7 import static org.junit.Assert.assertEquals; 7 import static org.junit.Assert.assertEquals;
8 import static org.junit.Assert.assertTrue; 8 import static org.junit.Assert.assertTrue;
9 9
10 import android.content.Context; 10 import android.content.Context;
11 import android.content.Intent; 11 import android.content.Intent;
12 import android.content.SharedPreferences; 12 import android.content.SharedPreferences;
13 13
14 import org.chromium.base.test.util.Feature; 14 import org.chromium.base.test.util.Feature;
15 import org.chromium.blink_public.platform.WebDisplayMode; 15 import org.chromium.blink_public.platform.WebDisplayMode;
16 import org.chromium.chrome.browser.ShortcutHelper; 16 import org.chromium.chrome.browser.ShortcutHelper;
17 import org.chromium.testing.local.BackgroundShadowAsyncTask; 17 import org.chromium.testing.local.BackgroundShadowAsyncTask;
18 import org.chromium.testing.local.LocalRobolectricTestRunner; 18 import org.chromium.testing.local.LocalRobolectricTestRunner;
19 import org.junit.Before; 19 import org.junit.Before;
20 import org.junit.Test; 20 import org.junit.Test;
21 import org.junit.runner.RunWith; 21 import org.junit.runner.RunWith;
22 import org.robolectric.Robolectric; 22 import org.robolectric.RuntimeEnvironment;
23 import org.robolectric.annotation.Config; 23 import org.robolectric.annotation.Config;
24 import org.robolectric.shadows.ShadowLooper;
24 25
25 import java.util.Arrays; 26 import java.util.Arrays;
26 import java.util.Collections; 27 import java.util.Collections;
27 import java.util.HashSet; 28 import java.util.HashSet;
28 import java.util.Map; 29 import java.util.Map;
29 import java.util.Set; 30 import java.util.Set;
30 31
31 /** 32 /**
32 * Tests the WebappRegistry class by ensuring that it persists data to 33 * Tests the WebappRegistry class by ensuring that it persists data to
33 * SharedPreferences as expected. 34 * SharedPreferences as expected.
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 mCallbackCalled = true; 126 mCallbackCalled = true;
126 } 127 }
127 128
128 boolean getCallbackCalled() { 129 boolean getCallbackCalled() {
129 return mCallbackCalled; 130 return mCallbackCalled;
130 } 131 }
131 } 132 }
132 133
133 @Before 134 @Before
134 public void setUp() throws Exception { 135 public void setUp() throws Exception {
135 mSharedPreferences = Robolectric.application 136 mSharedPreferences = RuntimeEnvironment.application
136 .getSharedPreferences(REGISTRY_FILE_NAME, Context.MODE_PRIVATE); 137 .getSharedPreferences(REGISTRY_FILE_NAME, Context.MODE_PRIVATE);
137 mSharedPreferences.edit().putLong(KEY_LAST_CLEANUP, INITIAL_TIME).commit (); 138 mSharedPreferences.edit().putLong(KEY_LAST_CLEANUP, INITIAL_TIME).commit ();
138 139
139 mCallbackCalled = false; 140 mCallbackCalled = false;
140 } 141 }
141 142
142 @Test 143 @Test
143 @Feature({"Webapp"}) 144 @Feature({"Webapp"})
144 public void testBackwardCompatibility() { 145 public void testBackwardCompatibility() {
145 assertEquals(REGISTRY_FILE_NAME, WebappRegistry.REGISTRY_FILE_NAME); 146 assertEquals(REGISTRY_FILE_NAME, WebappRegistry.REGISTRY_FILE_NAME);
146 assertEquals(KEY_WEBAPP_SET, WebappRegistry.KEY_WEBAPP_SET); 147 assertEquals(KEY_WEBAPP_SET, WebappRegistry.KEY_WEBAPP_SET);
147 assertEquals(KEY_LAST_CLEANUP, WebappRegistry.KEY_LAST_CLEANUP); 148 assertEquals(KEY_LAST_CLEANUP, WebappRegistry.KEY_LAST_CLEANUP);
148 } 149 }
149 150
150 @Test 151 @Test
151 @Feature({"Webapp"}) 152 @Feature({"Webapp"})
152 public void testWebappRegistrationAddsToSharedPrefs() throws Exception { 153 public void testWebappRegistrationAddsToSharedPrefs() throws Exception {
153 WebappRegistry.registerWebapp(Robolectric.application, "test", null); 154 WebappRegistry.registerWebapp(RuntimeEnvironment.application, "test", nu ll);
155
154 BackgroundShadowAsyncTask.runBackgroundTasks(); 156 BackgroundShadowAsyncTask.runBackgroundTasks();
155 157
156 Set<String> actual = mSharedPreferences.getStringSet( 158 Set<String> actual = mSharedPreferences.getStringSet(
157 WebappRegistry.KEY_WEBAPP_SET, Collections.<String>emptySet()); 159 WebappRegistry.KEY_WEBAPP_SET, Collections.<String>emptySet());
158 assertEquals(1, actual.size()); 160 assertEquals(1, actual.size());
159 assertTrue(actual.contains("test")); 161 assertTrue(actual.contains("test"));
160 } 162 }
161 163
162 @Test 164 @Test
163 @Feature({"Webapp"}) 165 @Feature({"Webapp"})
164 public void testWebappRegistrationUpdatesLastUsed() throws Exception { 166 public void testWebappRegistrationUpdatesLastUsed() throws Exception {
165 WebappRegistry.registerWebapp(Robolectric.application, "test", null); 167 WebappRegistry.registerWebapp(RuntimeEnvironment.application, "test", nu ll);
168
166 BackgroundShadowAsyncTask.runBackgroundTasks(); 169 BackgroundShadowAsyncTask.runBackgroundTasks();
167 long after = System.currentTimeMillis(); 170 long after = System.currentTimeMillis();
168 171
169 SharedPreferences webAppPrefs = Robolectric.application.getSharedPrefere nces( 172 SharedPreferences webAppPrefs = RuntimeEnvironment.application.getShared Preferences(
170 WebappDataStorage.SHARED_PREFS_FILE_PREFIX + "test", Context.MOD E_PRIVATE); 173 WebappDataStorage.SHARED_PREFS_FILE_PREFIX + "test", Context.MOD E_PRIVATE);
171 long actual = webAppPrefs.getLong(WebappDataStorage.KEY_LAST_USED, 174 long actual = webAppPrefs.getLong(WebappDataStorage.KEY_LAST_USED,
172 WebappDataStorage.LAST_USED_INVALID); 175 WebappDataStorage.LAST_USED_INVALID);
173 assertTrue("Timestamp is out of range", actual <= after); 176 assertTrue("Timestamp is out of range", actual <= after);
174 } 177 }
175 178
176 @Test 179 @Test
177 @Feature({"Webapp"}) 180 @Feature({"Webapp"})
178 public void testWebappIdsRetrieval() throws Exception { 181 public void testWebappIdsRetrieval() throws Exception {
179 final Set<String> expected = addWebappsToRegistry("first", "second"); 182 final Set<String> expected = addWebappsToRegistry("first", "second");
180 183
181 FetchCallback callback = new FetchCallback(expected); 184 FetchCallback callback = new FetchCallback(expected);
182 WebappRegistry.getRegisteredWebappIds(Robolectric.application, callback) ; 185 WebappRegistry.getRegisteredWebappIds(RuntimeEnvironment.application, ca llback);
186
183 BackgroundShadowAsyncTask.runBackgroundTasks(); 187 BackgroundShadowAsyncTask.runBackgroundTasks();
184 Robolectric.runUiThreadTasks(); 188 ShadowLooper.runUiThreadTasks();
185 189
186 assertTrue(callback.getCallbackCalled()); 190 assertTrue(callback.getCallbackCalled());
187 } 191 }
188 192
189 @Test 193 @Test
190 @Feature({"Webapp"}) 194 @Feature({"Webapp"})
191 public void testWebappIdsRetrievalRegisterRetrival() throws Exception { 195 public void testWebappIdsRetrievalRegisterRetrival() throws Exception {
192 final Set<String> expected = addWebappsToRegistry("first"); 196 final Set<String> expected = addWebappsToRegistry("first");
193 197
194 FetchCallback callback = new FetchCallback(expected); 198 FetchCallback callback = new FetchCallback(expected);
195 WebappRegistry.getRegisteredWebappIds(Robolectric.application, callback) ; 199 WebappRegistry.getRegisteredWebappIds(RuntimeEnvironment.application, ca llback);
200
196 BackgroundShadowAsyncTask.runBackgroundTasks(); 201 BackgroundShadowAsyncTask.runBackgroundTasks();
197 Robolectric.runUiThreadTasks(); 202 ShadowLooper.runUiThreadTasks();
198 203
199 assertTrue(callback.getCallbackCalled()); 204 assertTrue(callback.getCallbackCalled());
200 205
201 WebappRegistry.registerWebapp(Robolectric.application, "second", null); 206 WebappRegistry.registerWebapp(RuntimeEnvironment.application, "second", null);
207
202 BackgroundShadowAsyncTask.runBackgroundTasks(); 208 BackgroundShadowAsyncTask.runBackgroundTasks();
203 209
204 // A copy of the expected set needs to be made as the SharedPreferences is using the copy 210 // A copy of the expected set needs to be made as the SharedPreferences is using the copy
205 // that was paassed to it. 211 // that was paassed to it.
206 final Set<String> secondExpected = new HashSet<String>(expected); 212 final Set<String> secondExpected = new HashSet<String>(expected);
207 secondExpected.add("second"); 213 secondExpected.add("second");
208 214
209 callback = new FetchCallback(secondExpected); 215 callback = new FetchCallback(secondExpected);
210 WebappRegistry.getRegisteredWebappIds(Robolectric.application, callback) ; 216 WebappRegistry.getRegisteredWebappIds(RuntimeEnvironment.application, ca llback);
217
211 BackgroundShadowAsyncTask.runBackgroundTasks(); 218 BackgroundShadowAsyncTask.runBackgroundTasks();
212 Robolectric.runUiThreadTasks(); 219 ShadowLooper.runUiThreadTasks();
213 220
214 assertTrue(callback.getCallbackCalled()); 221 assertTrue(callback.getCallbackCalled());
215 } 222 }
216 223
217 @Test 224 @Test
218 @Feature({"Webapp"}) 225 @Feature({"Webapp"})
219 public void testUnregisterRunsCallback() throws Exception { 226 public void testUnregisterRunsCallback() throws Exception {
220 CallbackRunner callback = new CallbackRunner(); 227 CallbackRunner callback = new CallbackRunner();
221 WebappRegistry.unregisterAllWebapps(Robolectric.application, callback); 228 WebappRegistry.unregisterAllWebapps(RuntimeEnvironment.application, call back);
229
222 BackgroundShadowAsyncTask.runBackgroundTasks(); 230 BackgroundShadowAsyncTask.runBackgroundTasks();
223 Robolectric.runUiThreadTasks(); 231 ShadowLooper.runUiThreadTasks();
224 232
225 assertTrue(callback.getCallbackCalled()); 233 assertTrue(callback.getCallbackCalled());
226 } 234 }
227 235
228 @Test 236 @Test
229 @Feature({"Webapp"}) 237 @Feature({"Webapp"})
230 public void testUnregisterClearsRegistry() throws Exception { 238 public void testUnregisterClearsRegistry() throws Exception {
231 addWebappsToRegistry("test"); 239 addWebappsToRegistry("test");
232 240
233 CallbackRunner callback = new CallbackRunner(); 241 CallbackRunner callback = new CallbackRunner();
234 WebappRegistry.unregisterAllWebapps(Robolectric.application, callback); 242 WebappRegistry.unregisterAllWebapps(RuntimeEnvironment.application, call back);
243
235 BackgroundShadowAsyncTask.runBackgroundTasks(); 244 BackgroundShadowAsyncTask.runBackgroundTasks();
236 Robolectric.runUiThreadTasks(); 245 ShadowLooper.runUiThreadTasks();
237 246
238 assertTrue(callback.getCallbackCalled()); 247 assertTrue(callback.getCallbackCalled());
239 assertTrue(getRegisteredWebapps().isEmpty()); 248 assertTrue(getRegisteredWebapps().isEmpty());
240 } 249 }
241 250
242 @Test 251 @Test
243 @Feature({"Webapp"}) 252 @Feature({"Webapp"})
244 public void testUnregisterClearsWebappDataStorage() throws Exception { 253 public void testUnregisterClearsWebappDataStorage() throws Exception {
245 addWebappsToRegistry("test"); 254 addWebappsToRegistry("test");
246 SharedPreferences webAppPrefs = Robolectric.application.getSharedPrefere nces( 255 SharedPreferences webAppPrefs = RuntimeEnvironment.application.getShared Preferences(
247 WebappDataStorage.SHARED_PREFS_FILE_PREFIX + "test", Context.MOD E_PRIVATE); 256 WebappDataStorage.SHARED_PREFS_FILE_PREFIX + "test", Context.MOD E_PRIVATE);
248 webAppPrefs.edit().putLong(WebappDataStorage.KEY_LAST_USED, 100L).apply( ); 257 webAppPrefs.edit().putLong(WebappDataStorage.KEY_LAST_USED, 100L).apply( );
249 258
250 WebappRegistry.unregisterAllWebapps(Robolectric.application, null); 259 WebappRegistry.unregisterAllWebapps(RuntimeEnvironment.application, null );
251 BackgroundShadowAsyncTask.runBackgroundTasks(); 260 BackgroundShadowAsyncTask.runBackgroundTasks();
252 261
253 Map<String, ?> actual = webAppPrefs.getAll(); 262 Map<String, ?> actual = webAppPrefs.getAll();
254 assertTrue(actual.isEmpty()); 263 assertTrue(actual.isEmpty());
255 } 264 }
256 265
257 @Test 266 @Test
258 @Feature({"Webapp"}) 267 @Feature({"Webapp"})
259 public void testCleanupDoesNotRunTooOften() throws Exception { 268 public void testCleanupDoesNotRunTooOften() throws Exception {
260 // Put the current time to just before the task should run. 269 // Put the current time to just before the task should run.
261 long currentTime = INITIAL_TIME + WebappRegistry.FULL_CLEANUP_DURATION - 1; 270 long currentTime = INITIAL_TIME + WebappRegistry.FULL_CLEANUP_DURATION - 1;
262 271
263 addWebappsToRegistry("oldWebapp"); 272 addWebappsToRegistry("oldWebapp");
264 SharedPreferences webAppPrefs = Robolectric.application.getSharedPrefere nces( 273 SharedPreferences webAppPrefs = RuntimeEnvironment.application.getShared Preferences(
265 WebappDataStorage.SHARED_PREFS_FILE_PREFIX + "oldWebapp", Contex t.MODE_PRIVATE); 274 WebappDataStorage.SHARED_PREFS_FILE_PREFIX + "oldWebapp", Contex t.MODE_PRIVATE);
266 webAppPrefs.edit().putLong(WebappDataStorage.KEY_LAST_USED, Long.MIN_VAL UE).apply(); 275 webAppPrefs.edit().putLong(WebappDataStorage.KEY_LAST_USED, Long.MIN_VAL UE).apply();
267 276
268 WebappRegistry.unregisterOldWebapps(Robolectric.application, currentTime ); 277 WebappRegistry.unregisterOldWebapps(RuntimeEnvironment.application, curr entTime);
269 BackgroundShadowAsyncTask.runBackgroundTasks(); 278 BackgroundShadowAsyncTask.runBackgroundTasks();
270 279
271 Set<String> actual = mSharedPreferences.getStringSet( 280 Set<String> actual = mSharedPreferences.getStringSet(
272 WebappRegistry.KEY_WEBAPP_SET, Collections.<String>emptySet()); 281 WebappRegistry.KEY_WEBAPP_SET, Collections.<String>emptySet());
273 assertEquals(new HashSet<String>(Arrays.asList("oldWebapp")), actual); 282 assertEquals(new HashSet<String>(Arrays.asList("oldWebapp")), actual);
274 283
275 long actualLastUsed = webAppPrefs.getLong(WebappDataStorage.KEY_LAST_USE D, 284 long actualLastUsed = webAppPrefs.getLong(WebappDataStorage.KEY_LAST_USE D,
276 WebappDataStorage.LAST_USED_INVALID); 285 WebappDataStorage.LAST_USED_INVALID);
277 assertEquals(Long.MIN_VALUE, actualLastUsed); 286 assertEquals(Long.MIN_VALUE, actualLastUsed);
278 287
279 // The last cleanup time was set to 0 in setUp() so check that this hasn 't changed. 288 // The last cleanup time was set to 0 in setUp() so check that this hasn 't changed.
280 long lastCleanup = mSharedPreferences.getLong(WebappRegistry.KEY_LAST_CL EANUP, -1); 289 long lastCleanup = mSharedPreferences.getLong(WebappRegistry.KEY_LAST_CL EANUP, -1);
281 assertEquals(INITIAL_TIME, lastCleanup); 290 assertEquals(INITIAL_TIME, lastCleanup);
282 } 291 }
283 292
284 @Test 293 @Test
285 @Feature({"Webapp"}) 294 @Feature({"Webapp"})
286 public void testCleanupDoesNotRemoveRecentApps() throws Exception { 295 public void testCleanupDoesNotRemoveRecentApps() throws Exception {
287 // Put the current time such that the task runs. 296 // Put the current time such that the task runs.
288 long currentTime = INITIAL_TIME + WebappRegistry.FULL_CLEANUP_DURATION; 297 long currentTime = INITIAL_TIME + WebappRegistry.FULL_CLEANUP_DURATION;
289 298
290 // Put the last used time just inside the no-cleanup window. 299 // Put the last used time just inside the no-cleanup window.
291 addWebappsToRegistry("recentWebapp"); 300 addWebappsToRegistry("recentWebapp");
292 SharedPreferences webAppPrefs = Robolectric.application.getSharedPrefere nces( 301 SharedPreferences webAppPrefs = RuntimeEnvironment.application.getShared Preferences(
293 WebappDataStorage.SHARED_PREFS_FILE_PREFIX + "recentWebapp", Con text.MODE_PRIVATE); 302 WebappDataStorage.SHARED_PREFS_FILE_PREFIX + "recentWebapp", Con text.MODE_PRIVATE);
294 long lastUsed = currentTime - WebappRegistry.WEBAPP_UNOPENED_CLEANUP_DUR ATION + 1; 303 long lastUsed = currentTime - WebappRegistry.WEBAPP_UNOPENED_CLEANUP_DUR ATION + 1;
295 webAppPrefs.edit().putLong(WebappDataStorage.KEY_LAST_USED, lastUsed).ap ply(); 304 webAppPrefs.edit().putLong(WebappDataStorage.KEY_LAST_USED, lastUsed).ap ply();
296 305
297 // Because the time is just inside the window, there should be a cleanup but the web app 306 // Because the time is just inside the window, there should be a cleanup but the web app
298 // should not be deleted as it was used recently. The last cleanup time should also be 307 // should not be deleted as it was used recently. The last cleanup time should also be
299 // set to the current time. 308 // set to the current time.
300 WebappRegistry.unregisterOldWebapps(Robolectric.application, currentTime ); 309 WebappRegistry.unregisterOldWebapps(RuntimeEnvironment.application, curr entTime);
301 BackgroundShadowAsyncTask.runBackgroundTasks(); 310 BackgroundShadowAsyncTask.runBackgroundTasks();
302 311
303 Set<String> actual = mSharedPreferences.getStringSet( 312 Set<String> actual = mSharedPreferences.getStringSet(
304 WebappRegistry.KEY_WEBAPP_SET, Collections.<String>emptySet()); 313 WebappRegistry.KEY_WEBAPP_SET, Collections.<String>emptySet());
305 assertEquals(new HashSet<String>(Arrays.asList("recentWebapp")), actual) ; 314 assertEquals(new HashSet<String>(Arrays.asList("recentWebapp")), actual) ;
306 315
307 long actualLastUsed = webAppPrefs.getLong(WebappDataStorage.KEY_LAST_USE D, 316 long actualLastUsed = webAppPrefs.getLong(WebappDataStorage.KEY_LAST_USE D,
308 WebappDataStorage.LAST_USED_INVALID); 317 WebappDataStorage.LAST_USED_INVALID);
309 assertEquals(lastUsed, actualLastUsed); 318 assertEquals(lastUsed, actualLastUsed);
310 319
311 long lastCleanup = mSharedPreferences.getLong(WebappRegistry.KEY_LAST_CL EANUP, -1); 320 long lastCleanup = mSharedPreferences.getLong(WebappRegistry.KEY_LAST_CL EANUP, -1);
312 assertEquals(currentTime, lastCleanup); 321 assertEquals(currentTime, lastCleanup);
313 } 322 }
314 323
315 @Test 324 @Test
316 @Feature({"Webapp"}) 325 @Feature({"Webapp"})
317 public void testCleanupRemovesOldApps() throws Exception { 326 public void testCleanupRemovesOldApps() throws Exception {
318 // Put the current time such that the task runs. 327 // Put the current time such that the task runs.
319 long currentTime = INITIAL_TIME + WebappRegistry.FULL_CLEANUP_DURATION; 328 long currentTime = INITIAL_TIME + WebappRegistry.FULL_CLEANUP_DURATION;
320 329
321 // Put the last used time just outside the no-cleanup window. 330 // Put the last used time just outside the no-cleanup window.
322 addWebappsToRegistry("oldWebapp"); 331 addWebappsToRegistry("oldWebapp");
323 SharedPreferences webAppPrefs = Robolectric.application.getSharedPrefere nces( 332 SharedPreferences webAppPrefs = RuntimeEnvironment.application.getShared Preferences(
324 WebappDataStorage.SHARED_PREFS_FILE_PREFIX + "oldWebapp", Contex t.MODE_PRIVATE); 333 WebappDataStorage.SHARED_PREFS_FILE_PREFIX + "oldWebapp", Contex t.MODE_PRIVATE);
325 long lastUsed = currentTime - WebappRegistry.WEBAPP_UNOPENED_CLEANUP_DUR ATION; 334 long lastUsed = currentTime - WebappRegistry.WEBAPP_UNOPENED_CLEANUP_DUR ATION;
326 webAppPrefs.edit().putLong(WebappDataStorage.KEY_LAST_USED, lastUsed).ap ply(); 335 webAppPrefs.edit().putLong(WebappDataStorage.KEY_LAST_USED, lastUsed).ap ply();
327 336
328 // Because the time is just inside the window, there should be a cleanup of old web apps and 337 // Because the time is just inside the window, there should be a cleanup of old web apps and
329 // the last cleaned up time should be set to the current time. 338 // the last cleaned up time should be set to the current time.
330 WebappRegistry.unregisterOldWebapps(Robolectric.application, currentTime ); 339 WebappRegistry.unregisterOldWebapps(RuntimeEnvironment.application, curr entTime);
331 BackgroundShadowAsyncTask.runBackgroundTasks(); 340 BackgroundShadowAsyncTask.runBackgroundTasks();
332 341
333 Set<String> actual = mSharedPreferences.getStringSet( 342 Set<String> actual = mSharedPreferences.getStringSet(
334 WebappRegistry.KEY_WEBAPP_SET, Collections.<String>emptySet()); 343 WebappRegistry.KEY_WEBAPP_SET, Collections.<String>emptySet());
335 assertTrue(actual.isEmpty()); 344 assertTrue(actual.isEmpty());
336 345
337 long actualLastUsed = webAppPrefs.getLong(WebappDataStorage.KEY_LAST_USE D, 346 long actualLastUsed = webAppPrefs.getLong(WebappDataStorage.KEY_LAST_USE D,
338 WebappDataStorage.LAST_USED_INVALID); 347 WebappDataStorage.LAST_USED_INVALID);
339 assertEquals(WebappDataStorage.LAST_USED_INVALID, actualLastUsed); 348 assertEquals(WebappDataStorage.LAST_USED_INVALID, actualLastUsed);
340 349
341 long lastCleanup = mSharedPreferences.getLong(WebappRegistry.KEY_LAST_CL EANUP, -1); 350 long lastCleanup = mSharedPreferences.getLong(WebappRegistry.KEY_LAST_CL EANUP, -1);
342 assertEquals(currentTime, lastCleanup); 351 assertEquals(currentTime, lastCleanup);
343 } 352 }
344 353
345 @Test 354 @Test
346 @Feature({"WebApk"}) 355 @Feature({"WebApk"})
347 public void testCleanupRemovesUninstalledWebApks() throws Exception { 356 public void testCleanupRemovesUninstalledWebApks() throws Exception {
348 String webappId1 = "webapk:uninstalledWebApk1"; 357 String webappId1 = "webapk:uninstalledWebApk1";
349 String webApkPackage1 = "uninstalledWebApk1"; 358 String webApkPackage1 = "uninstalledWebApk1";
350 String webappId2 = "webapk:uninstalledWebApk2"; 359 String webappId2 = "webapk:uninstalledWebApk2";
351 String webApkPackage2 = "uninstalledWebApk2"; 360 String webApkPackage2 = "uninstalledWebApk2";
352 361
353 FetchStorageCallback storageCallback1 = new FetchStorageCallback( 362 FetchStorageCallback storageCallback1 = new FetchStorageCallback(
354 createWebApkIntent(webappId1, webApkPackage1)); 363 createWebApkIntent(webappId1, webApkPackage1));
355 WebappRegistry.registerWebapp(Robolectric.application, webappId1, storag eCallback1); 364 WebappRegistry.registerWebapp(RuntimeEnvironment.application, webappId1, storageCallback1);
356 BackgroundShadowAsyncTask.runBackgroundTasks(); 365 BackgroundShadowAsyncTask.runBackgroundTasks();
357 Robolectric.runUiThreadTasks(); 366 ShadowLooper.runUiThreadTasks();
358 assertTrue(storageCallback1.getCallbackCalled()); 367 assertTrue(storageCallback1.getCallbackCalled());
359 368
360 FetchStorageCallback storageCallback2 = new FetchStorageCallback( 369 FetchStorageCallback storageCallback2 = new FetchStorageCallback(
361 createWebApkIntent(webappId1, webApkPackage2)); 370 createWebApkIntent(webappId1, webApkPackage2));
362 WebappRegistry.registerWebapp(Robolectric.application, webappId2, storag eCallback2); 371 WebappRegistry.registerWebapp(RuntimeEnvironment.application, webappId2, storageCallback2);
363 BackgroundShadowAsyncTask.runBackgroundTasks(); 372 BackgroundShadowAsyncTask.runBackgroundTasks();
364 Robolectric.runUiThreadTasks(); 373 ShadowLooper.runUiThreadTasks();
365 assertTrue(storageCallback2.getCallbackCalled()); 374 assertTrue(storageCallback2.getCallbackCalled());
366 375
367 // Verify that both WebAPKs are registered. 376 // Verify that both WebAPKs are registered.
368 Set<String> actual = mSharedPreferences.getStringSet( 377 Set<String> actual = mSharedPreferences.getStringSet(
369 WebappRegistry.KEY_WEBAPP_SET, Collections.<String>emptySet()); 378 WebappRegistry.KEY_WEBAPP_SET, Collections.<String>emptySet());
370 assertEquals(2, actual.size()); 379 assertEquals(2, actual.size());
371 assertTrue(actual.contains(webappId1)); 380 assertTrue(actual.contains(webappId1));
372 assertTrue(actual.contains(webappId2)); 381 assertTrue(actual.contains(webappId2));
373 382
374 // Set the current time such that the task runs. 383 // Set the current time such that the task runs.
375 long currentTime = System.currentTimeMillis() + WebappRegistry.FULL_CLEA NUP_DURATION; 384 long currentTime = System.currentTimeMillis() + WebappRegistry.FULL_CLEA NUP_DURATION;
376 // Because the time is just inside the window, there should be a cleanup of 385 // Because the time is just inside the window, there should be a cleanup of
377 // uninstalled WebAPKs and the last cleaned up time should be set to the 386 // uninstalled WebAPKs and the last cleaned up time should be set to the
378 // current time. 387 // current time.
379 WebappRegistry.unregisterOldWebapps(Robolectric.application, currentTime ); 388 WebappRegistry.unregisterOldWebapps(RuntimeEnvironment.application, curr entTime);
380 BackgroundShadowAsyncTask.runBackgroundTasks(); 389 BackgroundShadowAsyncTask.runBackgroundTasks();
381 Robolectric.runUiThreadTasks(); 390 ShadowLooper.runUiThreadTasks();
382 391
383 actual = mSharedPreferences.getStringSet( 392 actual = mSharedPreferences.getStringSet(
384 WebappRegistry.KEY_WEBAPP_SET, Collections.<String>emptySet()); 393 WebappRegistry.KEY_WEBAPP_SET, Collections.<String>emptySet());
385 assertTrue(actual.isEmpty()); 394 assertTrue(actual.isEmpty());
386 395
387 long lastCleanup = mSharedPreferences.getLong( 396 long lastCleanup = mSharedPreferences.getLong(
388 WebappRegistry.KEY_LAST_CLEANUP, -1); 397 WebappRegistry.KEY_LAST_CLEANUP, -1);
389 assertEquals(currentTime, lastCleanup); 398 assertEquals(currentTime, lastCleanup);
390 } 399 }
391 400
392 @Test 401 @Test
393 @Feature({"WebApk"}) 402 @Feature({"WebApk"})
394 public void testCleanupDoesNotRemoveInstalledWebApks() throws Exception { 403 public void testCleanupDoesNotRemoveInstalledWebApks() throws Exception {
395 String webappId = "webapk:installedWebApk"; 404 String webappId = "webapk:installedWebApk";
396 String webApkPackage = "installedWebApk"; 405 String webApkPackage = "installedWebApk";
397 String uninstalledWebappId = "webapk:uninstalledWebApk"; 406 String uninstalledWebappId = "webapk:uninstalledWebApk";
398 String uninstalledWebApkPackage = "uninstalledWebApk"; 407 String uninstalledWebApkPackage = "uninstalledWebApk";
399 408
400 FetchStorageCallback storageCallback = new FetchStorageCallback( 409 FetchStorageCallback storageCallback = new FetchStorageCallback(
401 createWebApkIntent(webappId, webApkPackage)); 410 createWebApkIntent(webappId, webApkPackage));
402 WebappRegistry.registerWebapp(Robolectric.application, webappId, storage Callback); 411 WebappRegistry.registerWebapp(RuntimeEnvironment.application, webappId, storageCallback);
403 BackgroundShadowAsyncTask.runBackgroundTasks(); 412 BackgroundShadowAsyncTask.runBackgroundTasks();
404 Robolectric.runUiThreadTasks(); 413 ShadowLooper.runUiThreadTasks();
405 assertTrue(storageCallback.getCallbackCalled()); 414 assertTrue(storageCallback.getCallbackCalled());
406 415
407 FetchStorageCallback storageCallback2 = new FetchStorageCallback( 416 FetchStorageCallback storageCallback2 = new FetchStorageCallback(
408 createWebApkIntent(uninstalledWebappId, uninstalledWebApkPackage )); 417 createWebApkIntent(uninstalledWebappId, uninstalledWebApkPackage ));
409 WebappRegistry.registerWebapp(Robolectric.application, uninstalledWebapp Id, 418 WebappRegistry.registerWebapp(RuntimeEnvironment.application, uninstalle dWebappId,
410 storageCallback2); 419 storageCallback2);
411 BackgroundShadowAsyncTask.runBackgroundTasks(); 420 BackgroundShadowAsyncTask.runBackgroundTasks();
412 Robolectric.runUiThreadTasks(); 421 ShadowLooper.runUiThreadTasks();
413 assertTrue(storageCallback2.getCallbackCalled()); 422 assertTrue(storageCallback2.getCallbackCalled());
414 423
415 // Verify that both WebAPKs are registered. 424 // Verify that both WebAPKs are registered.
416 Set<String> actual = mSharedPreferences.getStringSet( 425 Set<String> actual = mSharedPreferences.getStringSet(
417 WebappRegistry.KEY_WEBAPP_SET, Collections.<String>emptySet()); 426 WebappRegistry.KEY_WEBAPP_SET, Collections.<String>emptySet());
418 assertEquals(2, actual.size()); 427 assertEquals(2, actual.size());
419 assertTrue(actual.contains(webappId)); 428 assertTrue(actual.contains(webappId));
420 assertTrue(actual.contains(uninstalledWebappId)); 429 assertTrue(actual.contains(uninstalledWebappId));
421 430
422 Robolectric.packageManager.addPackage(webApkPackage); 431 RuntimeEnvironment.getRobolectricPackageManager().addPackage(webApkPacka ge);
423 432
424 // Set the current time such that the task runs. 433 // Set the current time such that the task runs.
425 long currentTime = System.currentTimeMillis() + WebappRegistry.FULL_CLEA NUP_DURATION; 434 long currentTime = System.currentTimeMillis() + WebappRegistry.FULL_CLEA NUP_DURATION;
426 // Because the time is just inside the window, there should be a cleanup of 435 // Because the time is just inside the window, there should be a cleanup of
427 // uninstalled WebAPKs and the last cleaned up time should be set to the 436 // uninstalled WebAPKs and the last cleaned up time should be set to the
428 // current time. 437 // current time.
429 WebappRegistry.unregisterOldWebapps(Robolectric.application, currentTime ); 438 WebappRegistry.unregisterOldWebapps(RuntimeEnvironment.application, curr entTime);
430 BackgroundShadowAsyncTask.runBackgroundTasks(); 439 BackgroundShadowAsyncTask.runBackgroundTasks();
431 Robolectric.runUiThreadTasks(); 440 ShadowLooper.runUiThreadTasks();
432 441
433 actual = mSharedPreferences.getStringSet( 442 actual = mSharedPreferences.getStringSet(
434 WebappRegistry.KEY_WEBAPP_SET, Collections.<String>emptySet()); 443 WebappRegistry.KEY_WEBAPP_SET, Collections.<String>emptySet());
435 assertEquals(1, actual.size()); 444 assertEquals(1, actual.size());
436 assertTrue(actual.contains(webappId)); 445 assertTrue(actual.contains(webappId));
437 446
438 long lastCleanup = mSharedPreferences.getLong( 447 long lastCleanup = mSharedPreferences.getLong(
439 WebappRegistry.KEY_LAST_CLEANUP, -1); 448 WebappRegistry.KEY_LAST_CLEANUP, -1);
440 assertEquals(currentTime, lastCleanup); 449 assertEquals(currentTime, lastCleanup);
441 } 450 }
442 451
443 @Test 452 @Test
444 @Feature({"Webapp"}) 453 @Feature({"Webapp"})
445 public void testClearWebappHistoryRunsCallback() throws Exception { 454 public void testClearWebappHistoryRunsCallback() throws Exception {
446 CallbackRunner callback = new CallbackRunner(); 455 CallbackRunner callback = new CallbackRunner();
447 WebappRegistry.clearWebappHistory(Robolectric.application, callback); 456 WebappRegistry.clearWebappHistory(RuntimeEnvironment.application, callba ck);
448 BackgroundShadowAsyncTask.runBackgroundTasks(); 457 BackgroundShadowAsyncTask.runBackgroundTasks();
449 Robolectric.runUiThreadTasks(); 458 ShadowLooper.runUiThreadTasks();
450 459
451 assertTrue(callback.getCallbackCalled()); 460 assertTrue(callback.getCallbackCalled());
452 } 461 }
453 462
454 @Test 463 @Test
455 @Feature({"Webapp"}) 464 @Feature({"Webapp"})
456 public void testClearWebappHistory() throws Exception { 465 public void testClearWebappHistory() throws Exception {
457 final String webapp1Url = "https://www.google.com"; 466 final String webapp1Url = "https://www.google.com";
458 final String webapp2Url = "https://drive.google.com"; 467 final String webapp2Url = "https://drive.google.com";
459 Intent shortcutIntent1 = createShortcutIntent(webapp1Url); 468 Intent shortcutIntent1 = createShortcutIntent(webapp1Url);
460 Intent shortcutIntent2 = createShortcutIntent(webapp2Url); 469 Intent shortcutIntent2 = createShortcutIntent(webapp2Url);
461 470
462 FetchStorageCallback storageCallback1 = new FetchStorageCallback(shortcu tIntent1); 471 FetchStorageCallback storageCallback1 = new FetchStorageCallback(shortcu tIntent1);
463 WebappRegistry.registerWebapp(Robolectric.application, "webapp1", storag eCallback1); 472 WebappRegistry.registerWebapp(RuntimeEnvironment.application, "webapp1", storageCallback1);
464 BackgroundShadowAsyncTask.runBackgroundTasks(); 473 BackgroundShadowAsyncTask.runBackgroundTasks();
465 Robolectric.runUiThreadTasks(); 474 ShadowLooper.runUiThreadTasks();
466 assertTrue(storageCallback1.getCallbackCalled()); 475 assertTrue(storageCallback1.getCallbackCalled());
467 476
468 FetchStorageCallback storageCallback2 = new FetchStorageCallback(shortcu tIntent2); 477 FetchStorageCallback storageCallback2 = new FetchStorageCallback(shortcu tIntent2);
469 WebappRegistry.registerWebapp(Robolectric.application, "webapp2", storag eCallback2); 478 WebappRegistry.registerWebapp(RuntimeEnvironment.application, "webapp2", storageCallback2);
470 BackgroundShadowAsyncTask.runBackgroundTasks(); 479 BackgroundShadowAsyncTask.runBackgroundTasks();
471 Robolectric.runUiThreadTasks(); 480 ShadowLooper.runUiThreadTasks();
472 assertTrue(storageCallback2.getCallbackCalled()); 481 assertTrue(storageCallback2.getCallbackCalled());
473 482
474 SharedPreferences webapp1Prefs = Robolectric.application.getSharedPrefer ences( 483 SharedPreferences webapp1Prefs = RuntimeEnvironment.application.getShare dPreferences(
475 WebappDataStorage.SHARED_PREFS_FILE_PREFIX + "webapp1", Context. MODE_PRIVATE); 484 WebappDataStorage.SHARED_PREFS_FILE_PREFIX + "webapp1", Context. MODE_PRIVATE);
476 SharedPreferences webapp2Prefs = Robolectric.application.getSharedPrefer ences( 485 SharedPreferences webapp2Prefs = RuntimeEnvironment.application.getShare dPreferences(
477 WebappDataStorage.SHARED_PREFS_FILE_PREFIX + "webapp2", Context. MODE_PRIVATE); 486 WebappDataStorage.SHARED_PREFS_FILE_PREFIX + "webapp2", Context. MODE_PRIVATE);
478 487
479 CallbackRunner callback = new CallbackRunner(); 488 CallbackRunner callback = new CallbackRunner();
480 WebappRegistry.clearWebappHistory(Robolectric.application, callback); 489 WebappRegistry.clearWebappHistory(RuntimeEnvironment.application, callba ck);
481 BackgroundShadowAsyncTask.runBackgroundTasks(); 490 BackgroundShadowAsyncTask.runBackgroundTasks();
482 Robolectric.runUiThreadTasks(); 491 ShadowLooper.runUiThreadTasks();
483 assertTrue(callback.getCallbackCalled()); 492 assertTrue(callback.getCallbackCalled());
484 493
485 Set<String> actual = mSharedPreferences.getStringSet( 494 Set<String> actual = mSharedPreferences.getStringSet(
486 WebappRegistry.KEY_WEBAPP_SET, Collections.<String>emptySet()); 495 WebappRegistry.KEY_WEBAPP_SET, Collections.<String>emptySet());
487 assertEquals(2, actual.size()); 496 assertEquals(2, actual.size());
488 assertTrue(actual.contains("webapp1")); 497 assertTrue(actual.contains("webapp1"));
489 assertTrue(actual.contains("webapp2")); 498 assertTrue(actual.contains("webapp2"));
490 499
491 // Verify that the last used time for both web apps is WebappDataStorage .LAST_USED_UNSET. 500 // Verify that the last used time for both web apps is WebappDataStorage .LAST_USED_UNSET.
492 long actualLastUsed = webapp1Prefs.getLong( 501 long actualLastUsed = webapp1Prefs.getLong(
(...skipping 14 matching lines...) Expand all
507 WebappDataStorage.KEY_SCOPE, WebappDataStorage.URL_INVALID); 516 WebappDataStorage.KEY_SCOPE, WebappDataStorage.URL_INVALID);
508 assertEquals(WebappDataStorage.URL_INVALID, actualScope); 517 assertEquals(WebappDataStorage.URL_INVALID, actualScope);
509 actualUrl = webapp2Prefs.getString( 518 actualUrl = webapp2Prefs.getString(
510 WebappDataStorage.KEY_URL, WebappDataStorage.URL_INVALID); 519 WebappDataStorage.KEY_URL, WebappDataStorage.URL_INVALID);
511 assertEquals(WebappDataStorage.URL_INVALID, actualUrl); 520 assertEquals(WebappDataStorage.URL_INVALID, actualUrl);
512 } 521 }
513 522
514 @Test 523 @Test
515 @Feature({"Webapp"}) 524 @Feature({"Webapp"})
516 public void testGetAfterClearWebappHistory() throws Exception { 525 public void testGetAfterClearWebappHistory() throws Exception {
517 WebappRegistry.registerWebapp(Robolectric.application, "webapp", null); 526 WebappRegistry.registerWebapp(RuntimeEnvironment.application, "webapp", null);
518 BackgroundShadowAsyncTask.runBackgroundTasks(); 527 BackgroundShadowAsyncTask.runBackgroundTasks();
519 528
520 SharedPreferences webappPrefs = Robolectric.application.getSharedPrefere nces( 529 SharedPreferences webappPrefs = RuntimeEnvironment.application.getShared Preferences(
521 WebappDataStorage.SHARED_PREFS_FILE_PREFIX + "webapp", Context.M ODE_PRIVATE); 530 WebappDataStorage.SHARED_PREFS_FILE_PREFIX + "webapp", Context.M ODE_PRIVATE);
522 CallbackRunner callback = new CallbackRunner(); 531 CallbackRunner callback = new CallbackRunner();
523 WebappRegistry.clearWebappHistory(Robolectric.application, callback); 532 WebappRegistry.clearWebappHistory(RuntimeEnvironment.application, callba ck);
524 BackgroundShadowAsyncTask.runBackgroundTasks(); 533 BackgroundShadowAsyncTask.runBackgroundTasks();
525 Robolectric.runUiThreadTasks(); 534 ShadowLooper.runUiThreadTasks();
526 assertTrue(callback.getCallbackCalled()); 535 assertTrue(callback.getCallbackCalled());
527 536
528 // Open the webapp up to set the last used time. 537 // Open the webapp up to set the last used time.
529 FetchStorageCallback storageCallback = new FetchStorageCallback(null); 538 FetchStorageCallback storageCallback = new FetchStorageCallback(null);
530 WebappRegistry.getWebappDataStorage(Robolectric.application, "webapp", s torageCallback); 539 WebappRegistry.getWebappDataStorage(
540 RuntimeEnvironment.application, "webapp", storageCallback);
531 BackgroundShadowAsyncTask.runBackgroundTasks(); 541 BackgroundShadowAsyncTask.runBackgroundTasks();
532 Robolectric.runUiThreadTasks(); 542 ShadowLooper.runUiThreadTasks();
533 assertTrue(storageCallback.getCallbackCalled()); 543 assertTrue(storageCallback.getCallbackCalled());
534 544
535 // Verify that the last used time is valid. 545 // Verify that the last used time is valid.
536 long actualLastUsed = webappPrefs.getLong( 546 long actualLastUsed = webappPrefs.getLong(
537 WebappDataStorage.KEY_LAST_USED, WebappDataStorage.LAST_USED_INV ALID); 547 WebappDataStorage.KEY_LAST_USED, WebappDataStorage.LAST_USED_INV ALID);
538 assertTrue(WebappDataStorage.LAST_USED_INVALID != actualLastUsed); 548 assertTrue(WebappDataStorage.LAST_USED_INVALID != actualLastUsed);
539 assertTrue(WebappDataStorage.LAST_USED_UNSET != actualLastUsed); 549 assertTrue(WebappDataStorage.LAST_USED_UNSET != actualLastUsed);
540 } 550 }
541 551
542 @Test 552 @Test
543 @Feature({"Webapp"}) 553 @Feature({"Webapp"})
544 public void testUpdateAfterClearWebappHistory() throws Exception { 554 public void testUpdateAfterClearWebappHistory() throws Exception {
545 final String webappUrl = "http://www.google.com"; 555 final String webappUrl = "http://www.google.com";
546 final String webappScope = "http://www.google.com/"; 556 final String webappScope = "http://www.google.com/";
547 final Intent shortcutIntent = createShortcutIntent(webappUrl); 557 final Intent shortcutIntent = createShortcutIntent(webappUrl);
548 WebappRegistry.registerWebapp(Robolectric.application, "webapp", 558 WebappRegistry.registerWebapp(RuntimeEnvironment.application, "webapp",
549 new FetchStorageCallback(shortcutIntent)); 559 new FetchStorageCallback(shortcutIntent));
550 BackgroundShadowAsyncTask.runBackgroundTasks(); 560 BackgroundShadowAsyncTask.runBackgroundTasks();
551 Robolectric.runUiThreadTasks(); 561 ShadowLooper.runUiThreadTasks();
552 562
553 SharedPreferences webappPrefs = Robolectric.application.getSharedPrefere nces( 563 SharedPreferences webappPrefs = RuntimeEnvironment.application.getShared Preferences(
554 WebappDataStorage.SHARED_PREFS_FILE_PREFIX + "webapp", Context.M ODE_PRIVATE); 564 WebappDataStorage.SHARED_PREFS_FILE_PREFIX + "webapp", Context.M ODE_PRIVATE);
555 565
556 // Verify that the URL and scope match the original in the intent. 566 // Verify that the URL and scope match the original in the intent.
557 String actualUrl = webappPrefs.getString( 567 String actualUrl = webappPrefs.getString(
558 WebappDataStorage.KEY_URL, WebappDataStorage.URL_INVALID); 568 WebappDataStorage.KEY_URL, WebappDataStorage.URL_INVALID);
559 assertEquals(webappUrl, actualUrl); 569 assertEquals(webappUrl, actualUrl);
560 String actualScope = webappPrefs.getString( 570 String actualScope = webappPrefs.getString(
561 WebappDataStorage.KEY_SCOPE, WebappDataStorage.URL_INVALID); 571 WebappDataStorage.KEY_SCOPE, WebappDataStorage.URL_INVALID);
562 assertEquals(webappScope, actualScope); 572 assertEquals(webappScope, actualScope);
563 573
564 WebappRegistry.clearWebappHistory(Robolectric.application, new CallbackR unner()); 574 WebappRegistry.clearWebappHistory(RuntimeEnvironment.application, new Ca llbackRunner());
565 BackgroundShadowAsyncTask.runBackgroundTasks(); 575 BackgroundShadowAsyncTask.runBackgroundTasks();
566 Robolectric.runUiThreadTasks(); 576 ShadowLooper.runUiThreadTasks();
567 577
568 // Update the webapp from the intent again. 578 // Update the webapp from the intent again.
569 WebappRegistry.getWebappDataStorage(Robolectric.application, "webapp", 579 WebappRegistry.getWebappDataStorage(RuntimeEnvironment.application, "web app",
570 new FetchStorageCallback(shortcutIntent)); 580 new FetchStorageCallback(shortcutIntent));
571 BackgroundShadowAsyncTask.runBackgroundTasks(); 581 BackgroundShadowAsyncTask.runBackgroundTasks();
572 Robolectric.runUiThreadTasks(); 582 ShadowLooper.runUiThreadTasks();
573 583
574 // Verify that the URL and scope match the original in the intent. 584 // Verify that the URL and scope match the original in the intent.
575 actualUrl = webappPrefs.getString(WebappDataStorage.KEY_URL, WebappDataS torage.URL_INVALID); 585 actualUrl = webappPrefs.getString(WebappDataStorage.KEY_URL, WebappDataS torage.URL_INVALID);
576 assertEquals(webappUrl, actualUrl); 586 assertEquals(webappUrl, actualUrl);
577 actualScope = webappPrefs.getString( 587 actualScope = webappPrefs.getString(
578 WebappDataStorage.KEY_SCOPE, WebappDataStorage.URL_INVALID); 588 WebappDataStorage.KEY_SCOPE, WebappDataStorage.URL_INVALID);
579 assertEquals(webappScope, actualScope); 589 assertEquals(webappScope, actualScope);
580 } 590 }
581 591
582 @Test 592 @Test
(...skipping 15 matching lines...) Expand all
598 final String test4Url = "https://www.google.com/drive/docs/recent/index. html"; 608 final String test4Url = "https://www.google.com/drive/docs/recent/index. html";
599 final String test5Url = "https://drive.google.com/docs/recent/trash"; 609 final String test5Url = "https://drive.google.com/docs/recent/trash";
600 final String test6Url = "https://maps.google.com/"; 610 final String test6Url = "https://maps.google.com/";
601 611
602 Intent shortcutIntent1 = createShortcutIntent(webapp1Url); 612 Intent shortcutIntent1 = createShortcutIntent(webapp1Url);
603 Intent shortcutIntent2 = createShortcutIntent(webapp2Url); 613 Intent shortcutIntent2 = createShortcutIntent(webapp2Url);
604 Intent shortcutIntent3 = createShortcutIntent(webapp3Url); 614 Intent shortcutIntent3 = createShortcutIntent(webapp3Url);
605 Intent shortcutIntent4 = createShortcutIntent(webapp4Url); 615 Intent shortcutIntent4 = createShortcutIntent(webapp4Url);
606 616
607 // Register the four web apps. 617 // Register the four web apps.
608 WebappRegistry.registerWebapp(Robolectric.application, "webapp1", 618 WebappRegistry.registerWebapp(RuntimeEnvironment.application, "webapp1",
609 new FetchStorageCallback(shortcutIntent1)); 619 new FetchStorageCallback(shortcutIntent1));
610 BackgroundShadowAsyncTask.runBackgroundTasks(); 620 BackgroundShadowAsyncTask.runBackgroundTasks();
611 Robolectric.runUiThreadTasks(); 621 ShadowLooper.runUiThreadTasks();
612 622
613 WebappRegistry.registerWebapp(Robolectric.application, "webapp2", 623 WebappRegistry.registerWebapp(RuntimeEnvironment.application, "webapp2",
614 new FetchStorageCallback(shortcutIntent2)); 624 new FetchStorageCallback(shortcutIntent2));
615 BackgroundShadowAsyncTask.runBackgroundTasks(); 625 BackgroundShadowAsyncTask.runBackgroundTasks();
616 Robolectric.runUiThreadTasks(); 626 ShadowLooper.runUiThreadTasks();
617 627
618 WebappRegistry.registerWebapp(Robolectric.application, "webapp3", 628 WebappRegistry.registerWebapp(RuntimeEnvironment.application, "webapp3",
619 new FetchStorageCallback(shortcutIntent3)); 629 new FetchStorageCallback(shortcutIntent3));
620 BackgroundShadowAsyncTask.runBackgroundTasks(); 630 BackgroundShadowAsyncTask.runBackgroundTasks();
621 Robolectric.runUiThreadTasks(); 631 ShadowLooper.runUiThreadTasks();
622 632
623 WebappRegistry.registerWebapp(Robolectric.application, "webapp4", 633 WebappRegistry.registerWebapp(RuntimeEnvironment.application, "webapp4",
624 new FetchStorageCallback(shortcutIntent4)); 634 new FetchStorageCallback(shortcutIntent4));
625 BackgroundShadowAsyncTask.runBackgroundTasks(); 635 BackgroundShadowAsyncTask.runBackgroundTasks();
626 Robolectric.runUiThreadTasks(); 636 ShadowLooper.runUiThreadTasks();
627 637
628 // test1Url should return webapp1. 638 // test1Url should return webapp1.
629 FetchStorageByUrlCallback callback = new FetchStorageByUrlCallback(webap p1Url, webapp1Url); 639 FetchStorageByUrlCallback callback = new FetchStorageByUrlCallback(webap p1Url, webapp1Url);
630 WebappRegistry.getWebappDataStorageForUrl(Robolectric.application, test1 Url, callback); 640 WebappRegistry.getWebappDataStorageForUrl(
641 RuntimeEnvironment.application, test1Url, callback);
631 BackgroundShadowAsyncTask.runBackgroundTasks(); 642 BackgroundShadowAsyncTask.runBackgroundTasks();
632 Robolectric.runUiThreadTasks(); 643 ShadowLooper.runUiThreadTasks();
633 assertTrue(callback.getCallbackCalled()); 644 assertTrue(callback.getCallbackCalled());
634 645
635 // test2Url should return webapp3. 646 // test2Url should return webapp3.
636 callback = new FetchStorageByUrlCallback(webapp3Url, webapp3Scope); 647 callback = new FetchStorageByUrlCallback(webapp3Url, webapp3Scope);
637 WebappRegistry.getWebappDataStorageForUrl(Robolectric.application, test2 Url, callback); 648 WebappRegistry.getWebappDataStorageForUrl(
649 RuntimeEnvironment.application, test2Url, callback);
638 BackgroundShadowAsyncTask.runBackgroundTasks(); 650 BackgroundShadowAsyncTask.runBackgroundTasks();
639 Robolectric.runUiThreadTasks(); 651 ShadowLooper.runUiThreadTasks();
640 assertTrue(callback.getCallbackCalled()); 652 assertTrue(callback.getCallbackCalled());
641 653
642 // test3Url should return webapp4. 654 // test3Url should return webapp4.
643 callback = new FetchStorageByUrlCallback(webapp4Url, webapp4Scope); 655 callback = new FetchStorageByUrlCallback(webapp4Url, webapp4Scope);
644 WebappRegistry.getWebappDataStorageForUrl(Robolectric.application, test3 Url, callback); 656 WebappRegistry.getWebappDataStorageForUrl(
657 RuntimeEnvironment.application, test3Url, callback);
645 BackgroundShadowAsyncTask.runBackgroundTasks(); 658 BackgroundShadowAsyncTask.runBackgroundTasks();
646 Robolectric.runUiThreadTasks(); 659 ShadowLooper.runUiThreadTasks();
647 assertTrue(callback.getCallbackCalled()); 660 assertTrue(callback.getCallbackCalled());
648 661
649 // test4Url should return webapp4. 662 // test4Url should return webapp4.
650 callback = new FetchStorageByUrlCallback(webapp4Url, webapp4Scope); 663 callback = new FetchStorageByUrlCallback(webapp4Url, webapp4Scope);
651 WebappRegistry.getWebappDataStorageForUrl(Robolectric.application, test4 Url, callback); 664 WebappRegistry.getWebappDataStorageForUrl(
665 RuntimeEnvironment.application, test4Url, callback);
652 BackgroundShadowAsyncTask.runBackgroundTasks(); 666 BackgroundShadowAsyncTask.runBackgroundTasks();
653 Robolectric.runUiThreadTasks(); 667 ShadowLooper.runUiThreadTasks();
654 assertTrue(callback.getCallbackCalled()); 668 assertTrue(callback.getCallbackCalled());
655 669
656 // test5Url should return webapp2. 670 // test5Url should return webapp2.
657 callback = new FetchStorageByUrlCallback(webapp2Url, webapp2Url); 671 callback = new FetchStorageByUrlCallback(webapp2Url, webapp2Url);
658 WebappRegistry.getWebappDataStorageForUrl(Robolectric.application, test5 Url, callback); 672 WebappRegistry.getWebappDataStorageForUrl(
673 RuntimeEnvironment.application, test5Url, callback);
659 BackgroundShadowAsyncTask.runBackgroundTasks(); 674 BackgroundShadowAsyncTask.runBackgroundTasks();
660 Robolectric.runUiThreadTasks(); 675 ShadowLooper.runUiThreadTasks();
661 assertTrue(callback.getCallbackCalled()); 676 assertTrue(callback.getCallbackCalled());
662 677
663 // test6Url doesn't correspond to a web app, so the storage returned is null. 678 // test6Url doesn't correspond to a web app, so the storage returned is null.
664 // This must use a member variable; local variables must be final or eff ectively final to be 679 // This must use a member variable; local variables must be final or eff ectively final to be
665 // accessible inside an inner class. 680 // accessible inside an inner class.
666 mCallbackCalled = false; 681 mCallbackCalled = false;
667 WebappRegistry.getWebappDataStorageForUrl(Robolectric.application, test6 Url, 682 WebappRegistry.getWebappDataStorageForUrl(RuntimeEnvironment.application , test6Url,
668 new WebappRegistry.FetchWebappDataStorageCallback() { 683 new WebappRegistry.FetchWebappDataStorageCallback() {
669 @Override 684 @Override
670 public void onWebappDataStorageRetrieved(WebappDataStorage s torage) { 685 public void onWebappDataStorageRetrieved(WebappDataStorage s torage) {
671 assertEquals(null, storage); 686 assertEquals(null, storage);
672 mCallbackCalled = true; 687 mCallbackCalled = true;
673 } 688 }
674 } 689 }
675 ); 690 );
676 BackgroundShadowAsyncTask.runBackgroundTasks(); 691 BackgroundShadowAsyncTask.runBackgroundTasks();
677 Robolectric.runUiThreadTasks(); 692 ShadowLooper.runUiThreadTasks();
678 assertTrue(mCallbackCalled); 693 assertTrue(mCallbackCalled);
679 } 694 }
680 695
681 private Set<String> addWebappsToRegistry(String... webapps) { 696 private Set<String> addWebappsToRegistry(String... webapps) {
682 final Set<String> expected = new HashSet<String>(Arrays.asList(webapps)) ; 697 final Set<String> expected = new HashSet<String>(Arrays.asList(webapps)) ;
683 mSharedPreferences.edit().putStringSet(WebappRegistry.KEY_WEBAPP_SET, ex pected).apply(); 698 mSharedPreferences.edit().putStringSet(WebappRegistry.KEY_WEBAPP_SET, ex pected).apply();
684 return expected; 699 return expected;
685 } 700 }
686 701
687 private Set<String> getRegisteredWebapps() { 702 private Set<String> getRegisteredWebapps() {
688 return mSharedPreferences.getStringSet( 703 return mSharedPreferences.getStringSet(
689 WebappRegistry.KEY_WEBAPP_SET, Collections.<String>emptySet()); 704 WebappRegistry.KEY_WEBAPP_SET, Collections.<String>emptySet());
690 } 705 }
691 706
692 private Intent createShortcutIntent(String url) { 707 private Intent createShortcutIntent(String url) {
693 return ShortcutHelper.createWebappShortcutIntent("id", "action", url, 708 return ShortcutHelper.createWebappShortcutIntent("id", "action", url,
694 ShortcutHelper.getScopeFromUrl(url), "name", "shortName", null, 709 ShortcutHelper.getScopeFromUrl(url), "name", "shortName", null,
695 ShortcutHelper.WEBAPP_SHORTCUT_VERSION, WebDisplayMode.Standalon e, 0, 0, 0, false); 710 ShortcutHelper.WEBAPP_SHORTCUT_VERSION, WebDisplayMode.Standalon e, 0, 0, 0, false);
696 } 711 }
697 712
698 private Intent createWebApkIntent(String webappId, String webApkPackage) { 713 private Intent createWebApkIntent(String webappId, String webApkPackage) {
699 Intent intent = new Intent(); 714 Intent intent = new Intent();
700 intent.putExtra(ShortcutHelper.EXTRA_ID, webappId) 715 intent.putExtra(ShortcutHelper.EXTRA_ID, webappId)
701 .putExtra(ShortcutHelper.EXTRA_URL, "https://foo.com") 716 .putExtra(ShortcutHelper.EXTRA_URL, "https://foo.com")
702 .putExtra(ShortcutHelper.EXTRA_WEBAPK_PACKAGE_NAME, webApkPackage) ; 717 .putExtra(ShortcutHelper.EXTRA_WEBAPK_PACKAGE_NAME, webApkPackage) ;
703 return intent; 718 return intent;
704 } 719 }
705 } 720 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698