Commit af549754 authored by Yue Zhang's avatar Yue Zhang Committed by Commit Bot

Add render tests for TabGridDialog

This CL adds e2e test to cover item 1.6.15 in
https://testtracker.googleplex.com/testplans/details/32981.

Bug: 1105511
Change-Id: Ib19c38b064d0fd201918af0bee0584170db72786
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2296343
Commit-Queue: Yue Zhang <yuezhanggg@chromium.org>
Reviewed-by: default avatarWei-Yin Chen (陳威尹) <wychen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#789712}
parent 0e57dc2f
......@@ -33,6 +33,7 @@ import static org.chromium.chrome.browser.flags.ChromeFeatureList.TAB_GRID_LAYOU
import static org.chromium.chrome.browser.flags.ChromeFeatureList.TAB_GROUPS_ANDROID;
import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.clickFirstCardFromTabSwitcher;
import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.clickFirstTabInDialog;
import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.clickNthTabInDialog;
import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.closeFirstTabInDialog;
import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.closeNthTabInDialog;
import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.createTabs;
......@@ -41,6 +42,7 @@ import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.g
import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.mergeAllNormalTabsToAGroup;
import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.prepareTabsWithThumbnail;
import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.rotateDeviceToOrientation;
import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.verifyAllTabsHaveThumbnail;
import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.verifyTabStripFaviconCount;
import static org.chromium.chrome.browser.tasks.tab_management.TabUiTestHelper.verifyTabSwitcherCardCount;
......@@ -64,33 +66,41 @@ import androidx.test.filters.MediumTest;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestRule;
import org.junit.runner.RunWith;
import org.chromium.base.test.params.ParameterAnnotations;
import org.chromium.base.test.params.ParameterizedRunner;
import org.chromium.base.test.util.CommandLineFlags;
import org.chromium.base.test.util.Feature;
import org.chromium.base.test.util.Restriction;
import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.ChromeTabbedActivity;
import org.chromium.chrome.browser.compositor.layouts.Layout;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.flags.ChromeSwitches;
import org.chromium.chrome.browser.night_mode.ChromeNightModeTestUtils;
import org.chromium.chrome.browser.tasks.tab_groups.TabGroupModelFilter;
import org.chromium.chrome.features.start_surface.StartSurfaceLayout;
import org.chromium.chrome.tab_ui.R;
import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
import org.chromium.chrome.test.ChromeJUnit4RunnerDelegate;
import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
import org.chromium.chrome.test.util.ChromeRenderTestRule;
import org.chromium.chrome.test.util.browser.Features;
import org.chromium.content_public.browser.test.util.CriteriaHelper;
import org.chromium.content_public.browser.test.util.TestThreadUtils;
import org.chromium.ui.test.util.NightModeTestUtils;
import org.chromium.ui.test.util.UiRestriction;
import java.util.concurrent.ExecutionException;
/** End-to-end tests for TabGridDialog component. */
@RunWith(ChromeJUnit4ClassRunner.class)
// clang-format off
@RunWith(ParameterizedRunner.class)
@ParameterAnnotations.UseRunnerDelegate(ChromeJUnit4RunnerDelegate.class)
@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE})
@Restriction(UiRestriction.RESTRICTION_TYPE_PHONE)
@Features.EnableFeatures({TAB_GRID_LAYOUT_ANDROID, TAB_GROUPS_ANDROID})
......@@ -106,6 +116,10 @@ public class TabGridDialogTest {
@Rule
public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule();
@Rule
public ChromeRenderTestRule mRenderTestRule =
ChromeRenderTestRule.Builder.withPublicCorpus().build();
@Rule
public TestRule mProcessor = new Features.InstrumentationProcessor();
......@@ -113,6 +127,17 @@ public class TabGridDialogTest {
public IntentsTestRule<ChromeActivity> mShareActivityTestRule =
new IntentsTestRule<>(ChromeActivity.class, false, false);
@BeforeClass
public static void setUpBeforeActivityLaunched() {
ChromeNightModeTestUtils.setUpNightModeBeforeChromeActivityLaunched();
}
@ParameterAnnotations.UseMethodParameterBefore(NightModeTestUtils.NightModeParams.class)
public void setupNightMode(boolean nightModeEnabled) {
ChromeNightModeTestUtils.setUpNightModeForChromeActivity(nightModeEnabled);
mRenderTestRule.setNightModeEnabled(nightModeEnabled);
}
@Before
public void setUp() {
TabUiFeatureUtilities.setTabManagementModuleSupportedForTesting(true);
......@@ -613,6 +638,73 @@ public class TabGridDialogTest {
verifyShowingDialog(cta, 1, null);
}
@Test
@MediumTest
@Feature({"RenderTest"})
@ParameterAnnotations.UseMethodParameter(NightModeTestUtils.NightModeParams.class)
public void testRenderDialog_3Tabs_Portrait(boolean nightModeEnabled) throws Exception {
final ChromeTabbedActivity cta = mActivityTestRule.getActivity();
prepareTabsWithThumbnail(mActivityTestRule, 3, 0, "about:blank");
enterTabSwitcher(cta);
verifyTabSwitcherCardCount(cta, 3);
verifyAllTabsHaveThumbnail(cta.getCurrentTabModel());
// Create a tab group.
mergeAllNormalTabsToAGroup(cta);
verifyTabSwitcherCardCount(cta, 1);
openDialogFromTabSwitcherAndVerify(cta, 3, null);
View dialogView = cta.findViewById(R.id.dialog_parent_view);
mRenderTestRule.render(dialogView, "3_tabs_portrait");
}
@Test
@MediumTest
@Feature({"RenderTest"})
@ParameterAnnotations.UseMethodParameter(NightModeTestUtils.NightModeParams.class)
public void testRenderDialog_3Tabs_Landscape(boolean nightModeEnabled) throws Exception {
final ChromeTabbedActivity cta = mActivityTestRule.getActivity();
prepareTabsWithThumbnail(mActivityTestRule, 3, 0, "about:blank");
enterTabSwitcher(cta);
verifyTabSwitcherCardCount(cta, 3);
verifyAllTabsHaveThumbnail(cta.getCurrentTabModel());
// Rotate to landscape mode and create a tab group.
rotateDeviceToOrientation(cta, Configuration.ORIENTATION_LANDSCAPE);
mergeAllNormalTabsToAGroup(cta);
verifyTabSwitcherCardCount(cta, 1);
openDialogFromTabSwitcherAndVerify(cta, 3, null);
View dialogView = cta.findViewById(R.id.dialog_parent_view);
mRenderTestRule.render(dialogView, "3_tabs_landscape");
}
@Test
@MediumTest
@Feature({"RenderTest"})
@ParameterAnnotations.UseMethodParameter(NightModeTestUtils.NightModeParams.class)
public void testRenderDialog_5Tabs_InitialScroll(boolean nightModeEnabled) throws Exception {
final ChromeTabbedActivity cta = mActivityTestRule.getActivity();
prepareTabsWithThumbnail(mActivityTestRule, 5, 0, "about:blank");
enterTabSwitcher(cta);
verifyTabSwitcherCardCount(cta, 5);
verifyAllTabsHaveThumbnail(cta.getCurrentTabModel());
// Create a tab group.
mergeAllNormalTabsToAGroup(cta);
verifyTabSwitcherCardCount(cta, 1);
openDialogFromTabSwitcherAndVerify(cta, 5, null);
// Select the last tab and reopen the dialog. Verify that the dialog has scrolled to the
// correct position.
clickNthTabInDialog(cta, 4);
enterTabSwitcher(cta);
openDialogFromTabSwitcherAndVerify(cta, 5, null);
View dialogView = cta.findViewById(R.id.dialog_parent_view);
mRenderTestRule.render(dialogView, "5_tabs_select_last");
}
private void openDialogFromTabSwitcherAndVerify(
ChromeTabbedActivity cta, int tabCount, String customizedTitle) {
clickFirstCardFromTabSwitcher(cta);
......
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