| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.chrome.browser.vr_shell; | 5 package org.chromium.chrome.browser.vr_shell; |
| 6 | 6 |
| 7 import static org.chromium.chrome.browser.vr_shell.VrUtils.POLL_TIMEOUT_SHORT_MS
; | 7 import static org.chromium.chrome.browser.vr_shell.VrUtils.POLL_TIMEOUT_SHORT_MS
; |
| 8 import static org.chromium.chrome.test.util.ChromeRestriction.RESTRICTION_TYPE_V
IEWER_DAYDREAM; | 8 import static org.chromium.chrome.test.util.ChromeRestriction.RESTRICTION_TYPE_V
IEWER_DAYDREAM; |
| 9 import static org.chromium.chrome.test.util.ChromeRestriction.RESTRICTION_TYPE_V
IEWER_NON_DAYDREAM; | 9 import static org.chromium.chrome.test.util.ChromeRestriction.RESTRICTION_TYPE_V
IEWER_NON_DAYDREAM; |
| 10 import static org.chromium.chrome.test.util.ChromeRestriction.RESTRICTION_TYPE_W
EBVR_SUPPORTED; | 10 import static org.chromium.chrome.test.util.ChromeRestriction.RESTRICTION_TYPE_W
EBVR_SUPPORTED; |
| 11 | 11 |
| 12 import android.os.Build; | 12 import android.os.Build; |
| 13 import android.support.test.filters.LargeTest; | 13 import android.support.test.filters.LargeTest; |
| 14 import android.support.test.filters.MediumTest; | 14 import android.support.test.filters.MediumTest; |
| 15 import android.support.test.filters.SmallTest; | 15 import android.support.test.filters.SmallTest; |
| 16 import android.widget.TextView; | 16 import android.widget.TextView; |
| 17 | 17 |
| 18 import org.junit.Assert; |
| 19 import org.junit.Before; |
| 20 import org.junit.Rule; |
| 21 import org.junit.Test; |
| 22 import org.junit.runner.RunWith; |
| 23 |
| 18 import org.chromium.base.test.util.CommandLineFlags; | 24 import org.chromium.base.test.util.CommandLineFlags; |
| 19 import org.chromium.base.test.util.DisableIf; | 25 import org.chromium.base.test.util.DisableIf; |
| 20 import org.chromium.base.test.util.Restriction; | 26 import org.chromium.base.test.util.Restriction; |
| 21 import org.chromium.chrome.R; | 27 import org.chromium.chrome.R; |
| 28 import org.chromium.chrome.browser.ChromeSwitches; |
| 29 import org.chromium.chrome.test.ChromeActivityTestRule; |
| 30 import org.chromium.chrome.test.ChromeJUnit4ClassRunner; |
| 31 import org.chromium.chrome.test.ChromeTabbedActivityTestRule; |
| 32 import org.chromium.content_public.browser.WebContents; |
| 22 | 33 |
| 23 import java.util.concurrent.CountDownLatch; | 34 import java.util.concurrent.CountDownLatch; |
| 24 import java.util.concurrent.TimeUnit; | 35 import java.util.concurrent.TimeUnit; |
| 25 | 36 |
| 26 /** | 37 /** |
| 27 * End-to-end tests for WebVR using the WebVR test framework from VrTestBase. | 38 * End-to-end tests for WebVR using the WebVR test framework from VrTestBase. |
| 28 */ | 39 */ |
| 29 @CommandLineFlags.Add("enable-webvr") | 40 @RunWith(ChromeJUnit4ClassRunner.class) |
| 41 @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE, |
| 42 ChromeActivityTestRule.DISABLE_NETWORK_PREDICTION_FLAG, "enable-webvr"}) |
| 30 @Restriction(RESTRICTION_TYPE_WEBVR_SUPPORTED) | 43 @Restriction(RESTRICTION_TYPE_WEBVR_SUPPORTED) |
| 31 public class WebVrTest extends VrTestBase { | 44 public class WebVrTest { |
| 32 private static final String TAG = "WebVrTest"; | 45 @Rule |
| 46 public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActi
vityTestRule(); |
| 47 @Rule |
| 48 public VrTestRule mVrTestRule = new VrTestRule(); |
| 49 |
| 50 private WebContents mFirstTabWebContents; |
| 51 |
| 52 @Before |
| 53 public void setUp() throws InterruptedException { |
| 54 mActivityTestRule.startMainActivityOnBlankPage(); |
| 55 mFirstTabWebContents = mActivityTestRule.getActivity().getActivityTab().
getWebContents(); |
| 56 } |
| 33 | 57 |
| 34 /** | 58 /** |
| 35 * Tests that a successful requestPresent call actually enters VR | 59 * Tests that a successful requestPresent call actually enters VR |
| 36 */ | 60 */ |
| 61 @Test |
| 37 @SmallTest | 62 @SmallTest |
| 38 public void testRequestPresentEntersVr() throws InterruptedException { | 63 public void testRequestPresentEntersVr() throws InterruptedException { |
| 39 String testName = "test_requestPresent_enters_vr"; | 64 String testName = "test_requestPresent_enters_vr"; |
| 40 loadUrl(getHtmlTestFile(testName), PAGE_LOAD_TIMEOUT_S); | 65 mActivityTestRule.loadUrl( |
| 41 assertTrue("VRDisplay found", vrDisplayFound(mWebContents)); | 66 VrTestRule.getHtmlTestFile(testName), VrTestRule.PAGE_LOAD_TIMEO
UT_S); |
| 42 enterVrTapAndWait(mWebContents); | 67 Assert.assertTrue("VRDisplay found", mVrTestRule.vrDisplayFound(mFirstTa
bWebContents)); |
| 43 assertTrue("VrShellDelegate is in VR", VrShellDelegate.isInVr()); | 68 mVrTestRule.enterVrTapAndWait(mActivityTestRule.getActivity(), mFirstTab
WebContents); |
| 44 endTest(mWebContents); | 69 Assert.assertTrue("VrShellDelegate is in VR", VrShellDelegate.isInVr()); |
| 70 mVrTestRule.endTest(mFirstTabWebContents); |
| 45 } | 71 } |
| 46 | 72 |
| 47 /** | 73 /** |
| 48 * Tests that scanning the Daydream View NFC tag on supported devices fires
the | 74 * Tests that scanning the Daydream View NFC tag on supported devices fires
the |
| 49 * vrdisplayactivate event. | 75 * vrdisplayactivate event. |
| 50 */ | 76 */ |
| 77 @Test |
| 51 @SmallTest | 78 @SmallTest |
| 52 @Restriction(RESTRICTION_TYPE_VIEWER_DAYDREAM) | 79 @Restriction(RESTRICTION_TYPE_VIEWER_DAYDREAM) |
| 53 public void testNfcFiresVrdisplayactivate() throws InterruptedException { | 80 public void testNfcFiresVrdisplayactivate() throws InterruptedException { |
| 54 String testName = "test_nfc_fires_vrdisplayactivate"; | 81 String testName = "test_nfc_fires_vrdisplayactivate"; |
| 55 loadUrl(getHtmlTestFile(testName), PAGE_LOAD_TIMEOUT_S); | 82 mActivityTestRule.loadUrl( |
| 56 simNfcScanAndWait(mWebContents); | 83 VrTestRule.getHtmlTestFile(testName), VrTestRule.PAGE_LOAD_TIMEO
UT_S); |
| 57 endTest(mWebContents); | 84 mVrTestRule.simNfcScanAndWait(mActivityTestRule.getActivity(), mFirstTab
WebContents); |
| 85 mVrTestRule.endTest(mFirstTabWebContents); |
| 58 } | 86 } |
| 59 | 87 |
| 60 /** | 88 /** |
| 61 * Tests that screen touches are not registered when the viewer is a Daydrea
m View. | 89 * Tests that screen touches are not registered when the viewer is a Daydrea
m View. |
| 62 */ | 90 */ |
| 91 @Test |
| 63 @LargeTest | 92 @LargeTest |
| 64 @Restriction(RESTRICTION_TYPE_VIEWER_DAYDREAM) | 93 @Restriction(RESTRICTION_TYPE_VIEWER_DAYDREAM) |
| 65 public void testScreenTapsNotRegisteredOnDaydream() throws InterruptedExcept
ion { | 94 public void testScreenTapsNotRegisteredOnDaydream() throws InterruptedExcept
ion { |
| 66 String testName = "test_screen_taps_not_registered_on_daydream"; | 95 String testName = "test_screen_taps_not_registered_on_daydream"; |
| 67 loadUrl(getHtmlTestFile(testName), PAGE_LOAD_TIMEOUT_S); | 96 mActivityTestRule.loadUrl( |
| 68 assertTrue("VRDisplay found", vrDisplayFound(mWebContents)); | 97 VrTestRule.getHtmlTestFile(testName), VrTestRule.PAGE_LOAD_TIMEO
UT_S); |
| 69 executeStepAndWait("stepVerifyNoInitialTaps()", mWebContents); | 98 Assert.assertTrue("VRDisplay found", mVrTestRule.vrDisplayFound(mFirstTa
bWebContents)); |
| 70 enterVrTapAndWait(mWebContents); | 99 mVrTestRule.executeStepAndWait("stepVerifyNoInitialTaps()", mFirstTabWeb
Contents); |
| 100 mVrTestRule.enterVrTapAndWait(mActivityTestRule.getActivity(), mFirstTab
WebContents); |
| 71 // Wait on VrShellImpl to say that its parent consumed the touch event | 101 // Wait on VrShellImpl to say that its parent consumed the touch event |
| 72 // Set to 2 because there's an ACTION_DOWN followed by ACTION_UP | 102 // Set to 2 because there's an ACTION_DOWN followed by ACTION_UP |
| 73 final CountDownLatch touchRegisteredLatch = new CountDownLatch(2); | 103 final CountDownLatch touchRegisteredLatch = new CountDownLatch(2); |
| 74 ((VrShellImpl) VrShellDelegate.getVrShellForTesting()) | 104 ((VrShellImpl) VrShellDelegate.getVrShellForTesting()) |
| 75 .setOnDispatchTouchEventForTesting(new OnDispatchTouchEventCallb
ack() { | 105 .setOnDispatchTouchEventForTesting(new OnDispatchTouchEventCallb
ack() { |
| 76 @Override | 106 @Override |
| 77 public void onDispatchTouchEvent( | 107 public void onDispatchTouchEvent( |
| 78 boolean parentConsumed, boolean cardboardTriggered)
{ | 108 boolean parentConsumed, boolean cardboardTriggered)
{ |
| 79 if (!parentConsumed) fail("Parent did not consume event"
); | 109 if (!parentConsumed) Assert.fail("Parent did not consume
event"); |
| 80 if (cardboardTriggered) fail("Cardboard event triggered"
); | 110 if (cardboardTriggered) Assert.fail("Cardboard event tri
ggered"); |
| 81 touchRegisteredLatch.countDown(); | 111 touchRegisteredLatch.countDown(); |
| 82 } | 112 } |
| 83 }); | 113 }); |
| 84 enterVrTap(); | 114 mVrTestRule.enterVrTap(mActivityTestRule.getActivity()); |
| 85 assertTrue("VrShellImpl dispatched touches", | 115 Assert.assertTrue("VrShellImpl dispatched touches", |
| 86 touchRegisteredLatch.await(POLL_TIMEOUT_SHORT_MS, TimeUnit.MILLI
SECONDS)); | 116 touchRegisteredLatch.await(POLL_TIMEOUT_SHORT_MS, TimeUnit.MILLI
SECONDS)); |
| 87 executeStepAndWait("stepVerifyNoAdditionalTaps()", mWebContents); | 117 mVrTestRule.executeStepAndWait("stepVerifyNoAdditionalTaps()", mFirstTab
WebContents); |
| 88 endTest(mWebContents); | 118 mVrTestRule.endTest(mFirstTabWebContents); |
| 89 } | 119 } |
| 90 | 120 |
| 91 /** | 121 /** |
| 92 * Tests that Daydream controller clicks are registered as screen taps when
the viewer is a | 122 * Tests that Daydream controller clicks are registered as screen taps when
the viewer is a |
| 93 * Daydream View. | 123 * Daydream View. |
| 94 */ | 124 */ |
| 125 @Test |
| 95 @LargeTest | 126 @LargeTest |
| 96 @Restriction(RESTRICTION_TYPE_VIEWER_DAYDREAM) | 127 @Restriction(RESTRICTION_TYPE_VIEWER_DAYDREAM) |
| 97 public void testControllerClicksRegisteredAsTapsOnDaydream() throws Interrup
tedException { | 128 public void testControllerClicksRegisteredAsTapsOnDaydream() throws Interrup
tedException { |
| 98 EmulatedVrController controller = new EmulatedVrController(getActivity()
); | 129 EmulatedVrController controller = new EmulatedVrController(mActivityTest
Rule.getActivity()); |
| 99 String testName = "test_screen_taps_registered"; | 130 String testName = "test_screen_taps_registered"; |
| 100 loadUrl(getHtmlTestFile(testName), PAGE_LOAD_TIMEOUT_S); | 131 mActivityTestRule.loadUrl( |
| 101 assertTrue("VRDisplay found", vrDisplayFound(mWebContents)); | 132 VrTestRule.getHtmlTestFile(testName), VrTestRule.PAGE_LOAD_TIMEO
UT_S); |
| 102 executeStepAndWait("stepVerifyNoInitialTaps()", mWebContents); | 133 Assert.assertTrue("VRDisplay found", mVrTestRule.vrDisplayFound(mFirstTa
bWebContents)); |
| 134 mVrTestRule.executeStepAndWait("stepVerifyNoInitialTaps()", mFirstTabWeb
Contents); |
| 103 // Tap and wait to enter VR | 135 // Tap and wait to enter VR |
| 104 enterVrTapAndWait(mWebContents); | 136 mVrTestRule.enterVrTapAndWait(mActivityTestRule.getActivity(), mFirstTab
WebContents); |
| 105 // Send a controller click and wait for JavaScript to receive it | 137 // Send a controller click and wait for JavaScript to receive it |
| 106 controller.pressReleaseTouchpadButton(); | 138 controller.pressReleaseTouchpadButton(); |
| 107 waitOnJavaScriptStep(mWebContents); | 139 mVrTestRule.waitOnJavaScriptStep(mFirstTabWebContents); |
| 108 endTest(mWebContents); | 140 mVrTestRule.endTest(mFirstTabWebContents); |
| 109 } | 141 } |
| 110 | 142 |
| 111 /** | 143 /** |
| 112 * Tests that screen touches are still registered when the viewer is Cardboa
rd. | 144 * Tests that screen touches are still registered when the viewer is Cardboa
rd. |
| 113 */ | 145 */ |
| 146 @Test |
| 114 @MediumTest | 147 @MediumTest |
| 115 @Restriction(RESTRICTION_TYPE_VIEWER_NON_DAYDREAM) | 148 @Restriction(RESTRICTION_TYPE_VIEWER_NON_DAYDREAM) |
| 116 @DisableIf.Build(message = "Flaky on L crbug.com/713781", | 149 @DisableIf.Build(message = "Flaky on L crbug.com/713781", |
| 117 sdk_is_greater_than = Build.VERSION_CODES.KITKAT, | 150 sdk_is_greater_than = Build.VERSION_CODES.KITKAT, |
| 118 sdk_is_less_than = Build.VERSION_CODES.M) | 151 sdk_is_less_than = Build.VERSION_CODES.M) |
| 119 public void testScreenTapsRegisteredOnCardboard() throws InterruptedExceptio
n { | 152 public void testScreenTapsRegisteredOnCardboard() throws InterruptedExceptio
n { |
| 120 String testName = "test_screen_taps_registered"; | 153 String testName = "test_screen_taps_registered"; |
| 121 loadUrl(getHtmlTestFile(testName), PAGE_LOAD_TIMEOUT_S); | 154 mActivityTestRule.loadUrl( |
| 122 assertTrue("VRDisplay found", vrDisplayFound(mWebContents)); | 155 VrTestRule.getHtmlTestFile(testName), VrTestRule.PAGE_LOAD_TIMEO
UT_S); |
| 123 executeStepAndWait("stepVerifyNoInitialTaps()", mWebContents); | 156 Assert.assertTrue("VRDisplay found", mVrTestRule.vrDisplayFound(mFirstTa
bWebContents)); |
| 157 mVrTestRule.executeStepAndWait("stepVerifyNoInitialTaps()", mFirstTabWeb
Contents); |
| 124 // Tap and wait to enter VR | 158 // Tap and wait to enter VR |
| 125 enterVrTapAndWait(mWebContents); | 159 mVrTestRule.enterVrTapAndWait(mActivityTestRule.getActivity(), mFirstTab
WebContents); |
| 126 // Tap and wait for JavaScript to receive it | 160 // Tap and wait for JavaScript to receive it |
| 127 enterVrTapAndWait(mWebContents); | 161 mVrTestRule.enterVrTapAndWait(mActivityTestRule.getActivity(), mFirstTab
WebContents); |
| 128 endTest(mWebContents); | 162 mVrTestRule.endTest(mFirstTabWebContents); |
| 129 } | 163 } |
| 130 | 164 |
| 131 /** | 165 /** |
| 132 * Tests that non-focused tabs cannot get pose information. | 166 * Tests that non-focused tabs cannot get pose information. |
| 133 */ | 167 */ |
| 168 @Test |
| 134 @SmallTest | 169 @SmallTest |
| 135 public void testPoseDataUnfocusedTab() throws InterruptedException { | 170 public void testPoseDataUnfocusedTab() throws InterruptedException { |
| 136 String testName = "test_pose_data_unfocused_tab"; | 171 String testName = "test_pose_data_unfocused_tab"; |
| 137 loadUrl(getHtmlTestFile(testName), PAGE_LOAD_TIMEOUT_S); | 172 mActivityTestRule.loadUrl( |
| 138 assertTrue("VRDisplay found", vrDisplayFound(mWebContents)); | 173 VrTestRule.getHtmlTestFile(testName), VrTestRule.PAGE_LOAD_TIMEO
UT_S); |
| 139 executeStepAndWait("stepCheckFrameDataWhileFocusedTab()", mWebContents); | 174 Assert.assertTrue("VRDisplay found", mVrTestRule.vrDisplayFound(mFirstTa
bWebContents)); |
| 175 mVrTestRule.executeStepAndWait("stepCheckFrameDataWhileFocusedTab()", mF
irstTabWebContents); |
| 140 | 176 |
| 141 loadUrlInNewTab("about:blank"); | 177 mActivityTestRule.loadUrlInNewTab("about:blank"); |
| 142 | 178 |
| 143 executeStepAndWait("stepCheckFrameDataWhileNonFocusedTab()", mWebContent
s); | 179 mVrTestRule.executeStepAndWait( |
| 144 endTest(mWebContents); | 180 "stepCheckFrameDataWhileNonFocusedTab()", mFirstTabWebContents); |
| 181 mVrTestRule.endTest(mFirstTabWebContents); |
| 145 } | 182 } |
| 146 | 183 |
| 147 /** | 184 /** |
| 148 * Helper function to run the tests checking for the upgrade/install InfoBar
being present since | 185 * Helper function to run the tests checking for the upgrade/install InfoBar
being present since |
| 149 * all that differs is the value returned by VrCoreVersionChecker and a coup
le asserts. | 186 * all that differs is the value returned by VrCoreVersionChecker and a coup
le asserts. |
| 150 * | 187 * |
| 151 * @param checkerReturnValue The value to have the VrCoreVersionChecker retu
rn | 188 * @param checkerReturnValue The value to have the VrCoreVersionChecker retu
rn |
| 152 */ | 189 */ |
| 153 private void infoBarTestHelper(int checkerReturnValue) throws InterruptedExc
eption { | 190 private void infoBarTestHelper(int checkerReturnValue) throws InterruptedExc
eption { |
| 154 MockVrCoreVersionCheckerImpl mockChecker = new MockVrCoreVersionCheckerI
mpl(); | 191 MockVrCoreVersionCheckerImpl mockChecker = new MockVrCoreVersionCheckerI
mpl(); |
| 155 mockChecker.setMockReturnValue(checkerReturnValue); | 192 mockChecker.setMockReturnValue(checkerReturnValue); |
| 156 VrUtils.getVrShellDelegateInstance().overrideVrCoreVersionCheckerForTest
ing(mockChecker); | 193 VrUtils.getVrShellDelegateInstance().overrideVrCoreVersionCheckerForTest
ing(mockChecker); |
| 157 String testName = "generic_webvr_page"; | 194 String testName = "generic_webvr_page"; |
| 158 loadUrl(getHtmlTestFile(testName), PAGE_LOAD_TIMEOUT_S); | 195 mActivityTestRule.loadUrl( |
| 196 VrTestRule.getHtmlTestFile(testName), VrTestRule.PAGE_LOAD_TIMEO
UT_S); |
| 159 String displayFound = "VRDisplay Found"; | 197 String displayFound = "VRDisplay Found"; |
| 160 String barPresent = "InfoBar present"; | 198 String barPresent = "InfoBar present"; |
| 161 if (checkerReturnValue == VrCoreVersionChecker.VR_READY) { | 199 if (checkerReturnValue == VrCoreVersionChecker.VR_READY) { |
| 162 assertTrue(displayFound, vrDisplayFound(mWebContents)); | 200 Assert.assertTrue(displayFound, mVrTestRule.vrDisplayFound(mFirstTab
WebContents)); |
| 163 assertFalse(barPresent, | 201 Assert.assertFalse(barPresent, |
| 164 VrUtils.isUpdateInstallInfoBarPresent( | 202 VrUtils.isUpdateInstallInfoBarPresent( |
| 165 getActivity().getWindow().getDecorView())); | 203 mActivityTestRule.getActivity().getWindow().getDecor
View())); |
| 166 } else if (checkerReturnValue == VrCoreVersionChecker.VR_OUT_OF_DATE | 204 } else if (checkerReturnValue == VrCoreVersionChecker.VR_OUT_OF_DATE |
| 167 || checkerReturnValue == VrCoreVersionChecker.VR_NOT_AVAILABLE)
{ | 205 || checkerReturnValue == VrCoreVersionChecker.VR_NOT_AVAILABLE)
{ |
| 168 // Out of date and missing cases are the same, but with different te
xt | 206 // Out of date and missing cases are the same, but with different te
xt |
| 169 String expectedMessage, expectedButton; | 207 String expectedMessage, expectedButton; |
| 170 if (checkerReturnValue == VrCoreVersionChecker.VR_OUT_OF_DATE) { | 208 if (checkerReturnValue == VrCoreVersionChecker.VR_OUT_OF_DATE) { |
| 171 expectedMessage = | 209 expectedMessage = mActivityTestRule.getActivity().getString( |
| 172 getActivity().getString(R.string.vr_services_check_infob
ar_update_text); | 210 R.string.vr_services_check_infobar_update_text); |
| 173 expectedButton = | 211 expectedButton = mActivityTestRule.getActivity().getString( |
| 174 getActivity().getString(R.string.vr_services_check_infob
ar_update_button); | 212 R.string.vr_services_check_infobar_update_button); |
| 175 } else { | 213 } else { |
| 176 expectedMessage = | 214 expectedMessage = mActivityTestRule.getActivity().getString( |
| 177 getActivity().getString(R.string.vr_services_check_infob
ar_install_text); | 215 R.string.vr_services_check_infobar_install_text); |
| 178 expectedButton = | 216 expectedButton = mActivityTestRule.getActivity().getString( |
| 179 getActivity().getString(R.string.vr_services_check_infob
ar_install_button); | 217 R.string.vr_services_check_infobar_install_button); |
| 180 } | 218 } |
| 181 assertFalse(displayFound, vrDisplayFound(mWebContents)); | 219 Assert.assertFalse(displayFound, mVrTestRule.vrDisplayFound(mFirstTa
bWebContents)); |
| 182 assertTrue(barPresent, | 220 Assert.assertTrue(barPresent, |
| 183 VrUtils.isUpdateInstallInfoBarPresent( | 221 VrUtils.isUpdateInstallInfoBarPresent( |
| 184 getActivity().getWindow().getDecorView())); | 222 mActivityTestRule.getActivity().getWindow().getDecor
View())); |
| 185 TextView tempView = (TextView) getActivity().getWindow().getDecorVie
w().findViewById( | 223 TextView tempView = (TextView) mActivityTestRule.getActivity() |
| 186 R.id.infobar_message); | 224 .getWindow() |
| 187 assertEquals(expectedMessage, tempView.getText().toString()); | 225 .getDecorView() |
| 188 tempView = (TextView) getActivity().getWindow().getDecorView().findV
iewById( | 226 .findViewById(R.id.infobar_message); |
| 189 R.id.button_primary); | 227 Assert.assertEquals(expectedMessage, tempView.getText().toString()); |
| 190 assertEquals(expectedButton, tempView.getText().toString()); | 228 tempView = (TextView) mActivityTestRule.getActivity() |
| 229 .getWindow() |
| 230 .getDecorView() |
| 231 .findViewById(R.id.button_primary); |
| 232 Assert.assertEquals(expectedButton, tempView.getText().toString()); |
| 191 } else if (checkerReturnValue == VrCoreVersionChecker.VR_NOT_SUPPORTED)
{ | 233 } else if (checkerReturnValue == VrCoreVersionChecker.VR_NOT_SUPPORTED)
{ |
| 192 assertFalse(displayFound, vrDisplayFound(mWebContents)); | 234 Assert.assertFalse(displayFound, mVrTestRule.vrDisplayFound(mFirstTa
bWebContents)); |
| 193 assertFalse(barPresent, | 235 Assert.assertFalse(barPresent, |
| 194 VrUtils.isUpdateInstallInfoBarPresent( | 236 VrUtils.isUpdateInstallInfoBarPresent( |
| 195 getActivity().getWindow().getDecorView())); | 237 mActivityTestRule.getActivity().getWindow().getDecor
View())); |
| 196 } else { | 238 } else { |
| 197 fail("Invalid VrCoreVersionChecker value: " + String.valueOf(checker
ReturnValue)); | 239 Assert.fail( |
| 240 "Invalid VrCoreVersionChecker value: " + String.valueOf(chec
kerReturnValue)); |
| 198 } | 241 } |
| 199 assertEquals(checkerReturnValue, mockChecker.getLastReturnValue()); | 242 Assert.assertEquals(checkerReturnValue, mockChecker.getLastReturnValue()
); |
| 200 } | 243 } |
| 201 | 244 |
| 202 /** | 245 /** |
| 203 * Tests that the upgrade/install VR Services InfoBar is not present when VR
Services is | 246 * Tests that the upgrade/install VR Services InfoBar is not present when VR
Services is |
| 204 * installed and up to date. | 247 * installed and up to date. |
| 205 */ | 248 */ |
| 249 @Test |
| 206 @MediumTest | 250 @MediumTest |
| 207 public void testInfoBarNotPresentWhenVrServicesCurrent() throws InterruptedE
xception { | 251 public void testInfoBarNotPresentWhenVrServicesCurrent() throws InterruptedE
xception { |
| 208 infoBarTestHelper(VrCoreVersionChecker.VR_READY); | 252 infoBarTestHelper(VrCoreVersionChecker.VR_READY); |
| 209 } | 253 } |
| 210 | 254 |
| 211 /** | 255 /** |
| 212 * Tests that the upgrade VR Services InfoBar is present when VR Services is
outdated. | 256 * Tests that the upgrade VR Services InfoBar is present when VR Services is
outdated. |
| 213 */ | 257 */ |
| 258 @Test |
| 214 @MediumTest | 259 @MediumTest |
| 215 public void testInfoBarPresentWhenVrServicesOutdated() throws InterruptedExc
eption { | 260 public void testInfoBarPresentWhenVrServicesOutdated() throws InterruptedExc
eption { |
| 216 infoBarTestHelper(VrCoreVersionChecker.VR_OUT_OF_DATE); | 261 infoBarTestHelper(VrCoreVersionChecker.VR_OUT_OF_DATE); |
| 217 } | 262 } |
| 218 | 263 |
| 219 /** | 264 /** |
| 220 * Tests that the install VR Services InfoBar is present when VR Services is
missing. | 265 * Tests that the install VR Services InfoBar is present when VR Services is
missing. |
| 221 */ | 266 */ |
| 267 @Test |
| 222 @MediumTest | 268 @MediumTest |
| 223 public void testInfoBarPresentWhenVrServicesMissing() throws InterruptedExce
ption { | 269 public void testInfoBarPresentWhenVrServicesMissing() throws InterruptedExce
ption { |
| 224 infoBarTestHelper(VrCoreVersionChecker.VR_NOT_AVAILABLE); | 270 infoBarTestHelper(VrCoreVersionChecker.VR_NOT_AVAILABLE); |
| 225 } | 271 } |
| 226 | 272 |
| 227 /** | 273 /** |
| 228 * Tests that the install VR Services InfoBar is not present when VR is not
supported on the | 274 * Tests that the install VR Services InfoBar is not present when VR is not
supported on the |
| 229 * device. | 275 * device. |
| 230 */ | 276 */ |
| 277 @Test |
| 231 @MediumTest | 278 @MediumTest |
| 232 public void testInfoBarNotPresentWhenVrServicesNotSupported() throws Interru
ptedException { | 279 public void testInfoBarNotPresentWhenVrServicesNotSupported() throws Interru
ptedException { |
| 233 infoBarTestHelper(VrCoreVersionChecker.VR_NOT_SUPPORTED); | 280 infoBarTestHelper(VrCoreVersionChecker.VR_NOT_SUPPORTED); |
| 234 } | 281 } |
| 235 | 282 |
| 236 /** | 283 /** |
| 237 * Tests that the reported WebVR capabilities match expectations on the devi
ces the WebVR tests | 284 * Tests that the reported WebVR capabilities match expectations on the devi
ces the WebVR tests |
| 238 * are run on continuously. | 285 * are run on continuously. |
| 239 */ | 286 */ |
| 287 @Test |
| 240 @MediumTest | 288 @MediumTest |
| 241 public void testDeviceCapabilitiesMatchExpectations() throws InterruptedExce
ption { | 289 public void testDeviceCapabilitiesMatchExpectations() throws InterruptedExce
ption { |
| 242 String testName = "test_device_capabilities_match_expectations"; | 290 String testName = "test_device_capabilities_match_expectations"; |
| 243 loadUrl(getHtmlTestFile(testName), PAGE_LOAD_TIMEOUT_S); | 291 mActivityTestRule.loadUrl( |
| 244 assertTrue("VRDisplayFound", vrDisplayFound(mWebContents)); | 292 VrTestRule.getHtmlTestFile(testName), VrTestRule.PAGE_LOAD_TIMEO
UT_S); |
| 245 executeStepAndWait("stepCheckDeviceCapabilities('" + Build.DEVICE + "')"
, mWebContents); | 293 Assert.assertTrue("VRDisplayFound", mVrTestRule.vrDisplayFound(mFirstTab
WebContents)); |
| 246 endTest(mWebContents); | 294 mVrTestRule.executeStepAndWait( |
| 295 "stepCheckDeviceCapabilities('" + Build.DEVICE + "')", mFirstTab
WebContents); |
| 296 mVrTestRule.endTest(mFirstTabWebContents); |
| 247 } | 297 } |
| 248 | 298 |
| 249 /** | 299 /** |
| 250 * Tests that focus is locked to the presenting display for purposes of VR i
nput. | 300 * Tests that focus is locked to the presenting display for purposes of VR i
nput. |
| 251 */ | 301 */ |
| 302 @Test |
| 252 @MediumTest | 303 @MediumTest |
| 253 @DisableIf.Build(message = "Flaky on L crbug.com/713781", | 304 @DisableIf.Build(message = "Flaky on L crbug.com/713781", |
| 254 sdk_is_greater_than = Build.VERSION_CODES.KITKAT, | 305 sdk_is_greater_than = Build.VERSION_CODES.KITKAT, |
| 255 sdk_is_less_than = Build.VERSION_CODES.M) | 306 sdk_is_less_than = Build.VERSION_CODES.M) |
| 256 public void testPresentationLocksFocus() throws InterruptedException { | 307 public void testPresentationLocksFocus() throws InterruptedException { |
| 257 String testName = "test_presentation_locks_focus"; | 308 String testName = "test_presentation_locks_focus"; |
| 258 loadUrl(getHtmlTestFile(testName), PAGE_LOAD_TIMEOUT_S); | 309 mActivityTestRule.loadUrl( |
| 259 enterVrTapAndWait(mWebContents); | 310 VrTestRule.getHtmlTestFile(testName), VrTestRule.PAGE_LOAD_TIMEO
UT_S); |
| 260 waitOnJavaScriptStep(mWebContents); | 311 mVrTestRule.enterVrTapAndWait(mActivityTestRule.getActivity(), mFirstTab
WebContents); |
| 261 endTest(mWebContents); | 312 mVrTestRule.waitOnJavaScriptStep(mFirstTabWebContents); |
| 313 mVrTestRule.endTest(mFirstTabWebContents); |
| 262 } | 314 } |
| 263 } | 315 } |
| OLD | NEW |