Chromium Code Reviews| Index: chrome/android/javatests/src/org/chromium/chrome/browser/preferences/website/ManageSpaceActivityTest.java |
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/website/ManageSpaceActivityTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/website/ManageSpaceActivityTest.java |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..c483e3d295e93367c4a14d8435af567d1dfc71a9 |
| --- /dev/null |
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/website/ManageSpaceActivityTest.java |
| @@ -0,0 +1,137 @@ |
| +// Copyright 2016 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.website; |
| + |
| +import android.annotation.TargetApi; |
| +import android.content.Intent; |
| +import android.os.Build; |
| +import android.os.Environment; |
| +import android.support.v7.app.AlertDialog; |
| +import android.test.suitebuilder.annotation.MediumTest; |
| +import android.test.suitebuilder.annotation.SmallTest; |
| + |
| +import org.chromium.base.ThreadUtils; |
| +import org.chromium.base.test.util.CommandLineFlags; |
| +import org.chromium.chrome.browser.ChromeActivity; |
| +import org.chromium.chrome.browser.preferences.PrefServiceBridge; |
| +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.net.GURLUtils; |
| +import org.chromium.net.test.EmbeddedTestServer; |
| + |
| +/** |
| + * Tests for everything under Settings > Site Settings. |
|
Theresa
2016/05/13 06:02:31
Comment needs to be updated.
dmurph
2016/05/13 23:46:24
Done.
|
| + */ |
| +@TargetApi(Build.VERSION_CODES.KITKAT) |
| +@CommandLineFlags.Add({"enable-features=ImportantSitesInCBD", "enable-site-engagement"}) |
|
Theresa
2016/05/13 06:02:31
Do these flags actually need to be set for this te
dmurph
2016/05/13 23:46:24
Good catch, no just the second one.
Theresa
2016/05/16 22:37:08
If site engagement isn't enabled, does the ManageS
|
| +public class ManageSpaceActivityTest extends ChromeActivityTestCaseBase<ChromeActivity> { |
| + private EmbeddedTestServer mTestServer; |
| + |
| + public ManageSpaceActivityTest() { |
| + super(ChromeActivity.class); |
| + } |
| + |
| + @Override |
| + protected void setUp() throws Exception { |
| + super.setUp(); |
| + mTestServer = EmbeddedTestServer.createAndStartFileServer( |
| + getInstrumentation().getContext(), Environment.getExternalStorageDirectory()); |
| + } |
| + |
| + @Override |
| + protected void tearDown() throws Exception { |
| + mTestServer.stopAndDestroyServer(); |
| + super.tearDown(); |
| + } |
| + |
| + @Override |
| + public void startMainActivity() throws InterruptedException { |
| + startMainActivityOnBlankPage(); |
| + } |
| + |
| + private ManageSpaceActivity startManageSpaceActivity() { |
| + Intent intent = |
| + new Intent(getInstrumentation().getTargetContext(), ManageSpaceActivity.class); |
| + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); |
| + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); |
| + return (ManageSpaceActivity) getInstrumentation().startActivitySync(intent); |
| + } |
| + |
| + public Criteria getIsClearButtonEnabledCriteria(final ManageSpaceActivity activity) { |
| + return new Criteria() { |
| + @Override |
| + public boolean isSatisfied() { |
| + return activity.getClearUnimportantButton().isEnabled(); |
| + } |
| + }; |
| + } |
| + |
| + public Runnable getClickClearRunnable(final ManageSpaceActivity activity) { |
| + return new Runnable() { |
| + @Override |
| + public void run() { |
| + activity.onClick(activity.getClearUnimportantButton()); |
| + } |
| + }; |
| + } |
| + |
| + public Criteria getIsDialogShownCriteria(final ManageSpaceActivity activity) { |
| + return new Criteria() { |
| + @Override |
| + public boolean isSatisfied() { |
| + return activity.getUnimportantConfirmDialog().isShowing(); |
| + } |
| + }; |
| + } |
| + |
| + public Runnable getPressClearRunnable(final AlertDialog dialog) { |
| + return new Runnable() { |
| + @Override |
| + public void run() { |
| + dialog.getButton(AlertDialog.BUTTON_POSITIVE).performClick(); |
| + } |
| + }; |
| + } |
| + |
| + @SmallTest |
| + public void testLaunchActivity() { |
| + startManageSpaceActivity(); |
| + } |
| + |
| + @MediumTest |
| + public void testClearUnimportantOnly() throws Exception { |
| + final String cookies_url = |
| + mTestServer.getURL("/chrome/test/data/android/localstorage.html"); |
| + final String server_origin = GURLUtils.getOrigin(cookies_url); |
| + |
| + loadUrl(cookies_url + "#clear"); |
| + assertEquals("null", runJavaScriptCodeInCurrentTab("getStorage()")); |
| + runJavaScriptCodeInCurrentTab("setStorage()"); |
| + assertEquals("\"Bar\"", runJavaScriptCodeInCurrentTab("getStorage()")); |
| + loadUrl("about:blank"); |
| + |
| + // Now we set the origin as important, and check that we don't clear it. |
| + ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
| + @Override |
| + public void run() { |
| + PrefServiceBridge.markOriginAsImportant(server_origin); |
| + } |
| + }); |
| + |
| + ManageSpaceActivity manageSpaceActivity = startManageSpaceActivity(); |
| + CriteriaHelper.pollUiThread(getIsClearButtonEnabledCriteria(manageSpaceActivity)); |
| + ThreadUtils.runOnUiThreadBlocking(getClickClearRunnable(manageSpaceActivity)); |
| + CriteriaHelper.pollUiThread(getIsDialogShownCriteria(manageSpaceActivity)); |
| + ThreadUtils.runOnUiThreadBlocking( |
| + getPressClearRunnable(manageSpaceActivity.getUnimportantConfirmDialog())); |
| + CriteriaHelper.pollUiThread( |
| + getIsClearButtonEnabledCriteria(manageSpaceActivity), 5000, 500); |
| + manageSpaceActivity.finish(); |
| + |
| + loadUrl(cookies_url); |
| + assertEquals("\"Bar\"", runJavaScriptCodeInCurrentTab("getStorage()")); |
| + } |
|
Theresa
2016/05/13 06:02:31
I think it'd also be good to test the other button
dmurph
2016/05/13 23:46:24
Not sure how I'll test the clear all app data butt
|
| +} |