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

Side by Side Diff: chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/WebVrTest.java

Issue 2768583002: Make VR screen tap tests more stable (Closed)
Patch Set: Lower duration for DD, change behavior for cardboard Created 3 years, 9 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 unified diff | Download patch
« no previous file with comments | « no previous file | chrome/test/data/android/webvr_instrumentation/html/test_screen_taps_not_registered_on_daydream.html » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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.test.util.ChromeRestriction.RESTRICTION_TYPE_V IEWER_DAYDREAM; 7 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_NON_DAYDREAM; 8 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_W EBVR_SUPPORTED; 9 import static org.chromium.chrome.test.util.ChromeRestriction.RESTRICTION_TYPE_W EBVR_SUPPORTED;
10 10
11 import android.os.SystemClock;
11 import android.support.test.filters.SmallTest; 12 import android.support.test.filters.SmallTest;
12 13
13 import org.chromium.base.Log; 14 import org.chromium.base.Log;
14 import org.chromium.base.test.util.CommandLineFlags; 15 import org.chromium.base.test.util.CommandLineFlags;
15 import org.chromium.base.test.util.Restriction; 16 import org.chromium.base.test.util.Restriction;
16 import org.chromium.base.test.util.UrlUtils; 17 import org.chromium.base.test.util.UrlUtils;
17 import org.chromium.chrome.test.ChromeTabbedActivityTestBase; 18 import org.chromium.chrome.test.ChromeTabbedActivityTestBase;
18 import org.chromium.content.browser.test.util.ClickUtils; 19 import org.chromium.content.browser.test.util.ClickUtils;
19 import org.chromium.content.browser.test.util.Criteria; 20 import org.chromium.content.browser.test.util.Criteria;
20 import org.chromium.content.browser.test.util.CriteriaHelper; 21 import org.chromium.content.browser.test.util.CriteriaHelper;
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 String testName = "test_nfc_fires_vrdisplayactivate"; 243 String testName = "test_nfc_fires_vrdisplayactivate";
243 loadUrl(getHtmlTestFile(testName), 10); 244 loadUrl(getHtmlTestFile(testName), 10);
244 simNfcScanAndWait(mWebContents); 245 simNfcScanAndWait(mWebContents);
245 endTest(mWebContents); 246 endTest(mWebContents);
246 } 247 }
247 248
248 /** 249 /**
249 * Tests that screen touches are not registered when the viewer is a 250 * Tests that screen touches are not registered when the viewer is a
250 * Daydream View. 251 * Daydream View.
251 */ 252 */
252 @SmallTest 253 @SmallTest
Ted C 2017/03/27 15:44:06 This should likely be a LargeTest (and probably sh
bsheedy 2017/03/27 20:19:12 Done.
253 @Restriction(RESTRICTION_TYPE_VIEWER_DAYDREAM) 254 @Restriction(RESTRICTION_TYPE_VIEWER_DAYDREAM)
254 public void testScreenTapsNotRegisteredOnDaydream() throws InterruptedExcept ion { 255 public void testScreenTapsNotRegisteredOnDaydream() throws InterruptedExcept ion {
255 String testName = "test_screen_taps_not_registered_on_daydream"; 256 String testName = "test_screen_taps_not_registered_on_daydream";
256 loadUrl(getHtmlTestFile(testName), 10); 257 loadUrl(getHtmlTestFile(testName), 10);
257 assertTrue("VRDisplay found", vrDisplayFound(mWebContents)); 258 assertTrue("VRDisplay found", vrDisplayFound(mWebContents));
258 executeStepAndWait("stepVerifyNoInitialTaps()", mWebContents); 259 executeStepAndWait("stepVerifyNoInitialTaps()", mWebContents);
259 enterVrTapAndWait(mWebContents); 260 enterVrTapAndWait(mWebContents);
260 enterVrTap(); 261 // Checking for a tap in Javascript immediately after sending one can re sult
262 // in the check happening before the click event is fired, which would c ause
263 // this test to pass even if the click would have been registered. Solut ion
264 // is to send several over a short period to make sure there's enough ti me
265 for (int i = 0; i < 5; i++) {
Ted C 2017/03/27 15:44:06 What is the goal of the test? Are we trying to se
bsheedy 2017/03/27 20:19:12 The purpose is to test that tapping on the screen
266 enterVrTap();
267 SystemClock.sleep(50);
268 }
261 executeStepAndWait("stepVerifyNoAdditionalTaps()", mWebContents); 269 executeStepAndWait("stepVerifyNoAdditionalTaps()", mWebContents);
262 endTest(mWebContents); 270 endTest(mWebContents);
263 } 271 }
264 272
265 /** 273 /**
266 * Tests that screen touches are still registered when the viewer is 274 * Tests that screen touches are still registered when the viewer is
267 * Cardboard. 275 * Cardboard.
268 */ 276 */
269 @SmallTest 277 @SmallTest
270 @Restriction(RESTRICTION_TYPE_VIEWER_NON_DAYDREAM) 278 @Restriction(RESTRICTION_TYPE_VIEWER_NON_DAYDREAM)
271 public void testScreenTapsRegisteredOnCardboard() throws InterruptedExceptio n { 279 public void testScreenTapsRegisteredOnCardboard() throws InterruptedExceptio n {
272 String testName = "test_screen_taps_registered_on_cardboard"; 280 String testName = "test_screen_taps_registered_on_cardboard";
273 loadUrl(getHtmlTestFile(testName), 10); 281 loadUrl(getHtmlTestFile(testName), 10);
274 assertTrue("VRDisplay found", vrDisplayFound(mWebContents)); 282 assertTrue("VRDisplay found", vrDisplayFound(mWebContents));
275 executeStepAndWait("stepVerifyNoInitialTaps()", mWebContents); 283 executeStepAndWait("stepVerifyNoInitialTaps()", mWebContents);
284 // Tap and wait to enter VR
276 enterVrTapAndWait(mWebContents); 285 enterVrTapAndWait(mWebContents);
277 enterVrTap(); 286 // Tap and wait for Javascript to receive it
278 executeStepAndWait("stepVerifyAdditionalTap()", mWebContents); 287 enterVrTapAndWait(mWebContents);
279 endTest(mWebContents); 288 endTest(mWebContents);
280 } 289 }
281 290
282 /** 291 /**
283 * Tests that non-focused tabs cannot get pose information. 292 * Tests that non-focused tabs cannot get pose information.
284 */ 293 */
285 @SmallTest 294 @SmallTest
286 public void testPoseDataUnfocusedTab() throws InterruptedException { 295 public void testPoseDataUnfocusedTab() throws InterruptedException {
287 String testName = "test_pose_data_unfocused_tab"; 296 String testName = "test_pose_data_unfocused_tab";
288 loadUrl(getHtmlTestFile(testName), 10); 297 loadUrl(getHtmlTestFile(testName), 10);
289 assertTrue("VRDisplay found", vrDisplayFound(mWebContents)); 298 assertTrue("VRDisplay found", vrDisplayFound(mWebContents));
290 executeStepAndWait("stepCheckFrameDataWhileFocusedTab()", mWebContents); 299 executeStepAndWait("stepCheckFrameDataWhileFocusedTab()", mWebContents);
291 300
292 loadUrlInNewTab("about:blank"); 301 loadUrlInNewTab("about:blank");
293 302
294 executeStepAndWait("stepCheckFrameDataWhileNonFocusedTab()", mWebContent s); 303 executeStepAndWait("stepCheckFrameDataWhileNonFocusedTab()", mWebContent s);
295 endTest(mWebContents); 304 endTest(mWebContents);
296 } 305 }
297 } 306 }
OLDNEW
« no previous file with comments | « no previous file | chrome/test/data/android/webvr_instrumentation/html/test_screen_taps_not_registered_on_daydream.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698