Commit d800db7e authored by Sinan Sahin's avatar Sinan Sahin Committed by Commit Bot

[Offline indicator v2] Add instrumentation test for NTP

Bug: 1088069
Change-Id: I37b24a8f374d36f6d49d306748f59187b21e23d9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2225552Reviewed-by: default avatarTheresa  <twellington@chromium.org>
Commit-Queue: Sinan Sahin <sinansahin@google.com>
Cr-Commit-Position: refs/heads/master@{#774439}
parent d71a9647
...@@ -925,6 +925,7 @@ android_library("chrome_test_java") { ...@@ -925,6 +925,7 @@ android_library("chrome_test_java") {
"//chrome/browser/ui/android/appmenu:java", "//chrome/browser/ui/android/appmenu:java",
"//chrome/browser/ui/android/appmenu/test:test_support_java", "//chrome/browser/ui/android/appmenu/test:test_support_java",
"//chrome/browser/ui/android/favicon:java", "//chrome/browser/ui/android/favicon:java",
"//chrome/browser/ui/android/native_page:java",
"//chrome/browser/ui/messages/android:java", "//chrome/browser/ui/messages/android:java",
"//chrome/browser/util:java", "//chrome/browser/util:java",
"//chrome/test:sync_integration_test_support_java", "//chrome/test:sync_integration_test_support_java",
......
...@@ -36,11 +36,14 @@ import org.chromium.chrome.R; ...@@ -36,11 +36,14 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.flags.ChromeSwitches; import org.chromium.chrome.browser.flags.ChromeSwitches;
import org.chromium.chrome.browser.fullscreen.ChromeFullscreenManager; import org.chromium.chrome.browser.fullscreen.ChromeFullscreenManager;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tabbed_mode.TabbedRootUiCoordinator; import org.chromium.chrome.browser.tabbed_mode.TabbedRootUiCoordinator;
import org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper; import org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper;
import org.chromium.chrome.test.ChromeJUnit4ClassRunner; import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
import org.chromium.chrome.test.ChromeTabbedActivityTestRule; import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
import org.chromium.chrome.test.util.NewTabPageTestUtils;
import org.chromium.chrome.test.util.browser.Features; import org.chromium.chrome.test.util.browser.Features;
import org.chromium.components.embedder_support.util.UrlConstants;
import org.chromium.content_public.browser.test.util.Criteria; import org.chromium.content_public.browser.test.util.Criteria;
import org.chromium.content_public.browser.test.util.CriteriaHelper; import org.chromium.content_public.browser.test.util.CriteriaHelper;
import org.chromium.content_public.browser.test.util.TestThreadUtils; import org.chromium.content_public.browser.test.util.TestThreadUtils;
...@@ -195,6 +198,48 @@ public class StatusIndicatorTest { ...@@ -195,6 +198,48 @@ public class StatusIndicatorTest {
.check(matches(withTopMargin(mFullscreenManager.getTopControlsHeight()))); .check(matches(withTopMargin(mFullscreenManager.getTopControlsHeight())));
} }
@Test
@MediumTest
public void testShowAndHideOnNTP() {
mActivityTestRule.loadUrl(UrlConstants.NTP_URL);
Tab tab = mActivityTestRule.getActivity().getActivityTab();
NewTabPageTestUtils.waitForNtpLoaded(tab);
final int viewId = View.generateViewId();
final View view = tab.getNativePage().getView();
view.setId(viewId);
onView(withId(R.id.status_indicator)).check(matches(withEffectiveVisibility(GONE)));
onView(withId(R.id.control_container)).check(matches(withTopMargin(0)));
onView(withId(viewId)).check(matches(withTopMargin(0)));
Assert.assertFalse("Wrong initial composited view visibility.",
mStatusIndicatorSceneLayer.isSceneOverlayTreeShowing());
TestThreadUtils.runOnUiThreadBlocking(() -> mStatusIndicatorCoordinator.show(
"Status", null, Color.BLACK, Color.WHITE, Color.WHITE));
// The status indicator will be immediately visible.
onView(withId(R.id.status_indicator)).check(matches(withEffectiveVisibility(VISIBLE)));
onView(withId(R.id.control_container))
.check(matches(withTopMargin(mStatusIndicatorContainer.getHeight())));
onView(withId(viewId)).check(matches(withTopMargin(mStatusIndicatorContainer.getHeight())));
TestThreadUtils.runOnUiThreadBlocking(
() -> mStatusIndicatorCoordinator.updateContent("Exit status", null,
Color.WHITE, Color.BLACK, Color.BLACK, () -> {}));
// #updateContent shouldn't change the layout.
onView(withId(R.id.status_indicator)).check(matches(withEffectiveVisibility(VISIBLE)));
onView(withId(R.id.control_container))
.check(matches(withTopMargin(mStatusIndicatorContainer.getHeight())));
onView(withId(viewId)).check(matches(withTopMargin(mStatusIndicatorContainer.getHeight())));
TestThreadUtils.runOnUiThreadBlocking(() -> mStatusIndicatorCoordinator.hide());
onView(withId(R.id.status_indicator)).check(matches(withEffectiveVisibility(GONE)));
onView(withId(R.id.control_container)).check(matches(withTopMargin(0)));
onView(withId(viewId)).check(matches(withTopMargin(0)));
}
private static Matcher<View> withTopMargin(final int expected) { private static Matcher<View> withTopMargin(final int expected) {
return new TypeSafeMatcher<View>() { return new TypeSafeMatcher<View>() {
private int mActual; private int mActual;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment