| 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.
|
| */
|
|
|