Chromium Code Reviews| Index: chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/WebVrTest.java |
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/WebVrTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/WebVrTest.java |
| index 04bb75a72477136a9415c69d4736545e4efe5d5a..d83de5972660c4a56417e7e4f6f2f70ad97255cd 100644 |
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/WebVrTest.java |
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/WebVrTest.java |
| @@ -12,6 +12,8 @@ import static org.chromium.chrome.test.util.ChromeRestriction.RESTRICTION_TYPE_V |
| import static org.chromium.chrome.test.util.ChromeRestriction.RESTRICTION_TYPE_VIEWER_NON_DAYDREAM; |
| import static org.chromium.chrome.test.util.ChromeRestriction.RESTRICTION_TYPE_WEBVR_SUPPORTED; |
| +import android.support.test.filters.LargeTest; |
| +import android.support.test.filters.MediumTest; |
| import android.support.test.filters.SmallTest; |
| import org.chromium.base.Log; |
| @@ -26,6 +28,7 @@ import org.chromium.content.browser.test.util.JavaScriptUtils; |
| import org.chromium.content_public.browser.WebContents; |
| import java.util.concurrent.Callable; |
| +import java.util.concurrent.CountDownLatch; |
| import java.util.concurrent.TimeUnit; |
| import java.util.concurrent.TimeoutException; |
| @@ -252,7 +255,7 @@ public class WebVrTest extends ChromeTabbedActivityTestBase { |
| * Tests that screen touches are not registered when the viewer is a |
| * Daydream View. |
| */ |
| - @SmallTest |
| + @LargeTest |
| @Restriction(RESTRICTION_TYPE_VIEWER_DAYDREAM) |
| public void testScreenTapsNotRegisteredOnDaydream() throws InterruptedException { |
| String testName = "test_screen_taps_not_registered_on_daydream"; |
| @@ -260,7 +263,18 @@ public class WebVrTest extends ChromeTabbedActivityTestBase { |
| assertTrue("VRDisplay found", vrDisplayFound(mWebContents)); |
| executeStepAndWait("stepVerifyNoInitialTaps()", mWebContents); |
| enterVrTapAndWait(mWebContents); |
| + // Wait on VrShellImpl to say that its parent consumed the touch event |
| + // Set to 2 because there's an ACTION_DOWN followed by ACTION_UP |
| + final CountDownLatch touchRegisteredLatch = new CountDownLatch(2); |
| + ((VrShellImpl) VrShellDelegate.getVrShellForTesting()) |
| + .setOnDispatchTouchEventForTesting(new Runnable() { |
| + @Override |
| + public void run() { |
| + touchRegisteredLatch.countDown(); |
| + } |
| + }); |
| enterVrTap(); |
| + touchRegisteredLatch.await(); |
|
mthiesse
2017/03/28 18:08:01
What's the timeout on this? Will it wait forever i
bsheedy
2017/03/28 20:50:35
Done, and made the await() have a one second timeo
|
| executeStepAndWait("stepVerifyNoAdditionalTaps()", mWebContents); |
| endTest(mWebContents); |
| } |
| @@ -269,16 +283,17 @@ public class WebVrTest extends ChromeTabbedActivityTestBase { |
| * Tests that screen touches are still registered when the viewer is |
| * Cardboard. |
| */ |
| - @SmallTest |
| + @MediumTest |
| @Restriction(RESTRICTION_TYPE_VIEWER_NON_DAYDREAM) |
| public void testScreenTapsRegisteredOnCardboard() throws InterruptedException { |
| String testName = "test_screen_taps_registered_on_cardboard"; |
| loadUrl(getHtmlTestFile(testName), PAGE_LOAD_TIMEOUT_S); |
| assertTrue("VRDisplay found", vrDisplayFound(mWebContents)); |
| executeStepAndWait("stepVerifyNoInitialTaps()", mWebContents); |
| + // Tap and wait to enter VR |
| + enterVrTapAndWait(mWebContents); |
| + // Tap and wait for Javascript to receive it |
| enterVrTapAndWait(mWebContents); |
| - enterVrTap(); |
| - executeStepAndWait("stepVerifyAdditionalTap()", mWebContents); |
| endTest(mWebContents); |
| } |