Chromium Code Reviews| 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 a9b26f69d9e7d726a2e4c40fcacf460587d8a8a1..e943998d0b4fac97e4c0124b8f93941c833a463d 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 |
| @@ -13,6 +13,7 @@ import org.chromium.base.ThreadUtils; |
| import org.chromium.chrome.browser.ChromeActivity; |
| import org.chromium.chrome.browser.preferences.ButtonPreference; |
| import org.chromium.chrome.browser.preferences.Preferences; |
| +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; |
| @@ -45,7 +46,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) { |
| @@ -100,6 +101,102 @@ public class ClearBrowsingDataPreferencesTest |
| } |
| /** |
| + * Tests that web app URLs and last launch times are cleared when the "history" option is |
| + * selected. However, the webapp is not removed from the registry. |
| + */ |
| + @MediumTest |
| + public void testClearingHistoryClearsWebappURLsAndLaunchTimes() 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.pollForUIThreadCriteria(new Criteria() { |
| + @Override |
| + public boolean isSatisfied() { |
| + return mCallbackCalled; |
| + } |
| + }); |
| + mCallbackCalled = false; |
| + |
| + final Preferences preferences = |
| + startPreferences(HistoryClearBrowsingDataPreferences.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.pollForUIThreadCriteria(new Criteria() { |
| + @Override |
| + public boolean isSatisfied() { |
| + ClearBrowsingDataPreferences fragment = |
| + (ClearBrowsingDataPreferences) preferences.getFragmentForTest(); |
| + return fragment.getProgressDialog() == null; |
| + } |
| + }); |
| + |
| + // The webapp should still exist in the registry. |
|
gone
2016/03/08 23:03:52
web app?
dominickn
2016/03/09 08:18:32
Done.
|
| + WebappRegistry.getRegisteredWebappIds(getActivity(), new WebappRegistry.FetchCallback() { |
| + @Override |
| + public void onWebappIdsRetrieved(Set<String> ids) { |
| + assertEquals(new HashSet<String>(Arrays.asList("first")), ids); |
| + mCallbackCalled = true; |
| + } |
| + }); |
| + CriteriaHelper.pollForUIThreadCriteria(new Criteria() { |
| + @Override |
| + public boolean isSatisfied() { |
| + return mCallbackCalled; |
| + } |
| + }); |
| + mCallbackCalled = false; |
| + |
| + // URL should be empty. |
| + WebappDataStorage.getOriginUrl(getActivity(), "first", |
|
gone
2016/03/08 23:03:52
Indenting here seems like it's kind of all over th
dominickn
2016/03/09 08:18:32
Indenting Java I don't know how
gone
2016/03/10 23:27:21
I want to say it's kind of subjective in these cas
|
| + new WebappDataStorage.FetchCallback<String>() { |
| + @Override |
| + public void onDataRetrieved(String readObject) { |
| + assertEquals(readObject, ""); |
| + mCallbackCalled = true; |
| + } |
| + }); |
| + CriteriaHelper.pollForUIThreadCriteria(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.pollForUIThreadCriteria(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. |
| */ |
| @@ -156,6 +253,20 @@ public class ClearBrowsingDataPreferencesTest |
| } |
| /** |
| + * A testing version of ClearBrowsingDataPreferences that preselects the history option. |
| + * Must be public, as ChromeActivityTestCaseBase.startPreferences references it by name. |
| + */ |
| + public static class HistoryClearBrowsingDataPreferences extends ClearBrowsingDataPreferences { |
| + private static final EnumSet<DialogOption> DEFAULT_OPTIONS = EnumSet.of( |
| + ClearBrowsingDataPreferences.DialogOption.CLEAR_HISTORY); |
| + |
| + @Override |
| + protected boolean isOptionSelectedByDefault(DialogOption option) { |
| + return DEFAULT_OPTIONS.contains(option); |
| + } |
| + } |
| + |
| + /** |
| * A testing version of ClearBrowsingDataPreferences that includes all possible options, |
| * and preselects all of them. Must be public, as ChromeActivityTestCaseBase.startPreferences |
| * references it by name. |