| Index: chrome/browser/ui/autofill/autofill_dialog_controller_unittest.cc
|
| diff --git a/chrome/browser/ui/autofill/autofill_dialog_controller_unittest.cc b/chrome/browser/ui/autofill/autofill_dialog_controller_unittest.cc
|
| index f73d91fec9333a532514cff5d4f35baec4b46248..27fd2ec742b0e67581bc1c31d65d4f9f10696321 100644
|
| --- a/chrome/browser/ui/autofill/autofill_dialog_controller_unittest.cc
|
| +++ b/chrome/browser/ui/autofill/autofill_dialog_controller_unittest.cc
|
| @@ -338,6 +338,10 @@ class AutofillDialogControllerTest : public testing::Test {
|
| test_web_contents_.reset(
|
| content::WebContentsTester::CreateTestWebContents(profile(), NULL));
|
|
|
| + // Don't get stuck on the first run wallet interstitial.
|
| + profile()->GetPrefs()->SetBoolean(::prefs::kAutofillDialogHasPaidWithWallet,
|
| + true);
|
| +
|
| SetUpControllerWithFormData(DefaultFormData());
|
| }
|
|
|
| @@ -1634,8 +1638,11 @@ TEST_F(AutofillDialogControllerTest, WalletServerSideValidationUnrecoverable) {
|
| TEST_F(AutofillDialogControllerTest, WalletBanners) {
|
| CommandLine* command_line = CommandLine::ForCurrentProcess();
|
| command_line->AppendSwitch(switches::kWalletServiceUseProd);
|
| - PrefService* prefs = controller()->profile()->GetPrefs();
|
| - ASSERT_FALSE(prefs->GetBoolean(::prefs::kAutofillDialogHasPaidWithWallet));
|
| + PrefService* prefs = profile()->GetPrefs();
|
| +
|
| + // Simulate first run.
|
| + prefs->SetBoolean(::prefs::kAutofillDialogHasPaidWithWallet, false);
|
| + SetUpControllerWithFormData(DefaultFormData());
|
|
|
| EXPECT_EQ(0U, NotificationsOfType(
|
| DialogNotification::EXPLANATORY_MESSAGE).size());
|
| @@ -1743,6 +1750,12 @@ TEST_F(AutofillDialogControllerTest, OnAutocheckoutSuccess) {
|
| command_line->AppendSwitch(switches::kWalletServiceUseProd);
|
| controller()->set_dialog_type(DIALOG_TYPE_AUTOCHECKOUT);
|
|
|
| + // Simulate first run.
|
| + profile()->GetPrefs()->SetBoolean(::prefs::kAutofillDialogHasPaidWithWallet,
|
| + false);
|
| + SetUpControllerWithFormData(DefaultFormData());
|
| + controller()->set_dialog_type(DIALOG_TYPE_AUTOCHECKOUT);
|
| +
|
| // Sign in a user with a completed account.
|
| controller()->OnDidGetWalletItems(CompleteAndValidWalletItems());
|
|
|
| @@ -1754,6 +1767,7 @@ TEST_F(AutofillDialogControllerTest, OnAutocheckoutSuccess) {
|
|
|
| AcceptAndLoadFakeFingerprint();
|
| controller()->OnDidGetFullWallet(wallet::GetTestFullWallet());
|
| + controller()->OverlayButtonPressed();
|
|
|
| EXPECT_EQ(0U, NotificationsOfType(
|
| DialogNotification::EXPLANATORY_MESSAGE).size());
|
| @@ -1795,6 +1809,51 @@ TEST_F(AutofillDialogControllerTest, SubmitWithSigninErrorDoesntSetPref) {
|
| ::prefs::kAutofillDialogPayWithoutWallet));
|
| }
|
|
|
| +// Tests that there's an overlay shown while waiting for full wallet items,
|
| +// and on first run an additional expository wallet overlay shown after full
|
| +// wallet items are returned.
|
| +// TODO(estade): enable on other platforms when overlays are supported there.
|
| +#if defined(TOOLKIT_VIEWS)
|
| +TEST_F(AutofillDialogControllerTest, WalletFirstRun) {
|
| + // Simulate first run.
|
| + PrefService* prefs = profile()->GetPrefs();
|
| + prefs->SetBoolean(::prefs::kAutofillDialogHasPaidWithWallet, false);
|
| + SetUpControllerWithFormData(DefaultFormData());
|
| +
|
| + SwitchToWallet();
|
| + EXPECT_TRUE(controller()->GetDialogOverlay().image.IsEmpty());
|
| +
|
| + SubmitWithWalletItems(CompleteAndValidWalletItems());
|
| + EXPECT_FALSE(controller()->GetDialogOverlay().image.IsEmpty());
|
| +
|
| + EXPECT_FALSE(prefs->GetBoolean(::prefs::kAutofillDialogHasPaidWithWallet));
|
| + controller()->OnDidGetFullWallet(wallet::GetTestFullWallet());
|
| + EXPECT_FALSE(prefs->GetBoolean(::prefs::kAutofillDialogHasPaidWithWallet));
|
| + EXPECT_FALSE(controller()->GetDialogOverlay().image.IsEmpty());
|
| + EXPECT_FALSE(form_structure());
|
| +
|
| + controller()->OverlayButtonPressed();
|
| + EXPECT_TRUE(prefs->GetBoolean(::prefs::kAutofillDialogHasPaidWithWallet));
|
| + EXPECT_TRUE(form_structure());
|
| +}
|
| +#endif
|
| +
|
| +// On second run, the second overlay doesn't show.
|
| +TEST_F(AutofillDialogControllerTest, WalletSecondRun) {
|
| + SwitchToWallet();
|
| + EXPECT_TRUE(controller()->GetDialogOverlay().image.IsEmpty());
|
| +
|
| + SubmitWithWalletItems(CompleteAndValidWalletItems());
|
| + EXPECT_FALSE(controller()->GetDialogOverlay().image.IsEmpty());
|
| +
|
| + EXPECT_TRUE(profile()->GetPrefs()->GetBoolean(
|
| + ::prefs::kAutofillDialogHasPaidWithWallet));
|
| + controller()->OnDidGetFullWallet(wallet::GetTestFullWallet());
|
| + EXPECT_TRUE(profile()->GetPrefs()->GetBoolean(
|
| + ::prefs::kAutofillDialogHasPaidWithWallet));
|
| + EXPECT_TRUE(form_structure());
|
| +}
|
| +
|
| TEST_F(AutofillDialogControllerTest, ViewSubmitSetsPref) {
|
| ASSERT_FALSE(profile()->GetPrefs()->HasPrefPath(
|
| ::prefs::kAutofillDialogPayWithoutWallet));
|
|
|