Commit e2cefcff authored by Chris Lu's avatar Chris Lu Committed by Commit Bot

[ios] Do not call InfoBarDismissed forSaveCard banner dismissal

For most Infobars, a banner dismissal should call
InfobarDelegate::InfobarDismised(). But for SaveCard InfobarDismissed
executes the completion callback, because it assumes a dismissal
means the user closed out the UI.

Bug: 1119907
Change-Id: I91799342554041beea8efe0b2693e635f3e5a218
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2376451
Commit-Queue: Chris Lu <thegreenfrog@chromium.org>
Commit-Queue: Sergio Collazos <sczs@chromium.org>
Auto-Submit: Chris Lu <thegreenfrog@chromium.org>
Reviewed-by: default avatarSergio Collazos <sczs@chromium.org>
Cr-Commit-Position: refs/heads/master@{#801609}
parent e3856d46
...@@ -31,6 +31,10 @@ class SaveCardInfobarBannerInteractionHandler ...@@ -31,6 +31,10 @@ class SaveCardInfobarBannerInteractionHandler
base::string16 expiration_date_month, base::string16 expiration_date_month,
base::string16 expiration_date_year); base::string16 expiration_date_year);
// Overrides InfobarBannerInteractionHandler implementation because a banner
// dismissal should not call InfoBarDismissed();
void BannerDismissedByUser(InfoBarIOS* infobar) override {}
private: private:
// InfobarBannerInteractionHandler: // InfobarBannerInteractionHandler:
std::unique_ptr<InfobarBannerOverlayRequestCallbackInstaller> std::unique_ptr<InfobarBannerOverlayRequestCallbackInstaller>
......
...@@ -60,3 +60,11 @@ TEST_F(SaveCardInfobarBannerInteractionHandlerTest, SaveCredentials) { ...@@ -60,3 +60,11 @@ TEST_F(SaveCardInfobarBannerInteractionHandlerTest, SaveCredentials) {
handler_.SaveCredentials(infobar_.get(), cardholder_name, handler_.SaveCredentials(infobar_.get(), cardholder_name,
expiration_date_month, expiration_date_year); expiration_date_month, expiration_date_year);
} }
// Test that dismissing the banner does not call
// InfobarDelegate::InfobarDismissed(), which is a behavior for the other
// Infobars.
TEST_F(SaveCardInfobarBannerInteractionHandlerTest, DismissalNoDelegateCall) {
EXPECT_CALL(mock_delegate(), InfoBarDismissed()).Times(0);
handler_.BannerDismissedByUser(infobar_.get());
}
...@@ -39,6 +39,7 @@ class MockAutofillSaveCardInfoBarDelegateMobile ...@@ -39,6 +39,7 @@ class MockAutofillSaveCardInfoBarDelegateMobile
base::string16 expiration_date_month, base::string16 expiration_date_month,
base::string16 expiration_date_year)); base::string16 expiration_date_year));
MOCK_METHOD1(OnLegalMessageLinkClicked, void(GURL url)); MOCK_METHOD1(OnLegalMessageLinkClicked, void(GURL url));
MOCK_METHOD0(InfoBarDismissed, void());
}; };
class MockAutofillSaveCardInfoBarDelegateMobileFactory { class MockAutofillSaveCardInfoBarDelegateMobileFactory {
......
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