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

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

Issue 2867243002: Add additional automated Daydream controller functionality (Closed)
Patch Set: Address mthiesse@ comments 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/VrShellTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/VrShellTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/VrShellTest.java
index db021397e9710e6079927e3a08f83fa83823350b..453deabe14d3e2af430d3dbcde3465cd28783aa2 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/VrShellTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/VrShellTest.java
@@ -4,6 +4,7 @@
package org.chromium.chrome.browser.vr_shell;
+import static org.chromium.chrome.browser.vr_shell.VrUtils.POLL_CHECK_INTERVAL_LONG_MS;
import static org.chromium.chrome.browser.vr_shell.VrUtils.POLL_TIMEOUT_LONG_MS;
import static org.chromium.chrome.test.util.ChromeRestriction.RESTRICTION_TYPE_DEVICE_DAYDREAM;
import static org.chromium.chrome.test.util.ChromeRestriction.RESTRICTION_TYPE_DEVICE_NON_DAYDREAM;
@@ -191,6 +192,45 @@ public class VrShellTest extends VrTestBase {
enterExitVrModeImage(false);
}
+ /**
+ * Verifies that swiping up/down on the Daydream controller's touchpad scrolls
+ * the webpage while in the VR browser.
+ */
+ @Restriction({RESTRICTION_TYPE_DEVICE_DAYDREAM, RESTRICTION_TYPE_VIEWER_DAYDREAM})
+ @MediumTest
+ public void testControllerScrolling() throws InterruptedException {
+ // Load page in VR and make sure the controller is pointed at the content quad
+ loadUrl("chrome://credits", PAGE_LOAD_TIMEOUT_S);
+ VrUtils.forceEnterVr();
+ VrUtils.waitForVrSupported(POLL_TIMEOUT_LONG_MS);
+ EmulatedVrController controller = new EmulatedVrController(getActivity());
+ final ContentViewCore cvc = getActivity().getActivityTab().getActiveContentViewCore();
+ controller.recenterView();
+
+ // Wait for the page to be scrollable
+ CriteriaHelper.pollUiThread(new Criteria() {
+ @Override
+ public boolean isSatisfied() {
+ return cvc.computeVerticalScrollRange() > cvc.getContainerView().getHeight();
+ }
+ }, POLL_TIMEOUT_LONG_MS, POLL_CHECK_INTERVAL_LONG_MS);
+
+ // Test that scrolling down works
+ int startScrollY = cvc.getNativeScrollYForTest();
+ // Arbitrary, but valid values to scroll smoothly
+ int scrollSteps = 20;
+ int scrollSpeed = 60;
+ controller.scrollDown(scrollSteps, scrollSpeed);
+ int endScrollY = cvc.getNativeScrollYForTest();
+ assertTrue("Controller was able to scroll down", startScrollY < endScrollY);
+
+ // Test that scrolling up works
+ startScrollY = endScrollY;
+ controller.scrollUp(scrollSteps, scrollSpeed);
+ endScrollY = cvc.getNativeScrollYForTest();
+ assertTrue("Controller was able to scroll up", startScrollY > endScrollY);
+ }
+
/**
* Verify that resizing the CompositorViewHolder does not cause the current tab to resize while
* the CompositorViewHolder is detached from the TabModelSelector. See crbug.com/680240.

Powered by Google App Engine
This is Rietveld 408576698