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

Unified Diff: content/public/android/javatests/src/org/chromium/content/browser/ScreenOrientationListenerTest.java

Issue 434693002: Re-enable ScreenOrientationListenerTest.java and run locking on UI thread. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review comment Created 6 years, 5 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
« no previous file with comments | « content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/public/android/javatests/src/org/chromium/content/browser/ScreenOrientationListenerTest.java
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/ScreenOrientationListenerTest.java b/content/public/android/javatests/src/org/chromium/content/browser/ScreenOrientationListenerTest.java
index cdb00fe2ddcb30f878fb6edde1bde0a39f2a3d2b..d00e07256de701798f431da42815bab77ca22047 100644
--- a/content/public/android/javatests/src/org/chromium/content/browser/ScreenOrientationListenerTest.java
+++ b/content/public/android/javatests/src/org/chromium/content/browser/ScreenOrientationListenerTest.java
@@ -6,9 +6,10 @@ package org.chromium.content.browser;
import android.content.pm.ActivityInfo;
import android.os.Build;
+import android.test.suitebuilder.annotation.LargeTest;
import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
+import org.chromium.base.ThreadUtils;
import org.chromium.base.test.util.Feature;
import org.chromium.base.test.util.UrlUtils;
import org.chromium.content.browser.test.util.CriteriaHelper;
@@ -61,14 +62,23 @@ public class ScreenOrientationListenerTest extends ContentShellTestBase {
* Locks the screen orientation to the predefined orientation type then wait
* for the orientation change to happen.
*/
- private boolean lockOrientationAndWait(int orientation)
- throws InterruptedException {
- OrientationChangeObserverCriteria criteria = new OrientationChangeObserverCriteria(
- mObserver, orientationTypeToAngle(orientation));
-
- lockOrientation(orientation);
-
- return CriteriaHelper.pollForCriteria(criteria);
+ private void lockOrientationAndWait(final int orientation) throws InterruptedException {
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ lockOrientation(orientation);
+ } catch (Exception e) {
+ fail("Should not be there!");
+ }
+ }
+ });
+ // TODO(mlamouri): this slows the tests down, we could consider removing
+ // this if it doesn't flakes the test.
+ getInstrumentation().waitForIdleSync();
+
+ CriteriaHelper.pollForCriteria(
+ new OrientationChangeObserverCriteria(mObserver, orientationTypeToAngle(orientation)));
}
/**
@@ -84,6 +94,19 @@ public class ScreenOrientationListenerTest extends ContentShellTestBase {
super.setUp();
mObserver = new MockOrientationObserver();
+
+ final ContentShellActivity activity = launchContentShellWithUrl(DEFAULT_URL);
+ waitForActiveShellToBeDoneLoading();
+
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+ @Override
+ public void run() {
+ ScreenOrientationListener.getInstance().addObserver(mObserver, activity);
+ }
+ });
+
+ // Make sure we start all the tests with the same orientation.
+ lockOrientationAndWait(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
@Override
@@ -94,60 +117,9 @@ public class ScreenOrientationListenerTest extends ContentShellTestBase {
super.tearDown();
}
- private void setUpForConfigurationListener() throws InterruptedException {
- ScreenOrientationListener.getInstance().injectConfigurationListenerBackendForTest();
-
- ContentShellActivity activity = launchContentShellWithUrl(DEFAULT_URL);
- waitForActiveShellToBeDoneLoading();
-
- ScreenOrientationListener.getInstance().addObserver(
- mObserver, getInstrumentation().getTargetContext());
- }
-
- private boolean setUpForDisplayListener() throws InterruptedException {
- // This can't work for pre JB-MR1 SDKs.
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1)
- return false;
-
- ContentShellActivity activity = launchContentShellWithUrl(DEFAULT_URL);
- waitForActiveShellToBeDoneLoading();
-
- ScreenOrientationListener.getInstance().addObserver(
- mObserver, getInstrumentation().getTargetContext());
- return true;
- }
-
- // At least one of these tests flakes 50% on all runs of
- // contentshell_instrumentation_tests.
- // crbug.com/356483
- /*
- @SmallTest
- @Feature({"ScreenOrientation"})
- public void testConfigurationListenerDefault() throws Exception {
- setUpForConfigurationListener();
-
- assertFalse(mObserver.mHasChanged);
- assertEquals(-1, mObserver.mOrientation);
- }
-
- @SmallTest
+ @LargeTest
@Feature({"ScreenOrientation"})
- public void testConfigurationListenerAsyncSetup() throws Exception {
- setUpForConfigurationListener();
-
- // We should get a onScreenOrientationChange call asynchronously.
- CriteriaHelper.pollForCriteria(new OrientationChangeObserverCriteria(
- mObserver));
-
- assertTrue(mObserver.mHasChanged);
- assertTrue(mObserver.mOrientation != -1);
- }
-
- @MediumTest
- @Feature({"ScreenOrientation"})
- public void testConfigurationListenerChanges() throws Exception {
- setUpForConfigurationListener();
-
+ public void testVariousOrientationChanges() throws Exception {
lockOrientationAndWait(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
assertEquals(90, mObserver.mOrientation);
@@ -164,74 +136,9 @@ public class ScreenOrientationListenerTest extends ContentShellTestBase {
@MediumTest
@Feature({"ScreenOrientation"})
- public void testConfigurationListenerFlipPortrait() throws Exception {
- setUpForConfigurationListener();
-
- lockOrientationAndWait(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
- assertEquals(0, mObserver.mOrientation);
-
- lockOrientationAndWait(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT);
- assertEquals(0, mObserver.mOrientation);
- }
-
- @MediumTest
- @Feature({"ScreenOrientation"})
- public void testConfigurationListenerFlipLandscape() throws Exception {
- setUpForConfigurationListener();
-
- lockOrientationAndWait(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
- assertEquals(90, mObserver.mOrientation);
-
- lockOrientationAndWait(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
- assertEquals(90, mObserver.mOrientation);
- }
-
- @SmallTest
- @Feature({"ScreenOrientation"})
- public void testDisplayListenerDefault() throws Exception {
- if (!setUpForDisplayListener())
- return;
-
- assertEquals(-1, mObserver.mOrientation);
- }
-
- @SmallTest
- @Feature({"ScreenOrientation"})
- public void testDisplayListenerAsyncSetup() throws Exception {
- if (!setUpForDisplayListener())
- return;
-
- // We should get a onScreenOrientationChange call asynchronously.
- CriteriaHelper.pollForCriteria(new OrientationChangeObserverCriteria(
- mObserver));
-
- assertTrue(mObserver.mOrientation != -1);
- }
-
- @MediumTest
- @Feature({"ScreenOrientation"})
- public void testDisplayListenerChanges() throws Exception {
- if (!setUpForDisplayListener())
- return;
-
- lockOrientationAndWait(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
- assertEquals(90, mObserver.mOrientation);
-
- lockOrientationAndWait(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT);
- assertTrue(mObserver.mOrientation == 180 ||
- (ALLOW_0_FOR_180 && mObserver.mOrientation == 0));
-
- lockOrientationAndWait(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
- assertEquals(-90, mObserver.mOrientation);
-
- lockOrientationAndWait(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
- assertEquals(0, mObserver.mOrientation);
- }
-
- @SmallTest
- @Feature({"ScreenOrientation"})
- public void testDisplayListenerFlipPortrait() throws Exception {
- if (!setUpForDisplayListener())
+ public void testFlipPortrait() throws Exception {
+ // This can't work for pre JB-MR1 SDKs.
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1)
return;
lockOrientationAndWait(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
@@ -242,10 +149,11 @@ public class ScreenOrientationListenerTest extends ContentShellTestBase {
(ALLOW_0_FOR_180 && mObserver.mOrientation == 0));
}
- @SmallTest
+ @MediumTest
@Feature({"ScreenOrientation"})
- public void testDisplayListenerFlipLandscape() throws Exception {
- if (!setUpForDisplayListener())
+ public void testFlipLandscape() throws Exception {
+ // This can't work for pre JB-MR1 SDKs.
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1)
return;
lockOrientationAndWait(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
@@ -254,5 +162,4 @@ public class ScreenOrientationListenerTest extends ContentShellTestBase {
lockOrientationAndWait(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
assertEquals(-90, mObserver.mOrientation);
}
- */
}
« no previous file with comments | « content/public/android/java/src/org/chromium/content/browser/ScreenOrientationListener.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698