Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4172)

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/VrFeedbackInfoBarTest.java

Issue 2896933002: Revert "Show an infobar prompting the user to enter feedback when they exit VR" (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 */);
- }
-}

Powered by Google App Engine
This is Rietveld 408576698