Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(122)

Side by Side Diff: chrome/browser/ui/autofill/autofill_dialog_controller_unittest.cc

Issue 15871004: Handle failed signin when setting kAutofillDialogPayWithoutWallet pref. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix test i hope Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/guid.h" 5 #include "base/guid.h"
6 #include "base/memory/scoped_ptr.h" 6 #include "base/memory/scoped_ptr.h"
7 #include "base/message_loop.h" 7 #include "base/message_loop.h"
8 #include "base/prefs/pref_service.h" 8 #include "base/prefs/pref_service.h"
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "chrome/browser/ui/autofill/autofill_dialog_controller_impl.h" 10 #include "chrome/browser/ui/autofill/autofill_dialog_controller_impl.h"
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 void set_dialog_type(DialogType dialog_type) { dialog_type_ = dialog_type; } 241 void set_dialog_type(DialogType dialog_type) { dialog_type_ = dialog_type; }
242 242
243 bool IsSectionInEditState(DialogSection section) { 243 bool IsSectionInEditState(DialogSection section) {
244 std::map<DialogSection, bool> state = section_editing_state(); 244 std::map<DialogSection, bool> state = section_editing_state();
245 return state[section]; 245 return state[section];
246 } 246 }
247 247
248 MOCK_METHOD0(LoadRiskFingerprintData, void()); 248 MOCK_METHOD0(LoadRiskFingerprintData, void());
249 using AutofillDialogControllerImpl::OnDidLoadRiskFingerprintData; 249 using AutofillDialogControllerImpl::OnDidLoadRiskFingerprintData;
250 250
251 void SimulateSigninError() {
252 OnWalletSigninError();
253 }
254
251 protected: 255 protected:
252 virtual PersonalDataManager* GetManager() OVERRIDE { 256 virtual PersonalDataManager* GetManager() OVERRIDE {
253 return &test_manager_; 257 return &test_manager_;
254 } 258 }
255 259
256 virtual wallet::WalletClient* GetWalletClient() OVERRIDE { 260 virtual wallet::WalletClient* GetWalletClient() OVERRIDE {
257 return &test_wallet_client_; 261 return &test_wallet_client_;
258 } 262 }
259 263
260 virtual bool IsFirstRun() const OVERRIDE { 264 virtual bool IsFirstRun() const OVERRIDE {
(...skipping 29 matching lines...) Expand all
290 io_thread_(BrowserThread::IO) { 294 io_thread_(BrowserThread::IO) {
291 file_thread_.Start(); 295 file_thread_.Start();
292 file_blocking_thread_.Start(); 296 file_blocking_thread_.Start();
293 io_thread_.StartIOThread(); 297 io_thread_.StartIOThread();
294 } 298 }
295 299
296 virtual ~AutofillDialogControllerTest() {} 300 virtual ~AutofillDialogControllerTest() {}
297 301
298 // testing::Test implementation: 302 // testing::Test implementation:
299 virtual void SetUp() OVERRIDE { 303 virtual void SetUp() OVERRIDE {
300 FormData form_data;
301 for (size_t i = 0; i < arraysize(kFieldsFromPage); ++i) {
302 FormFieldData field;
303 field.autocomplete_attribute = kFieldsFromPage[i];
304 form_data.fields.push_back(field);
305 }
306
307 profile()->CreateRequestContext(); 304 profile()->CreateRequestContext();
308 test_web_contents_.reset( 305 test_web_contents_.reset(
309 content::WebContentsTester::CreateTestWebContents(profile(), NULL)); 306 content::WebContentsTester::CreateTestWebContents(profile(), NULL));
310 307
311 SetUpControllerWithFormData(form_data); 308 SetUpControllerWithFormData(DefaultFormData());
312 } 309 }
313 310
314 virtual void TearDown() OVERRIDE { 311 virtual void TearDown() OVERRIDE {
315 if (controller_) 312 if (controller_)
316 controller_->ViewClosed(); 313 controller_->ViewClosed();
317 } 314 }
318 315
319 protected: 316 protected:
317 FormData DefaultFormData() {
318 FormData form_data;
319 for (size_t i = 0; i < arraysize(kFieldsFromPage); ++i) {
320 FormFieldData field;
321 field.autocomplete_attribute = kFieldsFromPage[i];
322 form_data.fields.push_back(field);
323 }
324 return form_data;
325 }
326
320 void SetUpControllerWithFormData(const FormData& form_data) { 327 void SetUpControllerWithFormData(const FormData& form_data) {
321 if (controller_) 328 if (controller_)
322 controller_->ViewClosed(); 329 controller_->ViewClosed();
323 330
324 base::Callback<void(const FormStructure*, const std::string&)> callback = 331 base::Callback<void(const FormStructure*, const std::string&)> callback =
325 base::Bind(&AutofillDialogControllerTest::FinishedCallback, 332 base::Bind(&AutofillDialogControllerTest::FinishedCallback,
326 base::Unretained(this)); 333 base::Unretained(this));
327 controller_ = (new testing::NiceMock<TestAutofillDialogController>( 334 controller_ = (new testing::NiceMock<TestAutofillDialogController>(
328 test_web_contents_.get(), 335 test_web_contents_.get(),
329 form_data, 336 form_data,
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 void SwitchToAutofill() { 368 void SwitchToAutofill() {
362 controller_->MenuModelForAccountChooser()->ActivatedAt( 369 controller_->MenuModelForAccountChooser()->ActivatedAt(
363 TestAccountChooserModel::kAutofillItemId); 370 TestAccountChooserModel::kAutofillItemId);
364 } 371 }
365 372
366 void SwitchToWallet() { 373 void SwitchToWallet() {
367 controller_->MenuModelForAccountChooser()->ActivatedAt( 374 controller_->MenuModelForAccountChooser()->ActivatedAt(
368 TestAccountChooserModel::kActiveWalletItemId); 375 TestAccountChooserModel::kActiveWalletItemId);
369 } 376 }
370 377
378 void SimulateSigninError() {
379 controller_->SimulateSigninError();
380 }
381
371 void UseBillingForShipping() { 382 void UseBillingForShipping() {
372 controller()->MenuModelForSection(SECTION_SHIPPING)->ActivatedAt(0); 383 controller()->MenuModelForSection(SECTION_SHIPPING)->ActivatedAt(0);
373 } 384 }
374 385
375 TestAutofillDialogController* controller() { return controller_; } 386 TestAutofillDialogController* controller() { return controller_; }
376 387
377 TestingProfile* profile() { return &profile_; } 388 TestingProfile* profile() { return &profile_; }
378 389
379 const FormStructure* form_structure() { return form_structure_; } 390 const FormStructure* form_structure() { return form_structure_; }
380 391
(...skipping 1257 matching lines...) Expand 10 before | Expand all | Expand 10 after
1638 1649
1639 SwitchToAutofill(); 1650 SwitchToAutofill();
1640 1651
1641 controller()->OnCancel(); 1652 controller()->OnCancel();
1642 controller()->ViewClosed(); 1653 controller()->ViewClosed();
1643 1654
1644 EXPECT_FALSE(profile()->GetPrefs()->HasPrefPath( 1655 EXPECT_FALSE(profile()->GetPrefs()->HasPrefPath(
1645 ::prefs::kAutofillDialogPayWithoutWallet)); 1656 ::prefs::kAutofillDialogPayWithoutWallet));
1646 } 1657 }
1647 1658
1659 TEST_F(AutofillDialogControllerTest, SubmitWithSigninErrorDoesntSetPref) {
1660 ASSERT_FALSE(profile()->GetPrefs()->HasPrefPath(
1661 ::prefs::kAutofillDialogPayWithoutWallet));
1662
1663 SimulateSigninError();
1664 FillCreditCardInputs();
1665 controller()->OnAccept();
Dan Beam 2013/05/31 22:22:53 ^ oh yeah, the other reason I didn't review this C
Evan Stade 2013/05/31 22:41:10 it would be nice to have mentioned that, but given
1666
1667 EXPECT_FALSE(profile()->GetPrefs()->HasPrefPath(
1668 ::prefs::kAutofillDialogPayWithoutWallet));
1669 }
1670
1648 TEST_F(AutofillDialogControllerTest, ViewSubmitSetsPref) { 1671 TEST_F(AutofillDialogControllerTest, ViewSubmitSetsPref) {
1649 ASSERT_FALSE(profile()->GetPrefs()->HasPrefPath( 1672 ASSERT_FALSE(profile()->GetPrefs()->HasPrefPath(
1650 ::prefs::kAutofillDialogPayWithoutWallet)); 1673 ::prefs::kAutofillDialogPayWithoutWallet));
1651 1674
1652 SwitchToAutofill(); 1675 SwitchToAutofill();
1653
1654 // We also have to simulate CC inputs to keep the controller happy.
1655 FillCreditCardInputs(); 1676 FillCreditCardInputs();
1656
1657 controller()->OnAccept(); 1677 controller()->OnAccept();
1658 1678
1659 EXPECT_TRUE(profile()->GetPrefs()->HasPrefPath( 1679 EXPECT_TRUE(profile()->GetPrefs()->HasPrefPath(
1660 ::prefs::kAutofillDialogPayWithoutWallet)); 1680 ::prefs::kAutofillDialogPayWithoutWallet));
1661 EXPECT_TRUE(profile()->GetPrefs()->GetBoolean( 1681 EXPECT_TRUE(profile()->GetPrefs()->GetBoolean(
1662 ::prefs::kAutofillDialogPayWithoutWallet)); 1682 ::prefs::kAutofillDialogPayWithoutWallet));
1683
1684 // Try again with a signin error (just leaves the pref alone).
1685 SetUpControllerWithFormData(DefaultFormData());
1686
1687 // Setting up the controller again should not change the pref.
1688 EXPECT_TRUE(profile()->GetPrefs()->HasPrefPath(
1689 ::prefs::kAutofillDialogPayWithoutWallet));
1690 EXPECT_TRUE(profile()->GetPrefs()->GetBoolean(
1691 ::prefs::kAutofillDialogPayWithoutWallet));
1692
1693 SimulateSigninError();
1694 FillCreditCardInputs();
1695 controller()->OnAccept();
1696 EXPECT_TRUE(profile()->GetPrefs()->HasPrefPath(
1697 ::prefs::kAutofillDialogPayWithoutWallet));
1698 EXPECT_TRUE(profile()->GetPrefs()->GetBoolean(
1699 ::prefs::kAutofillDialogPayWithoutWallet));
1700
1701 // Succesfully choosing wallet does set the pref.
1702 SetUpControllerWithFormData(DefaultFormData());
1703
1704 SwitchToWallet();
1705 scoped_ptr<wallet::WalletItems> wallet_items = wallet::GetTestWalletItems();
1706 wallet_items->AddInstrument(wallet::GetTestMaskedInstrument());
1707 controller()->OnDidGetWalletItems(wallet_items.Pass());
1708 controller()->OnDidGetFullWallet(wallet::GetTestFullWallet());
1709 controller()->OnAccept();
Dan Beam 2013/05/31 22:22:53 ^ reverse the order of these to fix your test
Evan Stade 2013/05/31 22:41:10 that did the trick.
1710
1711 EXPECT_TRUE(profile()->GetPrefs()->HasPrefPath(
1712 ::prefs::kAutofillDialogPayWithoutWallet));
1713 EXPECT_FALSE(profile()->GetPrefs()->GetBoolean(
1714 ::prefs::kAutofillDialogPayWithoutWallet));
1663 } 1715 }
1664 1716
1665 TEST_F(AutofillDialogControllerTest, HideWalletEmail) { 1717 TEST_F(AutofillDialogControllerTest, HideWalletEmail) {
1666 SwitchToAutofill(); 1718 SwitchToAutofill();
1667 1719
1668 // Email section should be showing when using Autofill. 1720 // Email section should be showing when using Autofill.
1669 EXPECT_TRUE(controller()->SectionIsActive(SECTION_EMAIL)); 1721 EXPECT_TRUE(controller()->SectionIsActive(SECTION_EMAIL));
1670 1722
1671 SwitchToWallet(); 1723 SwitchToWallet();
1672 1724
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
1816 controller()->OnDidGetWalletItems( 1868 controller()->OnDidGetWalletItems(
1817 wallet::WalletItems::CreateWalletItems(dict).Pass()); 1869 wallet::WalletItems::CreateWalletItems(dict).Pass());
1818 1870
1819 EXPECT_FALSE(controller()->MenuModelForSection(SECTION_CC_BILLING)); 1871 EXPECT_FALSE(controller()->MenuModelForSection(SECTION_CC_BILLING));
1820 // "Same as billing" and "Add address...". 1872 // "Same as billing" and "Add address...".
1821 EXPECT_EQ( 1873 EXPECT_EQ(
1822 2, controller()->MenuModelForSection(SECTION_SHIPPING)->GetItemCount()); 1874 2, controller()->MenuModelForSection(SECTION_SHIPPING)->GetItemCount());
1823 } 1875 }
1824 1876
1825 } // namespace autofill 1877 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698