Commit 8843210d authored by Alice Wang's avatar Alice Wang Committed by Commit Bot

[Android][Test] Fix flaky bookmark signin promo tests on tablet

This CL fixes the flaky bookmark signin promo tests on tablet by
destroying the activity in SyncTestRule before tearing down the
mock signin environment.

Bug: 1088464, 1088730
Change-Id: Ide2179edc3f4e2ddd1e115d7b8aa512976dca548
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2224258
Commit-Queue: Alice Wang <aliceywang@chromium.org>
Reviewed-by: default avatarTanmoy Mollik <triploblastic@chromium.org>
Reviewed-by: default avatarBoris Sazonov <bsazonov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#774096}
parent 733f83b1
......@@ -24,7 +24,6 @@ import org.junit.rules.RuleChain;
import org.junit.runner.RunWith;
import org.chromium.base.test.util.CommandLineFlags;
import org.chromium.base.test.util.DisableIf;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeTabbedActivity;
import org.chromium.chrome.browser.flags.ChromeSwitches;
......@@ -36,7 +35,6 @@ import org.chromium.chrome.test.util.BookmarkTestRule;
import org.chromium.chrome.test.util.BookmarkTestUtil;
import org.chromium.chrome.test.util.ChromeTabUtils;
import org.chromium.content_public.browser.test.util.TestThreadUtils;
import org.chromium.ui.test.util.UiDisableIf;
/**
* Tests different scenarios when the bookmark personalized signin promo is not shown.
......@@ -59,7 +57,6 @@ public class BookmarkPersonalizedSigninPromoDismissTest {
BookmarkPromoHeader.forcePromoStateForTests(null);
BookmarkPromoHeader.setPrefPersonalizedSigninPromoDeclinedForTests(false);
SigninPromoController.setSigninPromoImpressionsCountBookmarksForTests(0);
mSyncTestRule.startMainActivityFromLauncher();
TestThreadUtils.runOnUiThreadBlocking(() -> {
BookmarkModel bookmarkModel = new BookmarkModel(Profile.fromWebContents(
......@@ -77,7 +74,6 @@ public class BookmarkPersonalizedSigninPromoDismissTest {
@Test
@MediumTest
@DisableIf.Device(type = {UiDisableIf.TABLET}) // https://crbug.com/1088730
public void testPromoNotShownAfterBeingDismissed() {
mBookmarkTestRule.showBookmarkManager(mSyncTestRule.getActivity());
onView(withId(R.id.signin_promo_view_container)).check(matches(isDisplayed()));
......@@ -111,7 +107,6 @@ public class BookmarkPersonalizedSigninPromoDismissTest {
@Test
@MediumTest
@DisableIf.Device(type = {UiDisableIf.TABLET}) // https://crbug.com/1088730
public void testPromoImpressionCountIncrementAfterDisplayingSigninPromo() {
assertEquals(0, SigninPromoController.getSigninPromoImpressionsCountBookmarks());
mBookmarkTestRule.showBookmarkManager(mSyncTestRule.getActivity());
......
......@@ -31,7 +31,6 @@ import org.junit.rules.RuleChain;
import org.junit.runner.RunWith;
import org.chromium.base.test.util.CommandLineFlags;
import org.chromium.base.test.util.DisableIf;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.flags.ChromeSwitches;
import org.chromium.chrome.browser.signin.SigninActivityLauncher;
......@@ -40,7 +39,6 @@ import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
import org.chromium.chrome.test.util.BookmarkTestRule;
import org.chromium.chrome.test.util.browser.signin.SigninTestUtil;
import org.chromium.components.signin.metrics.SigninAccessPoint;
import org.chromium.ui.test.util.UiDisableIf;
/**
* Tests for the personalized signin promo on the Bookmarks page.
......@@ -66,7 +64,6 @@ public class BookmarkPersonalizedSigninPromoTest {
BookmarkPromoHeader.forcePromoStateForTests(
BookmarkPromoHeader.PromoState.PROMO_SIGNIN_PERSONALIZED);
SigninActivityLauncher.setLauncherForTest(mMockSigninActivityLauncher);
mSyncTestRule.startMainActivityFromLauncher();
}
@After
......@@ -77,7 +74,6 @@ public class BookmarkPersonalizedSigninPromoTest {
@Test
@MediumTest
@DisableIf.Device(type = {UiDisableIf.TABLET}) // https://crbug.com/1088464
public void testSigninButtonDefaultAccount() {
doNothing()
.when(SigninActivityLauncher.get())
......@@ -92,7 +88,6 @@ public class BookmarkPersonalizedSigninPromoTest {
@Test
@MediumTest
@DisableIf.Device(type = {UiDisableIf.TABLET}) // https://crbug.com/1088464
public void testSigninButtonNotDefaultAccount() {
doNothing()
.when(SigninActivityLauncher.get())
......@@ -107,7 +102,6 @@ public class BookmarkPersonalizedSigninPromoTest {
@Test
@MediumTest
@DisableIf.Device(type = {UiDisableIf.TABLET}) // https://crbug.com/1088464
public void testSigninButtonNewAccount() {
doNothing()
.when(SigninActivityLauncher.get())
......
......@@ -32,6 +32,7 @@ import org.chromium.chrome.browser.signin.IdentityServicesProvider;
import org.chromium.chrome.browser.signin.SigninManager;
import org.chromium.chrome.browser.signin.UnifiedConsentServiceBridge;
import org.chromium.chrome.test.ChromeActivityTestRule;
import org.chromium.chrome.test.util.ApplicationTestUtils;
import org.chromium.chrome.test.util.browser.signin.SigninTestUtil;
import org.chromium.chrome.test.util.browser.sync.SyncTestUtil;
import org.chromium.components.signin.base.CoreAccountInfo;
......@@ -146,7 +147,13 @@ public class SyncTestRule extends ChromeActivityTestRule<ChromeActivity> {
SigninTestUtil.setUpAuthForTesting();
}
private void ruleTearDown() {
private void ruleTearDown() throws Exception {
Activity activity = getActivity();
if (activity != null) {
// Activity needs to be destroyed before tearing down the mock environment in case
// they registered some observers in the mock, e.g. bookmarks on tablet.
ApplicationTestUtils.finishActivity(activity);
}
TestThreadUtils.runOnUiThreadBlocking(() -> {
mProfileSyncService.requestStop();
FakeServerHelper.deleteFakeServer();
......
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