Index: chrome/android/javatests/src/org/chromium/chrome/browser/fullscreen/FullscreenManagerTest.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/fullscreen/FullscreenManagerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/fullscreen/FullscreenManagerTest.java |
index 3592cc003ae06fcb2282c68fb951fce25c5c5bed..edacb37da4dbfef640b138ec91a0bf417c08e3e4 100644 |
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/fullscreen/FullscreenManagerTest.java |
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/fullscreen/FullscreenManagerTest.java |
@@ -15,7 +15,6 @@ import android.test.suitebuilder.annotation.MediumTest; |
import android.view.View; |
import android.view.ViewGroup; |
import android.view.ViewTreeObserver; |
-import android.view.WindowManager; |
import org.chromium.base.ThreadUtils; |
import org.chromium.base.test.util.Feature; |
@@ -27,6 +26,7 @@ import org.chromium.chrome.browser.omnibox.UrlBar; |
import org.chromium.chrome.browser.tab.Tab; |
import org.chromium.chrome.browser.tab.TabWebContentsDelegateAndroid; |
import org.chromium.chrome.test.ChromeTabbedActivityTestBase; |
+import org.chromium.chrome.test.util.FullscreenTestUtils; |
import org.chromium.chrome.test.util.OmniboxTestUtils; |
import org.chromium.chrome.test.util.PrerenderTestHelper; |
import org.chromium.chrome.test.util.TestHttpServerClient; |
@@ -88,16 +88,12 @@ public class FullscreenManagerTest extends ChromeTabbedActivityTestBase { |
Tab tab = getActivity().getActivityTab(); |
final TabWebContentsDelegateAndroid delegate = tab.getTabWebContentsDelegateAndroid(); |
- waitForFullscreenFlag(tab, false); |
- waitForPersistentFullscreen(delegate, false); |
+ FullscreenTestUtils.waitForFullscreenFlag(tab, false, getActivity()); |
+ FullscreenTestUtils.waitForPersistentFullscreen(delegate, false); |
- togglePersistentFullscreen(delegate, true); |
- waitForFullscreenFlag(tab, true); |
- waitForPersistentFullscreen(delegate, true); |
+ FullscreenTestUtils.togglePersistentFullscreenAndAssert(tab, true, getActivity()); |
- togglePersistentFullscreen(delegate, false); |
- waitForFullscreenFlag(tab, false); |
- waitForPersistentFullscreen(delegate, false); |
+ FullscreenTestUtils.togglePersistentFullscreenAndAssert(tab, false, getActivity()); |
} |
@LargeTest |
@@ -111,12 +107,10 @@ public class FullscreenManagerTest extends ChromeTabbedActivityTestBase { |
final Tab tab = getActivity().getActivityTab(); |
final TabWebContentsDelegateAndroid delegate = tab.getTabWebContentsDelegateAndroid(); |
- waitForFullscreenFlag(tab, false); |
- waitForPersistentFullscreen(delegate, false); |
+ FullscreenTestUtils.waitForFullscreenFlag(tab, false, getActivity()); |
+ FullscreenTestUtils.waitForPersistentFullscreen(delegate, false); |
- togglePersistentFullscreen(delegate, true); |
- waitForFullscreenFlag(tab, true); |
- waitForPersistentFullscreen(delegate, true); |
+ FullscreenTestUtils.togglePersistentFullscreenAndAssert(tab, true, getActivity()); |
// There is a race condition in android when setting various system UI flags. |
// Adding this wait to allow the animation transitions to complete before continuing |
@@ -131,8 +125,8 @@ public class FullscreenManagerTest extends ChromeTabbedActivityTestBase { |
view.getSystemUiVisibility() & ~View.SYSTEM_UI_FLAG_FULLSCREEN); |
} |
}); |
- waitForFullscreenFlag(tab, true); |
- waitForPersistentFullscreen(delegate, true); |
+ FullscreenTestUtils.waitForFullscreenFlag(tab, true, getActivity()); |
+ FullscreenTestUtils.waitForPersistentFullscreen(delegate, true); |
} |
@LargeTest |
@@ -150,12 +144,13 @@ public class FullscreenManagerTest extends ChromeTabbedActivityTestBase { |
tab.getTabWebContentsDelegateAndroid(); |
singleClickView(view); |
- waitForPersistentFullscreen(delegate, true); |
+ FullscreenTestUtils.waitForPersistentFullscreen(delegate, true); |
+ |
waitForTopControlsPosition(-topControlsHeight); |
TestTouchUtils.sleepForDoubleTapTimeout(getInstrumentation()); |
singleClickView(view); |
- waitForPersistentFullscreen(delegate, false); |
+ FullscreenTestUtils.waitForPersistentFullscreen(delegate, false); |
waitForNoBrowserTopControlsOffset(); |
waitForTopControlsPosition(0); |
@@ -371,57 +366,6 @@ public class FullscreenManagerTest extends ChromeTabbedActivityTestBase { |
waitForTopControlsPosition(expectedPosition); |
} |
- private void togglePersistentFullscreen(final TabWebContentsDelegateAndroid delegate, |
- final boolean state) { |
- ThreadUtils.runOnUiThread(new Runnable() { |
- @Override |
- public void run() { |
- delegate.toggleFullscreenModeForTab(state); |
- } |
- }); |
- } |
- |
- private static boolean isFlagSet(int flags, int flag) { |
- return (flags & flag) == flag; |
- } |
- |
- private boolean isFullscreenFlagSet(final Tab tab, final boolean state) { |
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { |
- View view = tab.getContentViewCore().getContainerView(); |
- int visibility = view.getSystemUiVisibility(); |
- // SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN should only be used during the transition between |
- // fullscreen states, so it should always be cleared when fullscreen transitions are |
- // completed. |
- return (!isFlagSet(visibility, View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN)) |
- && (isFlagSet(visibility, View.SYSTEM_UI_FLAG_FULLSCREEN) == state); |
- } else { |
- WindowManager.LayoutParams attributes = |
- getActivity().getWindow().getAttributes(); |
- return isFlagSet( |
- attributes.flags, WindowManager.LayoutParams.FLAG_FULLSCREEN) == state; |
- } |
- } |
- |
- private void waitForFullscreenFlag(final Tab tab, final boolean state) |
- throws InterruptedException { |
- CriteriaHelper.pollForUIThreadCriteria(new Criteria() { |
- @Override |
- public boolean isSatisfied() { |
- return isFullscreenFlagSet(tab, state); |
- } |
- }); |
- } |
- |
- private void waitForPersistentFullscreen(final TabWebContentsDelegateAndroid delegate, |
- final boolean state) throws InterruptedException { |
- CriteriaHelper.pollForUIThreadCriteria(new Criteria() { |
- @Override |
- public boolean isSatisfied() { |
- return state == delegate.isFullscreenForTabOrPending(); |
- } |
- }); |
- } |
- |
private void waitForTopControlsPosition(final float position) |
throws InterruptedException { |
final ChromeFullscreenManager fullscreenManager = getActivity().getFullscreenManager(); |