| Index: chrome/android/javatests/src/org/chromium/chrome/browser/infobar/PermissionUpdateInfobarTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/infobar/PermissionUpdateInfobarTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/infobar/PermissionUpdateInfobarTest.java
|
| index 510b911de7c7d0ce0f38d3e6583177feb7588751..03d4d26bbcda116fda48b992bbf3b7574c81cd7e 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/infobar/PermissionUpdateInfobarTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/infobar/PermissionUpdateInfobarTest.java
|
| @@ -5,12 +5,24 @@
|
| package org.chromium.chrome.browser.infobar;
|
|
|
| import android.Manifest;
|
| +import android.support.test.InstrumentationRegistry;
|
| import android.support.test.filters.MediumTest;
|
|
|
| +import org.junit.After;
|
| +import org.junit.Assert;
|
| +import org.junit.Before;
|
| +import org.junit.Rule;
|
| +import org.junit.Test;
|
| +import org.junit.runner.RunWith;
|
| +
|
| import org.chromium.base.ThreadUtils;
|
| +import org.chromium.base.test.util.CommandLineFlags;
|
| +import org.chromium.chrome.browser.ChromeSwitches;
|
| import org.chromium.chrome.browser.preferences.website.ContentSetting;
|
| import org.chromium.chrome.browser.preferences.website.GeolocationInfo;
|
| -import org.chromium.chrome.test.ChromeTabbedActivityTestBase;
|
| +import org.chromium.chrome.test.ChromeActivityTestRule;
|
| +import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
|
| +import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
|
| import org.chromium.chrome.test.util.ChromeTabUtils;
|
| import org.chromium.chrome.test.util.InfoBarTestAnimationListener;
|
| import org.chromium.chrome.test.util.browser.LocationSettingsTestUtil;
|
| @@ -32,7 +44,14 @@ import java.util.concurrent.TimeoutException;
|
| /**
|
| * Tests for the permission update infobar.
|
| */
|
| -public class PermissionUpdateInfobarTest extends ChromeTabbedActivityTestBase {
|
| +@RunWith(ChromeJUnit4ClassRunner.class)
|
| +@CommandLineFlags.Add({
|
| + ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE,
|
| + ChromeActivityTestRule.DISABLE_NETWORK_PREDICTION_FLAG,
|
| +})
|
| +public class PermissionUpdateInfobarTest {
|
| + @Rule
|
| + public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule();
|
|
|
| private static final String GEOLOCATION_PAGE =
|
| "/chrome/test/data/geolocation/geolocation_on_load.html";
|
| @@ -42,40 +61,41 @@ public class PermissionUpdateInfobarTest extends ChromeTabbedActivityTestBase {
|
| private InfoBarTestAnimationListener mListener;
|
| private EmbeddedTestServer mTestServer;
|
|
|
| - @Override
|
| - public void startMainActivity() throws InterruptedException {
|
| - startMainActivityOnBlankPage();
|
| - }
|
| -
|
| - @Override
|
| - protected void setUp() throws Exception {
|
| - super.setUp();
|
| - mTestServer = EmbeddedTestServer.createAndStartServer(getInstrumentation().getContext());
|
| + @Before
|
| + public void setUp() throws Exception {
|
| + mActivityTestRule.startMainActivityOnBlankPage();
|
| + mTestServer = EmbeddedTestServer.createAndStartServer(
|
| + InstrumentationRegistry.getInstrumentation().getContext());
|
| }
|
|
|
| - @Override
|
| - protected void tearDown() throws Exception {
|
| + @After
|
| + public void tearDown() throws Exception {
|
| mTestServer.stopAndDestroyServer();
|
| - super.tearDown();
|
| }
|
|
|
| // Ensure destroying the permission update infobar does not crash when handling geolocation
|
| // permissions.
|
| + @Test
|
| @MediumTest
|
| public void testInfobarShutsDownCleanlyForGeolocation()
|
| throws IllegalArgumentException, InterruptedException, TimeoutException {
|
| - ChromeTabUtils.newTabFromMenu(getInstrumentation(), getActivity());
|
| + ChromeTabUtils.newTabFromMenu(
|
| + InstrumentationRegistry.getInstrumentation(), mActivityTestRule.getActivity());
|
|
|
| // Register for animation notifications
|
| CriteriaHelper.pollInstrumentationThread(new Criteria() {
|
| @Override
|
| public boolean isSatisfied() {
|
| - if (getActivity().getActivityTab() == null) return false;
|
| - if (getActivity().getActivityTab().getInfoBarContainer() == null) return false;
|
| + if (mActivityTestRule.getActivity().getActivityTab() == null) return false;
|
| + if (mActivityTestRule.getActivity().getActivityTab().getInfoBarContainer()
|
| + == null) {
|
| + return false;
|
| + }
|
| return true;
|
| }
|
| });
|
| - InfoBarContainer container = getActivity().getActivityTab().getInfoBarContainer();
|
| + InfoBarContainer container =
|
| + mActivityTestRule.getActivity().getActivityTab().getInfoBarContainer();
|
| mListener = new InfoBarTestAnimationListener();
|
| container.addAnimationListener(mListener);
|
|
|
| @@ -88,11 +108,9 @@ public class PermissionUpdateInfobarTest extends ChromeTabbedActivityTestBase {
|
| }
|
| });
|
|
|
| - getActivity().getWindowAndroid().setAndroidPermissionDelegate(
|
| + mActivityTestRule.getActivity().getWindowAndroid().setAndroidPermissionDelegate(
|
| new TestAndroidPermissionDelegate(
|
| - null,
|
| - Arrays.asList(Manifest.permission.ACCESS_FINE_LOCATION),
|
| - null));
|
| + null, Arrays.asList(Manifest.permission.ACCESS_FINE_LOCATION), null));
|
| LocationSettingsTestUtil.setSystemLocationSettingEnabled(true);
|
|
|
| try {
|
| @@ -103,20 +121,23 @@ public class PermissionUpdateInfobarTest extends ChromeTabbedActivityTestBase {
|
| }
|
| });
|
|
|
| - loadUrl(mTestServer.getURL(GEOLOCATION_PAGE));
|
| + mActivityTestRule.loadUrl(mTestServer.getURL(GEOLOCATION_PAGE));
|
| mListener.addInfoBarAnimationFinished("InfoBar not added");
|
| - assertEquals(1, getInfoBars().size());
|
| + Assert.assertEquals(1, mActivityTestRule.getInfoBars().size());
|
|
|
| final WebContents webContents = ThreadUtils.runOnUiThreadBlockingNoException(
|
| new Callable<WebContents>() {
|
| @Override
|
| public WebContents call() throws Exception {
|
| - return getActivity().getActivityTab().getWebContents();
|
| + return mActivityTestRule.getActivity()
|
| + .getActivityTab()
|
| + .getWebContents();
|
| }
|
| });
|
| - assertFalse(webContents.isDestroyed());
|
| + Assert.assertFalse(webContents.isDestroyed());
|
|
|
| - ChromeTabUtils.closeCurrentTab(getInstrumentation(), getActivity());
|
| + ChromeTabUtils.closeCurrentTab(
|
| + InstrumentationRegistry.getInstrumentation(), mActivityTestRule.getActivity());
|
| CriteriaHelper.pollUiThread(new Criteria() {
|
| @Override
|
| public boolean isSatisfied() {
|
| @@ -127,7 +148,10 @@ public class PermissionUpdateInfobarTest extends ChromeTabbedActivityTestBase {
|
| CriteriaHelper.pollUiThread(Criteria.equals(1, new Callable<Integer>() {
|
| @Override
|
| public Integer call() {
|
| - return getActivity().getTabModelSelector().getModel(false).getCount();
|
| + return mActivityTestRule.getActivity()
|
| + .getTabModelSelector()
|
| + .getModel(false)
|
| + .getCount();
|
| }
|
| }));
|
| } finally {
|
| @@ -140,21 +164,27 @@ public class PermissionUpdateInfobarTest extends ChromeTabbedActivityTestBase {
|
| }
|
| }
|
|
|
| + @Test
|
| @MediumTest
|
| public void testInfobarFrameNavigationForGeolocation()
|
| throws IllegalArgumentException, InterruptedException, TimeoutException {
|
| - ChromeTabUtils.newTabFromMenu(getInstrumentation(), getActivity());
|
| + ChromeTabUtils.newTabFromMenu(
|
| + InstrumentationRegistry.getInstrumentation(), mActivityTestRule.getActivity());
|
|
|
| // Register for animation notifications
|
| CriteriaHelper.pollInstrumentationThread(new Criteria() {
|
| @Override
|
| public boolean isSatisfied() {
|
| - if (getActivity().getActivityTab() == null) return false;
|
| - if (getActivity().getActivityTab().getInfoBarContainer() == null) return false;
|
| + if (mActivityTestRule.getActivity().getActivityTab() == null) return false;
|
| + if (mActivityTestRule.getActivity().getActivityTab().getInfoBarContainer()
|
| + == null) {
|
| + return false;
|
| + }
|
| return true;
|
| }
|
| });
|
| - InfoBarContainer container = getActivity().getActivityTab().getInfoBarContainer();
|
| + InfoBarContainer container =
|
| + mActivityTestRule.getActivity().getActivityTab().getInfoBarContainer();
|
| mListener = new InfoBarTestAnimationListener();
|
| container.addAnimationListener(mListener);
|
|
|
| @@ -167,11 +197,9 @@ public class PermissionUpdateInfobarTest extends ChromeTabbedActivityTestBase {
|
| }
|
| });
|
|
|
| - getActivity().getWindowAndroid().setAndroidPermissionDelegate(
|
| + mActivityTestRule.getActivity().getWindowAndroid().setAndroidPermissionDelegate(
|
| new TestAndroidPermissionDelegate(
|
| - null,
|
| - Arrays.asList(Manifest.permission.ACCESS_FINE_LOCATION),
|
| - null));
|
| + null, Arrays.asList(Manifest.permission.ACCESS_FINE_LOCATION), null));
|
| LocationSettingsTestUtil.setSystemLocationSettingEnabled(true);
|
|
|
| try {
|
| @@ -182,28 +210,32 @@ public class PermissionUpdateInfobarTest extends ChromeTabbedActivityTestBase {
|
| }
|
| });
|
|
|
| - loadUrl(mTestServer.getURL(GEOLOCATION_IFRAME_PAGE));
|
| + mActivityTestRule.loadUrl(mTestServer.getURL(GEOLOCATION_IFRAME_PAGE));
|
| mListener.addInfoBarAnimationFinished("InfoBar not added");
|
| - assertEquals(1, getInfoBars().size());
|
| + Assert.assertEquals(1, mActivityTestRule.getInfoBars().size());
|
|
|
| final WebContents webContents = ThreadUtils.runOnUiThreadBlockingNoException(
|
| new Callable<WebContents>() {
|
| @Override
|
| public WebContents call() throws Exception {
|
| - return getActivity().getActivityTab().getWebContents();
|
| + return mActivityTestRule.getActivity()
|
| + .getActivityTab()
|
| + .getWebContents();
|
| }
|
| });
|
| - assertFalse(webContents.isDestroyed());
|
| + Assert.assertFalse(webContents.isDestroyed());
|
|
|
| - runJavaScriptCodeInCurrentTab("document.querySelector('iframe').src = '';");
|
| + mActivityTestRule.runJavaScriptCodeInCurrentTab(
|
| + "document.querySelector('iframe').src = '';");
|
| CriteriaHelper.pollUiThread(Criteria.equals(0, new Callable<Integer>() {
|
| @Override
|
| public Integer call() {
|
| - return getInfoBars().size();
|
| + return mActivityTestRule.getInfoBars().size();
|
| }
|
| }));
|
|
|
| - ChromeTabUtils.closeCurrentTab(getInstrumentation(), getActivity());
|
| + ChromeTabUtils.closeCurrentTab(
|
| + InstrumentationRegistry.getInstrumentation(), mActivityTestRule.getActivity());
|
| CriteriaHelper.pollUiThread(new Criteria() {
|
| @Override
|
| public boolean isSatisfied() {
|
| @@ -214,7 +246,10 @@ public class PermissionUpdateInfobarTest extends ChromeTabbedActivityTestBase {
|
| CriteriaHelper.pollUiThread(Criteria.equals(1, new Callable<Integer>() {
|
| @Override
|
| public Integer call() {
|
| - return getActivity().getTabModelSelector().getModel(false).getCount();
|
| + return mActivityTestRule.getActivity()
|
| + .getTabModelSelector()
|
| + .getModel(false)
|
| + .getCount();
|
| }
|
| }));
|
| } finally {
|
|
|