| Index: chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/VrFeedbackInfoBarTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/VrFeedbackInfoBarTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/VrFeedbackInfoBarTest.java
|
| deleted file mode 100644
|
| index 2b3e0561f3591a9d832405f92cf9b28913e112d0..0000000000000000000000000000000000000000
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/VrFeedbackInfoBarTest.java
|
| +++ /dev/null
|
| @@ -1,211 +0,0 @@
|
| -// Copyright 2017 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.vr_shell;
|
| -
|
| -import static org.chromium.chrome.browser.vr_shell.VrTestRule.PAGE_LOAD_TIMEOUT_S;
|
| -import static org.chromium.chrome.browser.vr_shell.VrUtils.POLL_TIMEOUT_LONG_MS;
|
| -import static org.chromium.chrome.browser.vr_shell.VrUtils.POLL_TIMEOUT_SHORT_MS;
|
| -import static org.chromium.chrome.test.util.ChromeRestriction.RESTRICTION_TYPE_VIEWER_DAYDREAM;
|
| -
|
| -import android.support.test.filters.MediumTest;
|
| -
|
| -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.base.test.util.Restriction;
|
| -import org.chromium.chrome.browser.ChromeSwitches;
|
| -import org.chromium.chrome.browser.infobar.InfoBar;
|
| -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.InfoBarUtil;
|
| -import org.chromium.content.browser.ContentViewCore;
|
| -import org.chromium.content_public.browser.WebContents;
|
| -
|
| -import java.util.List;
|
| -import java.util.concurrent.TimeoutException;
|
| -
|
| -/**
|
| - * Tests for the infobar that prompts the user to enter feedback on their VR browsing experience.
|
| - */
|
| -@RunWith(ChromeJUnit4ClassRunner.class)
|
| -@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE,
|
| - ChromeActivityTestRule.DISABLE_NETWORK_PREDICTION_FLAG, "enable-features=VrShell",
|
| - "enable-webvr"})
|
| -@Restriction(RESTRICTION_TYPE_VIEWER_DAYDREAM)
|
| -
|
| -public class VrFeedbackInfoBarTest {
|
| - @Rule
|
| - public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule();
|
| - @Rule
|
| - public VrTestRule mVrTestRule = new VrTestRule();
|
| -
|
| - private static final String TEST_PAGE_2D_URL =
|
| - VrTestRule.getHtmlTestFile("test_navigation_2d_page");
|
| - private static final String TEST_PAGE_WEBVR_URL =
|
| - VrTestRule.getHtmlTestFile("test_requestPresent_enters_vr");
|
| -
|
| - private ContentViewCore mFirstTabCvc;
|
| - private WebContents mFirstTabWebContents;
|
| -
|
| - public int loadUrlAndWait(String url, long secondsToWait)
|
| - throws IllegalArgumentException, InterruptedException {
|
| - int result = mActivityTestRule.loadUrl(url, secondsToWait);
|
| - mVrTestRule.waitOnJavaScriptStep(
|
| - mActivityTestRule.getActivity().getActivityTab().getWebContents());
|
| - return result;
|
| - }
|
| -
|
| - @Before
|
| - public void setUp() throws Exception {
|
| - mActivityTestRule.startMainActivityOnBlankPage();
|
| - mFirstTabWebContents = mActivityTestRule.getActivity().getActivityTab().getWebContents();
|
| - mFirstTabCvc = mActivityTestRule.getActivity().getActivityTab().getContentViewCore();
|
| - Assert.assertFalse(VrFeedbackStatus.getFeedbackOptOut());
|
| - }
|
| -
|
| - private void clickInfoBarButton(final boolean primary) {
|
| - final List<InfoBar> infoBars = mActivityTestRule.getInfoBars();
|
| - ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| - @Override
|
| - public void run() {
|
| - if (primary) {
|
| - InfoBarUtil.clickPrimaryButton(infoBars.get(0));
|
| - } else {
|
| - InfoBarUtil.clickSecondaryButton(infoBars.get(0));
|
| - }
|
| - }
|
| - });
|
| - InfoBarUtil.waitUntilNoInfoBarsExist(mActivityTestRule.getInfoBars());
|
| - }
|
| -
|
| - private void clickInfobarCloseButton() {
|
| - final List<InfoBar> infoBars = mActivityTestRule.getInfoBars();
|
| - ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| - @Override
|
| - public void run() {
|
| - InfoBarUtil.clickCloseButton(infoBars.get(0));
|
| - }
|
| - });
|
| - InfoBarUtil.waitUntilNoInfoBarsExist(mActivityTestRule.getInfoBars());
|
| - }
|
| -
|
| - private void assertState(boolean isInVr, boolean isInfobarVisible) {
|
| - Assert.assertEquals("Browser is in VR", isInVr, VrShellDelegate.isInVr());
|
| - Assert.assertEquals("Infobar is visible", isInfobarVisible,
|
| - VrUtils.isInfoBarPresent(
|
| - mActivityTestRule.getActivity().getWindow().getDecorView()));
|
| - }
|
| -
|
| - private void enterThenExitVr() {
|
| - VrUtils.forceEnterVr();
|
| - VrUtils.waitForVrSupported(POLL_TIMEOUT_LONG_MS);
|
| - assertState(true /* isInVr */, false /* isInfobarVisible */);
|
| - VrUtils.forceExitVr(VrUtils.getVrShellDelegateInstance());
|
| - }
|
| -
|
| - /**
|
| - * Tests that we respect the feedback frequency when showing the feedback prompt.
|
| - */
|
| - @Test
|
| - @MediumTest
|
| - public void testFeedbackFrequency() throws InterruptedException, TimeoutException {
|
| - loadUrlAndWait(TEST_PAGE_2D_URL, PAGE_LOAD_TIMEOUT_S);
|
| -
|
| - // Set frequency of infobar to every 2nd time.
|
| - VrUtils.getVrShellDelegateInstance().setFeedbackFrequencyForTesting(2);
|
| -
|
| - // Verify that the Feedback infobar is visible when exiting VR.
|
| - enterThenExitVr();
|
| - assertState(false /* isInVr */, true /* isInfobarVisible */);
|
| - clickInfobarCloseButton();
|
| -
|
| - // Feedback infobar shouldn't show up this time.
|
| - enterThenExitVr();
|
| - assertState(false /* isInVr */, false /* isInfobarVisible */);
|
| -
|
| - // Feedback infobar should show up again.
|
| - enterThenExitVr();
|
| - assertState(false /* isInVr */, true /* isInfobarVisible */);
|
| - clickInfobarCloseButton();
|
| - }
|
| -
|
| - /**
|
| - * Tests that we don't show the feedback prompt when the user has opted-out.
|
| - */
|
| - @Test
|
| - @MediumTest
|
| - public void testFeedbackOptOut() throws InterruptedException, TimeoutException {
|
| - loadUrlAndWait(TEST_PAGE_2D_URL, PAGE_LOAD_TIMEOUT_S);
|
| -
|
| - // Show infobar every time.
|
| - VrUtils.getVrShellDelegateInstance().setFeedbackFrequencyForTesting(1);
|
| -
|
| - // The infobar should show the first time.
|
| - enterThenExitVr();
|
| - assertState(false /* isInVr */, true /* isInfobarVisible */);
|
| -
|
| - // Opt-out of seeing the infobar.
|
| - clickInfoBarButton(false /* primary */);
|
| - Assert.assertTrue(VrFeedbackStatus.getFeedbackOptOut());
|
| -
|
| - // The infobar should not show because the user opted out.
|
| - enterThenExitVr();
|
| - assertState(false /* isInVr */, false /* isInfobarVisible */);
|
| - }
|
| -
|
| - /**
|
| - * Tests that we only show the feedback prompt when the user has actually used the VR browser.
|
| - */
|
| - @Test
|
| - @MediumTest
|
| - public void testFeedbackOnlyOnVrBrowsing() throws InterruptedException, TimeoutException {
|
| - // Enter VR presentation mode.
|
| - mActivityTestRule.loadUrl(TEST_PAGE_WEBVR_URL, PAGE_LOAD_TIMEOUT_S);
|
| - Assert.assertTrue("VRDisplay found", mVrTestRule.vrDisplayFound(mFirstTabWebContents));
|
| - mVrTestRule.enterPresentationAndWait(mFirstTabCvc, mFirstTabWebContents);
|
| - assertState(true /* isInVr */, false /* isInfobarVisible */);
|
| - Assert.assertTrue(VrShellDelegate.getVrShellForTesting().getWebVrModeEnabled());
|
| -
|
| - // Exiting VR should not prompt for feedback since the no VR browsing was performed.
|
| - VrUtils.forceExitVr(VrUtils.getVrShellDelegateInstance());
|
| - assertState(false /* isInVr */, false /* isInfobarVisible */);
|
| - }
|
| -
|
| - /**
|
| - * Tests that we show the prompt if the VR browser is used after exiting presentation mode.
|
| - */
|
| - @Test
|
| - @MediumTest
|
| - public void testExitPresentationInVr() throws InterruptedException, TimeoutException {
|
| - // Enter VR presentation mode.
|
| - mActivityTestRule.loadUrl(TEST_PAGE_WEBVR_URL, PAGE_LOAD_TIMEOUT_S);
|
| - Assert.assertTrue("VRDisplay found", mVrTestRule.vrDisplayFound(mFirstTabWebContents));
|
| - mVrTestRule.enterPresentationAndWait(mFirstTabCvc, mFirstTabWebContents);
|
| - assertState(true /* isInVr */, false /* isInfobarVisible */);
|
| - Assert.assertTrue(VrShellDelegate.getVrShellForTesting().getWebVrModeEnabled());
|
| -
|
| - // Exit presentation mode by navigating to a different url.
|
| - ChromeTabUtils.waitForTabPageLoaded(
|
| - mActivityTestRule.getActivity().getActivityTab(), new Runnable() {
|
| - @Override
|
| - public void run() {
|
| - mVrTestRule.runJavaScriptOrFail(
|
| - "window.location.href = '" + TEST_PAGE_2D_URL + "';",
|
| - POLL_TIMEOUT_SHORT_MS, mFirstTabWebContents);
|
| - }
|
| - }, POLL_TIMEOUT_LONG_MS);
|
| -
|
| - // Exiting VR should prompt for feedback since 2D browsing was performed after.
|
| - VrUtils.forceExitVr(VrUtils.getVrShellDelegateInstance());
|
| - assertState(false /* isInVr */, true /* isInfobarVisible */);
|
| - }
|
| -}
|
|
|