| 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());
|
| }
|
|
|
| /**
|
|
|