Index: chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappRegistryTest.java |
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappRegistryTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappRegistryTest.java |
index 2d07c7afc6018b61bf11668a17315ad1f00fa8a9..f7bbfb6417c2d962528310340995a8e5d560ada2 100644 |
--- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappRegistryTest.java |
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebappRegistryTest.java |
@@ -63,7 +63,7 @@ public class WebappRegistryTest { |
@Test |
@Feature({"Webapp"}) |
public void testWebappRegistrationAddsToSharedPrefs() throws Exception { |
- WebappRegistry.registerWebapp(Robolectric.application, "test"); |
+ WebappRegistry.registerWebapp(Robolectric.application, "test", "https://www.google.com"); |
BackgroundShadowAsyncTask.runBackgroundTasks(); |
Set<String> actual = mSharedPreferences.getStringSet( |
@@ -74,9 +74,11 @@ public class WebappRegistryTest { |
@Test |
@Feature({"Webapp"}) |
- public void testWebappRegistrationUpdatesLastUsed() throws Exception { |
+ public void testWebappRegistrationUpdatesLastUsedAndOrigin() throws Exception { |
long before = System.currentTimeMillis(); |
- WebappRegistry.registerWebapp(Robolectric.application, "test"); |
+ final String origin = "http://drive.google.com"; |
+ |
+ WebappRegistry.registerWebapp(Robolectric.application, "test", origin); |
BackgroundShadowAsyncTask.runBackgroundTasks(); |
long after = System.currentTimeMillis(); |
@@ -84,7 +86,10 @@ public class WebappRegistryTest { |
WebappDataStorage.SHARED_PREFS_FILE_PREFIX + "test", Context.MODE_PRIVATE); |
long actual = webAppPrefs.getLong(WebappDataStorage.KEY_LAST_USED, |
WebappDataStorage.INVALID_LAST_USED); |
+ String webAppOrigin = webAppPrefs.getString(WebappDataStorage.KEY_ORIGIN_URL, |
+ WebappDataStorage.INVALID_ORIGIN_URL); |
assertTrue("Timestamp is out of range", before <= actual && actual <= after); |
+ assertEquals(origin, webAppOrigin); |
} |
@Test |
@@ -125,7 +130,7 @@ public class WebappRegistryTest { |
assertTrue(mCallbackCalled); |
mCallbackCalled = false; |
- WebappRegistry.registerWebapp(Robolectric.application, "second"); |
+ WebappRegistry.registerWebapp(Robolectric.application, "second", "https://www.google.com"); |
BackgroundShadowAsyncTask.runBackgroundTasks(); |
// A copy of the expected set needs to be made as the SharedPreferences is using the copy |
@@ -284,6 +289,90 @@ public class WebappRegistryTest { |
assertEquals(currentTime, lastCleanup); |
} |
+ @Test |
+ @Feature({"Webapp"}) |
+ public void testClearWebappHistoryRunsCallback() throws Exception { |
+ WebappRegistry.clearWebappHistory(Robolectric.application, new Runnable() { |
+ @Override |
+ public void run() { |
+ mCallbackCalled = true; |
+ } |
+ }); |
+ BackgroundShadowAsyncTask.runBackgroundTasks(); |
+ Robolectric.runUiThreadTasks(); |
+ |
+ assertTrue(mCallbackCalled); |
+ } |
+ |
+ @Test |
+ @Feature({"Webapp"}) |
+ public void testClearWebappHistory() throws Exception { |
+ final String webappOrigin1 = "https://www.google.com"; |
+ final String webappOrigin2 = "https://drive.google.com"; |
+ WebappRegistry.registerWebapp(Robolectric.application, "webapp1", webappOrigin1); |
+ WebappRegistry.registerWebapp(Robolectric.application, "webapp2", webappOrigin2); |
+ BackgroundShadowAsyncTask.runBackgroundTasks(); |
+ |
+ SharedPreferences webapp1Prefs = Robolectric.application.getSharedPreferences( |
+ WebappDataStorage.SHARED_PREFS_FILE_PREFIX + "webapp1", Context.MODE_PRIVATE); |
+ SharedPreferences webapp2Prefs = Robolectric.application.getSharedPreferences( |
+ WebappDataStorage.SHARED_PREFS_FILE_PREFIX + "webapp2", Context.MODE_PRIVATE); |
+ |
+ WebappRegistry.clearWebappHistory(Robolectric.application, null); |
+ BackgroundShadowAsyncTask.runBackgroundTasks(); |
+ |
+ Set<String> actual = mSharedPreferences.getStringSet( |
+ WebappRegistry.KEY_WEBAPP_SET, Collections.<String>emptySet()); |
+ assertEquals(2, actual.size()); |
+ assertTrue(actual.contains("webapp1")); |
gone
2016/03/08 23:03:52
Should this check for equality with TextUtils.equa
dominickn
2016/03/09 08:18:33
I just followed what was already in this test - ha
gone
2016/03/10 23:27:21
Acknowledged.
|
+ assertTrue(actual.contains("webapp2")); |
+ |
+ // Verify that the last used time for both web apps is WebappDataStorage.NULL_LAST_USED. |
+ long actualLastUsed = webapp1Prefs.getLong( |
+ WebappDataStorage.KEY_LAST_USED, WebappDataStorage.NULL_LAST_USED); |
+ assertEquals(WebappDataStorage.NULL_LAST_USED, actualLastUsed); |
+ actualLastUsed = webapp2Prefs.getLong( |
+ WebappDataStorage.KEY_LAST_USED, WebappDataStorage.NULL_LAST_USED); |
+ assertEquals(WebappDataStorage.NULL_LAST_USED, actualLastUsed); |
+ |
+ // Verify that the origin URL for both web apps is WebappDataStorage.INVALID_ORIGIN_URL. |
+ String actualOriginUrl = webapp1Prefs.getString( |
+ WebappDataStorage.KEY_ORIGIN_URL, WebappDataStorage.INVALID_ORIGIN_URL); |
+ assertEquals(WebappDataStorage.INVALID_ORIGIN_URL, actualOriginUrl); |
+ actualOriginUrl = webapp2Prefs.getString( |
+ WebappDataStorage.KEY_ORIGIN_URL, WebappDataStorage.INVALID_ORIGIN_URL); |
+ assertEquals(WebappDataStorage.INVALID_ORIGIN_URL, actualOriginUrl); |
+ } |
+ |
+ @Test |
+ @Feature({"Webapp"}) |
+ public void testOpenAfterClearWebappHistory() throws Exception { |
+ final String webappOrigin = "https://www.google.com"; |
+ WebappRegistry.registerWebapp(Robolectric.application, "webapp", webappOrigin); |
+ BackgroundShadowAsyncTask.runBackgroundTasks(); |
+ |
+ SharedPreferences webappPrefs = Robolectric.application.getSharedPreferences( |
+ WebappDataStorage.SHARED_PREFS_FILE_PREFIX + "webapp", Context.MODE_PRIVATE); |
+ |
+ WebappRegistry.clearWebappHistory(Robolectric.application, null); |
+ BackgroundShadowAsyncTask.runBackgroundTasks(); |
+ |
+ // Open the webapp up and set the origin. |
+ WebappDataStorage.open(Robolectric.application, "webapp"); |
+ WebappDataStorage.updateOriginUrl(Robolectric.application, "webapp", webappOrigin); |
+ BackgroundShadowAsyncTask.runBackgroundTasks(); |
+ |
+ // Verify that the last used time is valid and the origin URL is updated. |
+ long actualLastUsed = webappPrefs.getLong( |
+ WebappDataStorage.KEY_LAST_USED, WebappDataStorage.INVALID_LAST_USED); |
+ assertTrue(WebappDataStorage.INVALID_LAST_USED != actualLastUsed); |
+ assertTrue(WebappDataStorage.NULL_LAST_USED != actualLastUsed); |
+ String actualOriginUrl = webappPrefs.getString( |
+ WebappDataStorage.KEY_ORIGIN_URL, WebappDataStorage.INVALID_ORIGIN_URL); |
+ assertEquals(webappOrigin, actualOriginUrl); |
+ } |
+ |
+ |
private Set<String> addWebappsToRegistry(String... webapps) { |
final Set<String> expected = new HashSet<String>(Arrays.asList(webapps)); |
mSharedPreferences.edit() |
@@ -296,4 +385,4 @@ public class WebappRegistryTest { |
return mSharedPreferences.getStringSet( |
WebappRegistry.KEY_WEBAPP_SET, Collections.<String>emptySet()); |
} |
-} |
+} |