Index: chrome/android/javatests/src/org/chromium/chrome/browser/compositor/CompositorVisibilityTest.java |
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/CompositorVisibilityTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/CompositorVisibilityTest.java |
index ff8b9c6a4903f089de721b28553992e8dac8074a..52f3afbd71b2a88daf2532a778585a5e7e9eafe8 100644 |
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/CompositorVisibilityTest.java |
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/CompositorVisibilityTest.java |
@@ -4,25 +4,38 @@ |
package org.chromium.chrome.browser.compositor; |
-import android.annotation.TargetApi; |
import android.graphics.Rect; |
-import android.support.test.annotation.UiThreadTest; |
+import android.os.Build; |
import android.support.test.filters.SmallTest; |
import android.view.SurfaceView; |
import android.view.View; |
-import static org.junit.Assert.assertEquals; |
-import static org.junit.Assert.assertTrue; |
+import org.junit.Assert; |
+import org.junit.Before; |
+import org.junit.Rule; |
+import org.junit.Test; |
+import org.junit.runner.RunWith; |
-import org.chromium.chrome.browser.ChromeActivityTest; |
+import org.chromium.base.test.util.CommandLineFlags; |
+import org.chromium.base.test.util.MinAndroidSdkLevel; |
+import org.chromium.chrome.browser.ChromeSwitches; |
import org.chromium.chrome.browser.compositor.layouts.LayoutRenderHost; |
+import org.chromium.chrome.test.ChromeActivityTestRule; |
+import org.chromium.chrome.test.ChromeJUnit4ClassRunner; |
+import org.chromium.chrome.test.ChromeTabbedActivityTestRule; |
import org.chromium.ui.resources.ResourceManager; |
/** |
* Integration tests for {@link org.chromium.chrome.browser.compositor.CompositorView}. |
*/ |
-@TargetApi(21) |
-public class CompositorVisibilityTest extends ChromeActivityTest { |
+@RunWith(ChromeJUnit4ClassRunner.class) |
+@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE, |
+ ChromeActivityTestRule.DISABLE_NETWORK_PREDICTION_FLAG}) |
+@MinAndroidSdkLevel(Build.VERSION_CODES.LOLLIPOP) |
+public class CompositorVisibilityTest { |
+ @Rule |
+ public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); |
+ |
private CompositorView mCompositorView; |
private LayoutRenderHost mRenderHost = new LayoutRenderHost() { |
@@ -71,29 +84,44 @@ public class CompositorVisibilityTest extends ChromeActivityTest { |
public void invalidateAccessibilityProvider() {} |
}; |
+ @Before |
+ public void setUp() throws InterruptedException { |
+ mActivityTestRule.startMainActivityOnBlankPage(); |
+ } |
+ |
// Verify that setVisibility on |mCompositorView| is transferred to its children. Otherwise, |
// the underlying surface is not destroyed. This can interfere with VR, which hides the |
// CompositorView and creates its own surfaces. The compositor surfaces can show up when the VR |
// surfaces are supposed to be visible. |
+ @Test |
@SmallTest |
- @UiThreadTest |
- public void testSetVisibilityHidesSurfaces() { |
- mCompositorView = new CompositorView(getActivity(), mRenderHost); |
- mCompositorView.setVisibility(View.VISIBLE); |
- assertEquals(View.VISIBLE, mCompositorView.getChildAt(0).getVisibility()); |
- mCompositorView.setVisibility(View.INVISIBLE); |
- assertEquals(View.INVISIBLE, mCompositorView.getChildAt(0).getVisibility()); |
+ public void testSetVisibilityHidesSurfaces() throws Throwable { |
+ mActivityTestRule.runOnUiThread(new Runnable() { |
+ @Override |
+ public void run() { |
+ mCompositorView = new CompositorView(mActivityTestRule.getActivity(), mRenderHost); |
+ mCompositorView.setVisibility(View.VISIBLE); |
+ Assert.assertEquals(View.VISIBLE, mCompositorView.getChildAt(0).getVisibility()); |
+ mCompositorView.setVisibility(View.INVISIBLE); |
+ Assert.assertEquals(View.INVISIBLE, mCompositorView.getChildAt(0).getVisibility()); |
+ } |
+ }); |
} |
// The surfaceview should be attached during construction, so that the application window knows |
// to set the blending hint correctly on the surface. Otherwise, it will have to setFormat() |
// when the SurfaceView is attached to the CompositorView, which causes visual artifacts when |
// the surface is torn down and re-created (crbug.com/704866). |
+ @Test |
@SmallTest |
- @UiThreadTest |
- public void testSurfaceViewIsAttachedImmediately() { |
- mCompositorView = new CompositorView(getActivity(), mRenderHost); |
- assertEquals(mCompositorView.getChildCount(), 1); |
- assertTrue(mCompositorView.getChildAt(0) instanceof SurfaceView); |
+ public void testSurfaceViewIsAttachedImmediately() throws Throwable { |
+ mActivityTestRule.runOnUiThread(new Runnable() { |
+ @Override |
+ public void run() { |
+ mCompositorView = new CompositorView(mActivityTestRule.getActivity(), mRenderHost); |
+ Assert.assertEquals(mCompositorView.getChildCount(), 1); |
+ Assert.assertTrue(mCompositorView.getChildAt(0) instanceof SurfaceView); |
+ } |
+ }); |
} |
} |