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 35ed8b298510e62f14595aabb11b78a07e3cb4a1..2b83f9a2d1f2ce6f76aa48fd35ce776e60182594 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 |
@@ -15,6 +15,7 @@ import org.chromium.chrome.browser.preferences.ButtonPreference; |
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.WebappDataStorage; |
import org.chromium.chrome.browser.webapps.WebappRegistry; |
import org.chromium.chrome.test.ChromeActivityTestCaseBase; |
import org.chromium.content.browser.test.util.Criteria; |
@@ -47,7 +48,7 @@ public class ClearBrowsingDataPreferencesTest |
*/ |
@MediumTest |
public void testClearingSiteDataClearsWebapps() throws Exception { |
- WebappRegistry.registerWebapp(getActivity(), "first"); |
+ WebappRegistry.registerWebapp(getActivity(), "first", "https://www.google.com"); |
WebappRegistry.getRegisteredWebappIds(getActivity(), new WebappRegistry.FetchCallback() { |
@Override |
public void onWebappIdsRetrieved(Set<String> ids) { |
@@ -103,6 +104,105 @@ public class ClearBrowsingDataPreferencesTest |
} |
/** |
+ * Tests that web app scopes and last launch times are cleared when the "history" option is |
+ * selected. However, the web app is not removed from the registry. |
+ */ |
+ @MediumTest |
+ public void testClearingHistoryClearsWebappScopesAndLaunchTimes() throws Exception { |
+ WebappRegistry.registerWebapp(getActivity(), "first", "https://www.google.com"); |
+ WebappRegistry.getRegisteredWebappIds(getActivity(), new WebappRegistry.FetchCallback() { |
+ @Override |
+ public void onWebappIdsRetrieved(Set<String> ids) { |
+ assertEquals(new HashSet<String>(Arrays.asList("first")), ids); |
+ mCallbackCalled = true; |
+ } |
+ }); |
+ CriteriaHelper.pollUiThread(new Criteria() { |
+ @Override |
+ public boolean isSatisfied() { |
+ return mCallbackCalled; |
+ } |
+ }); |
+ mCallbackCalled = false; |
+ |
+ setDataTypesToClear(Arrays.asList(DialogOption.CLEAR_HISTORY)); |
+ final Preferences preferences = |
+ startPreferences(ClearBrowsingDataPreferences.class.getName()); |
+ |
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
+ @Override |
+ public void run() { |
+ ClearBrowsingDataPreferences fragment = |
+ (ClearBrowsingDataPreferences) preferences.getFragmentForTest(); |
+ PreferenceScreen screen = fragment.getPreferenceScreen(); |
+ ButtonPreference clearButton = (ButtonPreference) screen.findPreference( |
+ ClearBrowsingDataPreferences.PREF_CLEAR_BUTTON); |
+ clearButton.getOnPreferenceClickListener().onPreferenceClick(clearButton); |
+ } |
+ }); |
+ CriteriaHelper.pollUiThread(new Criteria() { |
+ @Override |
+ public boolean isSatisfied() { |
+ ClearBrowsingDataPreferences fragment = |
+ (ClearBrowsingDataPreferences) preferences.getFragmentForTest(); |
+ return fragment.getProgressDialog() == null; |
+ } |
+ }); |
+ |
+ // The web app should still exist in the registry. |
+ WebappRegistry.getRegisteredWebappIds(getActivity(), new WebappRegistry.FetchCallback() { |
+ @Override |
+ public void onWebappIdsRetrieved(Set<String> ids) { |
+ assertEquals(new HashSet<String>(Arrays.asList("first")), ids); |
+ mCallbackCalled = true; |
+ } |
+ }); |
+ CriteriaHelper.pollUiThread(new Criteria() { |
+ @Override |
+ public boolean isSatisfied() { |
+ return mCallbackCalled; |
+ } |
+ }); |
+ mCallbackCalled = false; |
+ |
+ // Scope should be empty. |
+ WebappDataStorage.getScope(getActivity(), "first", |
+ new WebappDataStorage.FetchCallback<String>() { |
+ @Override |
+ public void onDataRetrieved(String readObject) { |
+ assertEquals(readObject, ""); |
+ mCallbackCalled = true; |
+ } |
+ } |
+ ); |
+ CriteriaHelper.pollUiThread(new Criteria() { |
+ @Override |
+ public boolean isSatisfied() { |
+ return mCallbackCalled; |
+ } |
+ }); |
+ mCallbackCalled = false; |
+ |
+ // The last used time should be 0. |
+ WebappDataStorage.getLastUsedTime(getActivity(), "first", |
+ new WebappDataStorage.FetchCallback<Long>() { |
+ @Override |
+ public void onDataRetrieved(Long readObject) { |
+ long lastUsed = readObject; |
+ assertEquals(lastUsed, 0); |
+ mCallbackCalled = true; |
+ } |
+ } |
+ ); |
+ CriteriaHelper.pollUiThread(new Criteria() { |
+ @Override |
+ public boolean isSatisfied() { |
+ return mCallbackCalled; |
+ } |
+ }); |
+ } |
+ |
+ /** |
* Tests that a fragment with all options preselected indeed has all checkboxes checked |
* on startup, and that deletion with all checkboxes checked completes successfully. |
*/ |