Chromium Code Reviews| Index: chrome/android/javatests/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataDialogFragmentTest.java |
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataDialogFragmentTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataDialogFragmentTest.java |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..bbff8c8565d085f6f54a6b1c3f5172b81ef9b62b |
| --- /dev/null |
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataDialogFragmentTest.java |
| @@ -0,0 +1,107 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +package org.chromium.chrome.browser.preferences.privacy; |
| + |
| +import android.app.Dialog; |
| +import android.support.v7.app.AlertDialog; |
| +import android.test.suitebuilder.annotation.MediumTest; |
| +import android.widget.Button; |
| + |
| +import org.chromium.base.ThreadUtils; |
| +import org.chromium.chrome.browser.ChromeActivity; |
| +import org.chromium.chrome.browser.webapps.WebappRegistry; |
| +import org.chromium.chrome.test.ChromeActivityTestCaseBase; |
| +import org.chromium.content.browser.test.util.Criteria; |
| +import org.chromium.content.browser.test.util.CriteriaHelper; |
| +import org.chromium.content.browser.test.util.TestTouchUtils; |
| + |
| +import java.util.EnumSet; |
| +import java.util.Set; |
| +import java.util.concurrent.Callable; |
| + |
| +/** |
| + * Peforms integration tests with ClearBrowsingDataDialogFragment. |
| + */ |
| +public class ClearBrowsingDataDialogFragmentTest |
| + extends ChromeActivityTestCaseBase<ChromeActivity> { |
| + |
| + TestClearDataDialogFragment mFragment; |
|
gone
2015/09/08 20:38:13
why isn't this private?
Lalit Maganti
2015/09/09 15:27:46
My mistake. Done.
|
| + private boolean mCallbackCalled; |
| + |
| + public ClearBrowsingDataDialogFragmentTest() { |
| + super(ChromeActivity.class); |
| + |
|
gone
2015/09/08 20:38:13
nit: delete the newline.
Lalit Maganti
2015/09/09 15:27:46
Done.
|
| + mCallbackCalled = false; |
| + } |
| + |
| + @Override |
| + public void startMainActivity() throws InterruptedException { |
| + startMainActivityOnBlankPage(); |
| + } |
| + |
| + @MediumTest |
| + public void testClearingSiteDataClearsWebapps() throws Exception { |
| + mFragment = new TestClearDataDialogFragment(EnumSet.of( |
| + ClearBrowsingDataDialogFragment.DialogOption.CLEAR_COOKIES_AND_SITE_DATA)); |
|
gone
2015/09/08 20:38:13
nit: indentation is wrong.
Lalit Maganti
2015/09/09 15:27:46
Done.
|
| + WebappRegistry.registerWebapp(getActivity(), "first"); |
| + |
| + ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
| + @Override |
| + public void run() { |
| + mFragment.show(getActivity().getFragmentManager(), |
| + ClearBrowsingDataDialogFragment.FRAGMENT_TAG); |
| + } |
| + }); |
| + assertTrue(CriteriaHelper.pollForUIThreadCriteria(new Criteria() { |
| + @Override |
| + public boolean isSatisfied() { |
| + return mFragment.getDialog() != null; |
| + } |
| + })); |
| + |
| + Button clearButton = ThreadUtils.runOnUiThreadBlocking(new Callable<Button>() { |
|
gone
2015/09/08 20:38:13
If you're already going through the trouble of run
Lalit Maganti
2015/09/09 15:27:46
Done.
|
| + @Override |
| + public Button call() { |
| + Dialog dialog = mFragment.getDialog(); |
| + return ((AlertDialog) dialog).getButton(AlertDialog.BUTTON_POSITIVE); |
| + } |
| + }); |
| + assertNotNull(clearButton); |
| + TestTouchUtils.performClickOnMainSync(getInstrumentation(), clearButton); |
| + |
| + assertTrue(CriteriaHelper.pollForUIThreadCriteria(new Criteria() { |
| + @Override |
| + public boolean isSatisfied() { |
| + return mFragment.getProgressDialog() == null; |
| + } |
| + })); |
| + WebappRegistry.getRegisteredWebappIds(getActivity(), new WebappRegistry.FetchCallback() { |
| + @Override |
| + public void onWebappIdsRetrieved(Set<String> ids) { |
| + assertTrue(ids.isEmpty()); |
| + mCallbackCalled = true; |
| + } |
| + }); |
| + assertTrue(CriteriaHelper.pollForUIThreadCriteria(new Criteria() { |
| + @Override |
| + public boolean isSatisfied() { |
| + return mCallbackCalled; |
| + } |
| + })); |
| + } |
| + |
| + private static class TestClearDataDialogFragment extends ClearBrowsingDataDialogFragment { |
| + private final EnumSet<DialogOption> mDefaultOptions; |
| + |
| + public TestClearDataDialogFragment(EnumSet<DialogOption> defaultOptions) { |
| + mDefaultOptions = defaultOptions; |
| + } |
| + |
| + @Override |
| + protected EnumSet<DialogOption> getDefaultDialogOptionsSelections() { |
| + return mDefaultOptions; |
| + } |
| + } |
| +} |