Commit 5f5c6c4b authored by Sky Malice's avatar Sky Malice Committed by Commit Bot

Revert "[Android][Signin] Fix bookmark signin promo dismiss tests"

This reverts commit 04962c50.

Reason for revert: Test failures, see https://ci.chromium.org/p/chromium/builders/ci/Lollipop%20Tablet%20Tester/14131

Original change's description:
> [Android][Signin] Fix bookmark signin promo dismiss tests
> 
> This CL fixes the bookmark signin promo tests when the promo is
> dismissed in different scenarios.
> 
> Bug: 789531
> Change-Id: I852e60cb3e56f9db737cb0e03073d36373908f68
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1883628
> Reviewed-by: Boris Sazonov <bsazonov@chromium.org>
> Reviewed-by: Theresa  <twellington@chromium.org>
> Commit-Queue: Alice Wang <aliceywang@chromium.org>
> Auto-Submit: Alice Wang <aliceywang@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#710784}

TBR=twellington@chromium.org,bsazonov@chromium.org,aliceywang@chromium.org

Change-Id: I68d849103de344e495520b8c015edfba75fd6388
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 789531
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1890506Reviewed-by: default avatarSky Malice <skym@chromium.org>
Commit-Queue: Sky Malice <skym@chromium.org>
Cr-Commit-Position: refs/heads/master@{#710853}
parent 93f3e4c1
...@@ -59,7 +59,6 @@ chrome_test_java_sources = [ ...@@ -59,7 +59,6 @@ chrome_test_java_sources = [
"javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkBridgeTest.java", "javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkBridgeTest.java",
"javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkModelTest.java", "javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkModelTest.java",
"javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkPersonalizedSigninPromoTest.java", "javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkPersonalizedSigninPromoTest.java",
"javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkPersonalizedSigninPromoDismissTest.java",
"javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkReorderTest.java", "javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkReorderTest.java",
"javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkTest.java", "javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkTest.java",
"javatests/src/org/chromium/chrome/browser/browserservices/OriginVerifierTest.java", "javatests/src/org/chromium/chrome/browser/browserservices/OriginVerifierTest.java",
......
...@@ -46,8 +46,7 @@ public class SigninPromoController { ...@@ -46,8 +46,7 @@ public class SigninPromoController {
private static final String SIGNIN_PROMO_IMPRESSIONS_COUNT_SETTINGS = private static final String SIGNIN_PROMO_IMPRESSIONS_COUNT_SETTINGS =
"signin_promo_impressions_count_settings"; "signin_promo_impressions_count_settings";
@VisibleForTesting private static final int MAX_IMPRESSIONS_BOOKMARKS = 20;
public static final int MAX_IMPRESSIONS_BOOKMARKS = 20;
private static final int MAX_IMPRESSIONS_SETTINGS = 20; private static final int MAX_IMPRESSIONS_SETTINGS = 20;
private @Nullable DisplayableProfileData mProfileData; private @Nullable DisplayableProfileData mProfileData;
...@@ -353,14 +352,7 @@ public class SigninPromoController { ...@@ -353,14 +352,7 @@ public class SigninPromoController {
} }
@VisibleForTesting @VisibleForTesting
public static void setSigninPromoImpressionsCountBookmarksForTest(int count) { public static int getMaxImpressionsBookmarksForTests() {
SharedPreferences preferences = ContextUtils.getAppSharedPreferences(); return MAX_IMPRESSIONS_BOOKMARKS;
preferences.edit().putInt(SIGNIN_PROMO_IMPRESSIONS_COUNT_BOOKMARKS, count).apply();
}
@VisibleForTesting
public static int getSigninPromoImpressionsCountBookmarksForTest() {
return ContextUtils.getAppSharedPreferences().getInt(
SIGNIN_PROMO_IMPRESSIONS_COUNT_BOOKMARKS, 0);
} }
} }
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.bookmarks;
import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.action.ViewActions.click;
import static android.support.test.espresso.assertion.ViewAssertions.doesNotExist;
import static android.support.test.espresso.assertion.ViewAssertions.matches;
import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
import static android.support.test.espresso.matcher.ViewMatchers.withEffectiveVisibility;
import static android.support.test.espresso.matcher.ViewMatchers.withId;
import static org.junit.Assert.assertEquals;
import android.support.test.InstrumentationRegistry;
import android.support.test.espresso.matcher.ViewMatchers;
import android.support.test.filters.MediumTest;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.chromium.base.test.util.CommandLineFlags;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.ChromeSwitches;
import org.chromium.chrome.browser.ChromeTabbedActivity;
import org.chromium.chrome.browser.signin.SigninPromoController;
import org.chromium.chrome.test.ChromeActivityTestRule;
import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
import org.chromium.chrome.test.util.BookmarkTestUtil;
import org.chromium.chrome.test.util.ChromeTabUtils;
/**
* Tests different scenarios when the bookmark personalized signin promo is not shown.
*/
@RunWith(ChromeJUnit4ClassRunner.class)
@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE})
public class BookmarkPersonalizedSigninPromoDismissTest {
@Rule
public final ChromeActivityTestRule<ChromeActivity> mActivityTestRule =
new ChromeActivityTestRule<>(ChromeActivity.class);
@Before
public void setUp() {
SigninPromoController.setSigninPromoImpressionsCountBookmarksForTest(0);
mActivityTestRule.startMainActivityFromLauncher();
}
@After
public void tearDown() {
SigninPromoController.setSigninPromoImpressionsCountBookmarksForTest(0);
}
@Test
@MediumTest
public void testPromoNotShownAfterBeingDismissed() {
BookmarkTestUtil.showBookmarkManager(mActivityTestRule.getActivity());
onView(withId(R.id.signin_promo_view_container)).check(matches(isDisplayed()));
onView(withId(R.id.signin_promo_close_button)).perform(click());
onView(withId(R.id.signin_promo_view_container))
.check(matches(withEffectiveVisibility(ViewMatchers.Visibility.GONE)));
closeBookmarkManager();
BookmarkTestUtil.showBookmarkManager(mActivityTestRule.getActivity());
onView(withId(R.id.signin_promo_view_container)).check(doesNotExist());
}
private void closeBookmarkManager() {
if (mActivityTestRule.getActivity().isTablet()) {
ChromeTabbedActivity chromeTabbedActivity =
(ChromeTabbedActivity) mActivityTestRule.getActivity();
ChromeTabUtils.closeCurrentTab(
InstrumentationRegistry.getInstrumentation(), chromeTabbedActivity);
} else {
onView(withId(R.id.close_menu_id)).perform(click());
}
}
@Test
@MediumTest
public void testPromoNotExistWhenImpressionLimitReached() {
SigninPromoController.setSigninPromoImpressionsCountBookmarksForTest(
SigninPromoController.MAX_IMPRESSIONS_BOOKMARKS);
BookmarkTestUtil.showBookmarkManager(mActivityTestRule.getActivity());
onView(withId(R.id.signin_promo_view_container)).check(doesNotExist());
}
@Test
@MediumTest
public void testPromoImpressionCountIncrementAfterDisplayingSigninPromo() {
assertEquals(0, SigninPromoController.getSigninPromoImpressionsCountBookmarksForTest());
BookmarkTestUtil.showBookmarkManager(mActivityTestRule.getActivity());
onView(withId(R.id.signin_promo_view_container)).check(matches(isDisplayed()));
assertEquals(1, SigninPromoController.getSigninPromoImpressionsCountBookmarksForTest());
}
}
...@@ -5,7 +5,9 @@ ...@@ -5,7 +5,9 @@
package org.chromium.chrome.browser.bookmarks; package org.chromium.chrome.browser.bookmarks;
import static android.support.test.espresso.Espresso.onView; import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.Espresso.pressBack;
import static android.support.test.espresso.action.ViewActions.click; import static android.support.test.espresso.action.ViewActions.click;
import static android.support.test.espresso.assertion.ViewAssertions.doesNotExist;
import static android.support.test.espresso.assertion.ViewAssertions.matches; import static android.support.test.espresso.assertion.ViewAssertions.matches;
import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
import static android.support.test.espresso.matcher.ViewMatchers.withId; import static android.support.test.espresso.matcher.ViewMatchers.withId;
...@@ -19,8 +21,8 @@ import static org.mockito.Mockito.mock; ...@@ -19,8 +21,8 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import android.accounts.Account; import android.accounts.Account;
import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.support.test.filters.LargeTest;
import android.support.test.filters.MediumTest; import android.support.test.filters.MediumTest;
import org.junit.After; import org.junit.After;
...@@ -30,10 +32,13 @@ import org.junit.Test; ...@@ -30,10 +32,13 @@ import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.CommandLineFlags;
import org.chromium.base.test.util.DisableIf;
import org.chromium.base.test.util.DisabledTest;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeActivity; import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.ChromeSwitches; import org.chromium.chrome.browser.ChromeSwitches;
import org.chromium.chrome.browser.signin.SigninActivityLauncher; import org.chromium.chrome.browser.signin.SigninActivityLauncher;
import org.chromium.chrome.browser.signin.SigninPromoController;
import org.chromium.chrome.test.ChromeActivityTestRule; import org.chromium.chrome.test.ChromeActivityTestRule;
import org.chromium.chrome.test.ChromeJUnit4ClassRunner; import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
import org.chromium.chrome.test.util.BookmarkTestUtil; import org.chromium.chrome.test.util.BookmarkTestUtil;
...@@ -43,6 +48,8 @@ import org.chromium.components.signin.metrics.SigninAccessPoint; ...@@ -43,6 +48,8 @@ import org.chromium.components.signin.metrics.SigninAccessPoint;
import org.chromium.components.signin.test.util.AccountHolder; import org.chromium.components.signin.test.util.AccountHolder;
import org.chromium.components.signin.test.util.AccountManagerTestRule; import org.chromium.components.signin.test.util.AccountManagerTestRule;
import org.chromium.components.signin.test.util.FakeAccountManagerDelegate; import org.chromium.components.signin.test.util.FakeAccountManagerDelegate;
import org.chromium.content_public.browser.test.util.TestThreadUtils;
import org.chromium.ui.test.util.UiDisableIf;
/** /**
* Tests for the personalized signin promo on the Bookmarks page. * Tests for the personalized signin promo on the Bookmarks page.
...@@ -78,6 +85,31 @@ public class BookmarkPersonalizedSigninPromoTest { ...@@ -78,6 +85,31 @@ public class BookmarkPersonalizedSigninPromoTest {
BookmarkPromoHeader.forcePromoStateForTests(null); BookmarkPromoHeader.forcePromoStateForTests(null);
} }
@Test
@MediumTest
@DisabledTest(message = "crbug.com/789531")
public void testManualDismissPromo() {
openBookmarkManager();
onView(withId(R.id.signin_promo_view_container)).check(matches(isDisplayed()));
onView(withId(R.id.signin_promo_close_button)).perform(click());
onView(withId(R.id.signin_promo_view_container)).check(doesNotExist());
}
@Test
@LargeTest
@DisableIf.Device(type = {UiDisableIf.TABLET}) // https://crbug.com/776405.
@DisabledTest(message = "crbug.com/789531")
public void testAutoDismissPromo() {
int impressionCap = SigninPromoController.getMaxImpressionsBookmarksForTests();
for (int impression = 0; impression < impressionCap; impression++) {
openBookmarkManager();
onView(withId(R.id.signin_promo_view_container)).check(matches(isDisplayed()));
pressBack();
}
openBookmarkManager();
onView(withId(R.id.signin_promo_view_container)).check(doesNotExist());
}
@Test @Test
@MediumTest @MediumTest
public void testSigninButtonDefaultAccount() { public void testSigninButtonDefaultAccount() {
...@@ -85,10 +117,10 @@ public class BookmarkPersonalizedSigninPromoTest { ...@@ -85,10 +117,10 @@ public class BookmarkPersonalizedSigninPromoTest {
.when(SigninActivityLauncher.get()) .when(SigninActivityLauncher.get())
.launchActivityForPromoDefaultFlow(any(Context.class), anyInt(), anyString()); .launchActivityForPromoDefaultFlow(any(Context.class), anyInt(), anyString());
addTestAccount(); addTestAccount();
showBookmarkManagerAndCheckSigninPromoIsDisplayed(); openBookmarkManagerAndCheckSigninPromoIsDisplayed();
onView(withId(R.id.signin_promo_signin_button)).perform(click()); onView(withId(R.id.signin_promo_signin_button)).perform(click());
verify(mMockSigninActivityLauncher) verify(mMockSigninActivityLauncher)
.launchActivityForPromoDefaultFlow(any(Activity.class), .launchActivityForPromoDefaultFlow(any(BookmarkActivity.class),
eq(SigninAccessPoint.BOOKMARK_MANAGER), eq(TEST_ACCOUNT_NAME)); eq(SigninAccessPoint.BOOKMARK_MANAGER), eq(TEST_ACCOUNT_NAME));
} }
...@@ -99,10 +131,10 @@ public class BookmarkPersonalizedSigninPromoTest { ...@@ -99,10 +131,10 @@ public class BookmarkPersonalizedSigninPromoTest {
.when(SigninActivityLauncher.get()) .when(SigninActivityLauncher.get())
.launchActivityForPromoChooseAccountFlow(any(Context.class), anyInt(), anyString()); .launchActivityForPromoChooseAccountFlow(any(Context.class), anyInt(), anyString());
addTestAccount(); addTestAccount();
showBookmarkManagerAndCheckSigninPromoIsDisplayed(); openBookmarkManagerAndCheckSigninPromoIsDisplayed();
onView(withId(R.id.signin_promo_choose_account_button)).perform(click()); onView(withId(R.id.signin_promo_choose_account_button)).perform(click());
verify(mMockSigninActivityLauncher) verify(mMockSigninActivityLauncher)
.launchActivityForPromoChooseAccountFlow(any(Activity.class), .launchActivityForPromoChooseAccountFlow(any(BookmarkActivity.class),
eq(SigninAccessPoint.BOOKMARK_MANAGER), eq(TEST_ACCOUNT_NAME)); eq(SigninAccessPoint.BOOKMARK_MANAGER), eq(TEST_ACCOUNT_NAME));
} }
...@@ -112,18 +144,24 @@ public class BookmarkPersonalizedSigninPromoTest { ...@@ -112,18 +144,24 @@ public class BookmarkPersonalizedSigninPromoTest {
doNothing() doNothing()
.when(SigninActivityLauncher.get()) .when(SigninActivityLauncher.get())
.launchActivityForPromoAddAccountFlow(any(Context.class), anyInt()); .launchActivityForPromoAddAccountFlow(any(Context.class), anyInt());
showBookmarkManagerAndCheckSigninPromoIsDisplayed(); openBookmarkManagerAndCheckSigninPromoIsDisplayed();
onView(withId(R.id.signin_promo_signin_button)).perform(click()); onView(withId(R.id.signin_promo_signin_button)).perform(click());
verify(mMockSigninActivityLauncher) verify(mMockSigninActivityLauncher)
.launchActivityForPromoAddAccountFlow( .launchActivityForPromoAddAccountFlow(
any(Activity.class), eq(SigninAccessPoint.BOOKMARK_MANAGER)); any(BookmarkActivity.class), eq(SigninAccessPoint.BOOKMARK_MANAGER));
} }
private void showBookmarkManagerAndCheckSigninPromoIsDisplayed() { private void openBookmarkManagerAndCheckSigninPromoIsDisplayed() {
BookmarkTestUtil.showBookmarkManager(mActivityTestRule.getActivity()); openBookmarkManager();
onView(withId(R.id.signin_promo_view_container)).check(matches(isDisplayed())); onView(withId(R.id.signin_promo_view_container)).check(matches(isDisplayed()));
} }
private void openBookmarkManager() {
TestThreadUtils.runOnUiThreadBlocking(
() -> BookmarkUtils.showBookmarkManager(mActivityTestRule.getActivity()));
BookmarkTestUtil.waitForBookmarkModelLoaded();
}
private void addTestAccount() { private void addTestAccount() {
Account account = AccountManagerFacade.createAccountFromName(TEST_ACCOUNT_NAME); Account account = AccountManagerFacade.createAccountFromName(TEST_ACCOUNT_NAME);
AccountHolder.Builder accountHolder = AccountHolder.builder(account).alwaysAccept(true); AccountHolder.Builder accountHolder = AccountHolder.builder(account).alwaysAccept(true);
......
...@@ -4,9 +4,7 @@ ...@@ -4,9 +4,7 @@
package org.chromium.chrome.test.util; package org.chromium.chrome.test.util;
import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.bookmarks.BookmarkModel; import org.chromium.chrome.browser.bookmarks.BookmarkModel;
import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
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;
...@@ -27,12 +25,4 @@ public class BookmarkTestUtil { ...@@ -27,12 +25,4 @@ public class BookmarkTestUtil {
TestThreadUtils.runOnUiThreadBlocking(bookmarkModel::destroy); TestThreadUtils.runOnUiThreadBlocking(bookmarkModel::destroy);
} }
/**
* Show BookmarkManager and wait till the bookmark model is loaded.
*/
public static void showBookmarkManager(ChromeActivity activity) {
TestThreadUtils.runOnUiThreadBlocking(() -> BookmarkUtils.showBookmarkManager(activity));
waitForBookmarkModelLoaded();
}
} }
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