Index: chrome/android/javatests/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataPreferencesTest.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataPreferencesTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataPreferencesTest.java |
index b8837d5dda78216c0f5f77e4e5463145f414ad4c..e6b92c24f41c5ad42fb0b1c7f1d7202fb3c8f26b 100644 |
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataPreferencesTest.java |
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataPreferencesTest.java |
@@ -27,7 +27,6 @@ |
import org.chromium.chrome.browser.preferences.PrefServiceBridge; |
import org.chromium.chrome.browser.preferences.Preferences; |
import org.chromium.chrome.browser.preferences.privacy.ClearBrowsingDataPreferences.DialogOption; |
-import org.chromium.chrome.browser.webapps.TestFetchStorageCallback; |
import org.chromium.chrome.browser.webapps.WebappDataStorage; |
import org.chromium.chrome.browser.webapps.WebappRegistry; |
import org.chromium.chrome.test.ChromeActivityTestCaseBase; |
@@ -40,6 +39,7 @@ |
import java.util.Arrays; |
import java.util.HashSet; |
import java.util.List; |
+import java.util.Set; |
/** |
* Integration tests for ClearBrowsingDataPreferences. |
@@ -48,6 +48,22 @@ |
public class ClearBrowsingDataPreferencesTest |
extends ChromeActivityTestCaseBase<ChromeActivity> { |
private EmbeddedTestServer mTestServer; |
+ private boolean mCallbackCalled; |
+ |
+ private class CallbackCriteria extends Criteria { |
+ public CallbackCriteria() { |
+ mCallbackCalled = false; |
+ } |
+ |
+ @Override |
+ public boolean isSatisfied() { |
+ if (mCallbackCalled) { |
+ mCallbackCalled = false; |
+ return true; |
+ } |
+ return false; |
+ } |
+ } |
@Override |
protected void setUp() throws Exception { |
@@ -88,11 +104,15 @@ |
*/ |
@MediumTest |
public void testClearingSiteDataClearsWebapps() throws Exception { |
- TestFetchStorageCallback callback = new TestFetchStorageCallback(); |
- WebappRegistry.getInstance().register("first", callback); |
- callback.waitForCallback(0); |
- assertEquals(new HashSet<String>(Arrays.asList("first")), |
- WebappRegistry.getRegisteredWebappIdsForTesting()); |
+ WebappRegistry.registerWebapp("first", null); |
+ WebappRegistry.getRegisteredWebappIds(new WebappRegistry.FetchCallback() { |
+ @Override |
+ public void onWebappIdsRetrieved(Set<String> ids) { |
+ assertEquals(new HashSet<String>(Arrays.asList("first")), ids); |
+ mCallbackCalled = true; |
+ } |
+ }); |
+ CriteriaHelper.pollUiThread(new CallbackCriteria()); |
setDataTypesToClear(Arrays.asList(DialogOption.CLEAR_COOKIES_AND_SITE_DATA)); |
final ClearBrowsingDataPreferences preferences = |
@@ -111,7 +131,14 @@ |
}); |
waitForProgressToComplete(preferences); |
- assertTrue(WebappRegistry.getRegisteredWebappIdsForTesting().isEmpty()); |
+ WebappRegistry.getRegisteredWebappIds(new WebappRegistry.FetchCallback() { |
+ @Override |
+ public void onWebappIdsRetrieved(Set<String> ids) { |
+ assertTrue(ids.isEmpty()); |
+ mCallbackCalled = true; |
+ } |
+ }); |
+ CriteriaHelper.pollUiThread(new CallbackCriteria()); |
} |
/** |
@@ -128,13 +155,23 @@ |
}; |
final Intent shortcutIntent = shortcutIntentTask.execute().get(); |
- TestFetchStorageCallback callback = new TestFetchStorageCallback(); |
- WebappRegistry.getInstance().register("first", callback); |
- callback.waitForCallback(0); |
- callback.getStorage().updateFromShortcutIntent(shortcutIntent); |
- |
- assertEquals(new HashSet<String>(Arrays.asList("first")), |
- WebappRegistry.getRegisteredWebappIdsForTesting()); |
+ WebappRegistry.registerWebapp("first", new WebappRegistry.FetchWebappDataStorageCallback() { |
+ @Override |
+ public void onWebappDataStorageRetrieved(WebappDataStorage storage) { |
+ storage.updateFromShortcutIntent(shortcutIntent); |
+ mCallbackCalled = true; |
+ } |
+ }); |
+ CriteriaHelper.pollUiThread(new CallbackCriteria()); |
+ |
+ WebappRegistry.getRegisteredWebappIds(new WebappRegistry.FetchCallback() { |
+ @Override |
+ public void onWebappIdsRetrieved(Set<String> ids) { |
+ assertEquals(new HashSet<String>(Arrays.asList("first")), ids); |
+ mCallbackCalled = true; |
+ } |
+ }); |
+ CriteriaHelper.pollUiThread(new CallbackCriteria()); |
setDataTypesToClear(Arrays.asList(DialogOption.CLEAR_HISTORY)); |
final ClearBrowsingDataPreferences preferences = |
@@ -153,14 +190,45 @@ |
}); |
waitForProgressToComplete(preferences); |
- assertEquals(new HashSet<String>(Arrays.asList("first")), |
- WebappRegistry.getRegisteredWebappIdsForTesting()); |
- |
- // URL and scope should be empty, and last used time should be 0. |
- WebappDataStorage storage = WebappRegistry.getInstance().getWebappDataStorage("first"); |
- assertEquals("", storage.getScope()); |
- assertEquals("", storage.getUrl()); |
- assertEquals(0, storage.getLastUsedTime()); |
+ // The web app should still exist in the registry. |
+ WebappRegistry.getRegisteredWebappIds(new WebappRegistry.FetchCallback() { |
+ @Override |
+ public void onWebappIdsRetrieved(Set<String> ids) { |
+ assertEquals(new HashSet<String>(Arrays.asList("first")), ids); |
+ mCallbackCalled = true; |
+ } |
+ }); |
+ CriteriaHelper.pollUiThread(new CallbackCriteria()); |
+ |
+ // URL and scope should be empty. |
+ WebappDataStorage.getScope("first", new WebappDataStorage.FetchCallback<String>() { |
+ @Override |
+ public void onDataRetrieved(String readObject) { |
+ assertEquals(readObject, ""); |
+ mCallbackCalled = true; |
+ } |
+ }); |
+ CriteriaHelper.pollUiThread(new CallbackCriteria()); |
+ |
+ WebappDataStorage.getUrl("first", new WebappDataStorage.FetchCallback<String>() { |
+ @Override |
+ public void onDataRetrieved(String readObject) { |
+ assertEquals(readObject, ""); |
+ mCallbackCalled = true; |
+ } |
+ }); |
+ CriteriaHelper.pollUiThread(new CallbackCriteria()); |
+ |
+ // The last used time should be 0. |
+ WebappDataStorage.getLastUsedTime("first", new WebappDataStorage.FetchCallback<Long>() { |
+ @Override |
+ public void onDataRetrieved(Long readObject) { |
+ long lastUsed = readObject; |
+ assertEquals(lastUsed, 0); |
+ mCallbackCalled = true; |
+ } |
+ }); |
+ CriteriaHelper.pollUiThread(new CallbackCriteria()); |
} |
/** |