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

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataPreferencesTest.java

Issue 1749603002: Store URLs in WebappDataStorage, and purge them when history is cleared. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 9 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 side-by-side diff with in-line comments
Download patch
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.
*/

Powered by Google App Engine
This is Rietveld 408576698