diff options
author | ahutter@chromium.org <ahutter@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-20 17:23:30 +0000 |
---|---|---|
committer | ahutter@chromium.org <ahutter@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-20 17:23:30 +0000 |
commit | 55db64345a0e64831ee42025cbdd9ac3ab21040f (patch) | |
tree | e2a9a3a9e12b3f04762aea56b9cbcbf4d28e99df /components | |
parent | 3735c232ae077e0e14d6884b014be95f12a06f4a (diff) | |
download | chromium_src-55db64345a0e64831ee42025cbdd9ac3ab21040f.zip chromium_src-55db64345a0e64831ee42025cbdd9ac3ab21040f.tar.gz chromium_src-55db64345a0e64831ee42025cbdd9ac3ab21040f.tar.bz2 |
Keep the dialog open after Autocheckout is successful.
Add messaging to inform the user that they still need to confirm their transaction. Fixes up button text and visiblity for Autocheckout.
BUG= 226187
Review URL: https://chromiumcodereview.appspot.com/13579002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@201102 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'components')
5 files changed, 25 insertions, 9 deletions
diff --git a/components/autofill/browser/autocheckout_manager.cc b/components/autofill/browser/autocheckout_manager.cc index f451e79..223c5b6 100644 --- a/components/autofill/browser/autocheckout_manager.cc +++ b/components/autofill/browser/autocheckout_manager.cc @@ -246,7 +246,7 @@ void AutocheckoutManager::OnLoadedPageMetaData( // If the current page is the last page in the flow, close the dialog. if (page_meta_data_->IsEndOfAutofillableFlow()) { SendAutocheckoutStatus(status); - autofill_manager_->delegate()->HideRequestAutocompleteDialog(); + autofill_manager_->delegate()->OnAutocheckoutSuccess(); in_autocheckout_flow_ = false; } } @@ -388,7 +388,7 @@ void AutocheckoutManager::ReturnAutocheckoutData( // If the current page is the last page in the flow, close the dialog. if (page_meta_data_->IsEndOfAutofillableFlow()) { SendAutocheckoutStatus(SUCCESS); - autofill_manager_->delegate()->HideRequestAutocompleteDialog(); + autofill_manager_->delegate()->OnAutocheckoutSuccess(); in_autocheckout_flow_ = false; } } diff --git a/components/autofill/browser/autocheckout_manager_unittest.cc b/components/autofill/browser/autocheckout_manager_unittest.cc index f6a1638..14990ee 100644 --- a/components/autofill/browser/autocheckout_manager_unittest.cc +++ b/components/autofill/browser/autocheckout_manager_unittest.cc @@ -243,6 +243,7 @@ class MockAutofillManagerDelegate : public TestAutofillManagerDelegate { } MOCK_METHOD0(OnAutocheckoutError, void()); + MOCK_METHOD0(OnAutocheckoutSuccess, void()); virtual void ShowAutocheckoutBubble( const gfx::RectF& bounds, @@ -524,7 +525,8 @@ TEST_F(AutocheckoutManagerTest, OnClickFailedTest) { .Times(1); autocheckout_manager_->OnClickFailed(MISSING_ADVANCE); EXPECT_FALSE(autocheckout_manager_->in_autocheckout_flow()); - HideRequestAutocompleteDialog(); + EXPECT_TRUE( + autofill_manager_delegate_->request_autocomplete_dialog_open()); } TEST_F(AutocheckoutManagerTest, MaybeShowAutocheckoutBubbleTest) { @@ -571,7 +573,8 @@ TEST_F(AutocheckoutManagerTest, OnLoadedPageMetaDataMissingMetaData) { scoped_ptr<AutocheckoutPageMetaData>()); EXPECT_FALSE(autocheckout_manager_->in_autocheckout_flow()); EXPECT_EQ(0U, process()->sink().message_count()); - HideRequestAutocompleteDialog(); + EXPECT_TRUE( + autofill_manager_delegate_->request_autocomplete_dialog_open()); } TEST_F(AutocheckoutManagerTest, OnLoadedPageMetaDataRepeatedStartPage) { @@ -585,7 +588,8 @@ TEST_F(AutocheckoutManagerTest, OnLoadedPageMetaDataRepeatedStartPage) { autocheckout_manager_->OnLoadedPageMetaData(CreateStartOfFlowMetaData()); EXPECT_FALSE(autocheckout_manager_->in_autocheckout_flow()); EXPECT_EQ(0U, process()->sink().message_count()); - HideRequestAutocompleteDialog(); + EXPECT_TRUE( + autofill_manager_delegate_->request_autocomplete_dialog_open()); } TEST_F(AutocheckoutManagerTest, OnLoadedPageMetaDataRepeatedPage) { @@ -605,7 +609,8 @@ TEST_F(AutocheckoutManagerTest, OnLoadedPageMetaDataRepeatedPage) { autocheckout_manager_->OnLoadedPageMetaData(CreateInFlowMetaData()); EXPECT_FALSE(autocheckout_manager_->in_autocheckout_flow()); EXPECT_EQ(0U, process()->sink().message_count()); - HideRequestAutocompleteDialog(); + EXPECT_TRUE( + autofill_manager_delegate_->request_autocomplete_dialog_open()); } TEST_F(AutocheckoutManagerTest, OnLoadedPageMetaDataNotInFlow) { @@ -626,7 +631,8 @@ TEST_F(AutocheckoutManagerTest, OnLoadedPageMetaDataNotInFlow) { autocheckout_manager_->OnLoadedPageMetaData(CreateNotInFlowMetaData()); EXPECT_FALSE(autocheckout_manager_->in_autocheckout_flow()); EXPECT_EQ(0U, process()->sink().message_count()); - HideRequestAutocompleteDialog(); + EXPECT_TRUE( + autofill_manager_delegate_->request_autocomplete_dialog_open()); } TEST_F(AutocheckoutManagerTest, @@ -649,6 +655,7 @@ TEST_F(AutocheckoutManagerTest, FullAutocheckoutFlow) { // Go to second page. EXPECT_CALL(*autofill_manager_delegate_, UpdateProgressBar(testing::DoubleEq(2.0/3.0))).Times(1); + EXPECT_CALL(*autofill_manager_delegate_, OnAutocheckoutSuccess()).Times(1); autocheckout_manager_->OnLoadedPageMetaData(CreateInFlowMetaData()); EXPECT_TRUE(autocheckout_manager_->in_autocheckout_flow()); CheckFillFormsAndClickIpc(); @@ -660,7 +667,7 @@ TEST_F(AutocheckoutManagerTest, FullAutocheckoutFlow) { autocheckout_manager_->OnLoadedPageMetaData(CreateEndOfFlowMetaData()); CheckFillFormsAndClickIpc(); EXPECT_FALSE(autocheckout_manager_->in_autocheckout_flow()); - EXPECT_FALSE(autofill_manager_delegate_->request_autocomplete_dialog_open()); + EXPECT_TRUE(autofill_manager_delegate_->request_autocomplete_dialog_open()); } TEST_F(AutocheckoutManagerTest, SinglePageFlow) { @@ -671,6 +678,7 @@ TEST_F(AutocheckoutManagerTest, SinglePageFlow) { EXPECT_CALL(autocheckout_manager_->metric_logger(), LogAutocheckoutBubbleMetric( AutofillMetrics::BUBBLE_COULD_BE_DISPLAYED)).Times(1); + EXPECT_CALL(*autofill_manager_delegate_, OnAutocheckoutSuccess()).Times(1); autocheckout_manager_->OnLoadedPageMetaData(CreateOnePageFlowMetaData()); // Simulate the user submitting some data via the requestAutocomplete UI. autofill_manager_delegate_->SetUserSuppliedData( @@ -690,7 +698,7 @@ TEST_F(AutocheckoutManagerTest, SinglePageFlow) { true); CheckFillFormsAndClickIpc(); EXPECT_FALSE(autocheckout_manager_->in_autocheckout_flow()); - EXPECT_FALSE(autofill_manager_delegate_->request_autocomplete_dialog_open()); + EXPECT_TRUE(autofill_manager_delegate_->request_autocomplete_dialog_open()); } } // namespace autofill diff --git a/components/autofill/browser/autofill_manager_delegate.h b/components/autofill/browser/autofill_manager_delegate.h index 0c51b5b..750a182 100644 --- a/components/autofill/browser/autofill_manager_delegate.h +++ b/components/autofill/browser/autofill_manager_delegate.h @@ -76,6 +76,11 @@ class AutofillManagerDelegate { // the user. virtual void OnAutocheckoutError() = 0; + // Called when an Autocheckout flow has succeeded. Causes a notification + // explaining that they must confirm their purchase to be displayed to the + // user. + virtual void OnAutocheckoutSuccess() = 0; + // Causes the Autofill settings UI to be shown. virtual void ShowAutofillSettings() = 0; diff --git a/components/autofill/browser/test_autofill_manager_delegate.cc b/components/autofill/browser/test_autofill_manager_delegate.cc index 9e88c32..7e4f8dc 100644 --- a/components/autofill/browser/test_autofill_manager_delegate.cc +++ b/components/autofill/browser/test_autofill_manager_delegate.cc @@ -26,6 +26,8 @@ void TestAutofillManagerDelegate::HideRequestAutocompleteDialog() {} void TestAutofillManagerDelegate::OnAutocheckoutError() {} +void TestAutofillManagerDelegate::OnAutocheckoutSuccess() {} + void TestAutofillManagerDelegate::ShowAutofillSettings() {} void TestAutofillManagerDelegate::ConfirmSaveCreditCard( diff --git a/components/autofill/browser/test_autofill_manager_delegate.h b/components/autofill/browser/test_autofill_manager_delegate.h index 4f898f8..8ba1dc7 100644 --- a/components/autofill/browser/test_autofill_manager_delegate.h +++ b/components/autofill/browser/test_autofill_manager_delegate.h @@ -24,6 +24,7 @@ class TestAutofillManagerDelegate : public AutofillManagerDelegate { GetAutocheckoutWhitelistManager() const OVERRIDE; virtual void HideRequestAutocompleteDialog() OVERRIDE; virtual void OnAutocheckoutError() OVERRIDE; + virtual void OnAutocheckoutSuccess() OVERRIDE; virtual void ShowAutofillSettings() OVERRIDE; virtual void ConfirmSaveCreditCard( const AutofillMetrics& metric_logger, |