Index: chrome/browser/autofill/autofill_dialog_controller_mac_unittest.mm |
diff --git a/chrome/browser/autofill/autofill_dialog_controller_mac_unittest.mm b/chrome/browser/autofill/autofill_dialog_controller_mac_unittest.mm |
deleted file mode 100644 |
index 0e7ccf720257d0273f2dc5dc1ab8f921d5efcc12..0000000000000000000000000000000000000000 |
--- a/chrome/browser/autofill/autofill_dialog_controller_mac_unittest.mm |
+++ /dev/null |
@@ -1,727 +0,0 @@ |
-// Copyright (c) 2011 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. |
- |
-#include "base/ref_counted.h" |
-#include "base/utf_string_conversions.h" |
-#include "base/values.h" |
-#import "chrome/browser/autofill/autofill_address_model_mac.h" |
-#import "chrome/browser/autofill/autofill_address_sheet_controller_mac.h" |
-#import "chrome/browser/autofill/autofill_credit_card_model_mac.h" |
-#import "chrome/browser/autofill/autofill_credit_card_sheet_controller_mac.h" |
-#import "chrome/browser/autofill/autofill_dialog_controller_mac.h" |
-#include "chrome/browser/autofill/autofill_profile.h" |
-#include "chrome/browser/autofill/personal_data_manager.h" |
-#include "chrome/browser/prefs/pref_service.h" |
-#include "chrome/browser/profiles/profile.h" |
-#include "chrome/browser/ui/cocoa/browser_test_helper.h" |
-#import "chrome/browser/ui/cocoa/cocoa_test_helper.h" |
-#include "chrome/common/pref_names.h" |
-#include "chrome/test/testing_browser_process.h" |
-#include "chrome/test/testing_pref_service.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-namespace { |
- |
-// Simulated delay (in milliseconds) for web data loading. |
-const float kWebDataLoadDelayMilliseconds = 10.0; |
- |
-// Mock PersonalDataManager that gives back canned profiles and credit cards |
-// as well as simulating delayed loading of web data using the |
-// |PersonalDataManager::Observer| interface. |
-class PersonalDataManagerMock : public PersonalDataManager { |
- public: |
- PersonalDataManagerMock() |
- : observer_(NULL), |
- test_data_is_loaded_(true) {} |
- virtual ~PersonalDataManagerMock() {} |
- |
- virtual const std::vector<AutoFillProfile*>& web_profiles() { |
- return test_profiles_; |
- } |
- virtual const std::vector<CreditCard*>& credit_cards() { |
- return test_credit_cards_; |
- } |
- virtual bool IsDataLoaded() const { return test_data_is_loaded_; } |
- virtual void SetObserver(PersonalDataManager::Observer* observer) { |
- DCHECK(observer); |
- observer_ = observer; |
- |
- // This delay allows the UI loop to run and display intermediate results |
- // while the data is loading. When notified that the data is available the |
- // UI updates with the new data. 10ms is a nice short amount of time to |
- // let the UI thread update but does not slow down the tests too much. |
- MessageLoop::current()->PostDelayedTask( |
- FROM_HERE, |
- new MessageLoop::QuitTask, |
- kWebDataLoadDelayMilliseconds); |
- MessageLoop::current()->Run(); |
- observer_->OnPersonalDataLoaded(); |
- } |
- virtual void RemoveObserver(PersonalDataManager::Observer* observer) { |
- observer_ = NULL; |
- } |
- |
- std::vector<AutoFillProfile*> test_profiles_; |
- std::vector<CreditCard*> test_credit_cards_; |
- PersonalDataManager::Observer* observer_; |
- bool test_data_is_loaded_; |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(PersonalDataManagerMock); |
-}; |
- |
-// Mock profile that gives back our own mock |PersonalDataManager|. |
-class ProfileMock : public TestingProfile { |
- public: |
- ProfileMock() { |
- test_manager_ = new PersonalDataManagerMock; |
- } |
- virtual ~ProfileMock() {} |
- |
- virtual PersonalDataManager* GetPersonalDataManager() { |
- return test_manager_.get(); |
- } |
- |
- scoped_refptr<PersonalDataManagerMock> test_manager_; |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(ProfileMock); |
-}; |
- |
-// Mock browser that gives back our own |BrowserMock| instance as the profile. |
-class BrowserMock : public BrowserTestHelper { |
- public: |
- BrowserMock() { |
- test_profile_.reset(new ProfileMock); |
- } |
- virtual ~BrowserMock() {} |
- |
- // Override of |BrowserTestHelper::profile()|. |
- virtual TestingProfile* profile() const { |
- return test_profile_.get(); |
- } |
- |
- scoped_ptr<ProfileMock> test_profile_; |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(BrowserMock); |
-}; |
- |
-// Mock observer for the AutoFill settings dialog. |
-class AutoFillDialogObserverMock : public AutoFillDialogObserver { |
- public: |
- AutoFillDialogObserverMock() |
- : hit_(false) {} |
- virtual ~AutoFillDialogObserverMock() {} |
- |
- virtual void OnAutoFillDialogApply(std::vector<AutoFillProfile>* profiles, |
- std::vector<CreditCard>* credit_cards) { |
- hit_ = true; |
- |
- std::vector<AutoFillProfile>::iterator i; |
- profiles_.clear(); |
- for (i = profiles->begin(); i != profiles->end(); ++i) |
- profiles_.push_back(*i); |
- |
- std::vector<CreditCard>::iterator j; |
- credit_cards_.clear(); |
- for (j = credit_cards->begin(); j != credit_cards->end(); ++j) |
- credit_cards_.push_back(*j); |
- } |
- |
- bool hit_; |
- std::vector<AutoFillProfile> profiles_; |
- std::vector<CreditCard> credit_cards_; |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(AutoFillDialogObserverMock); |
-}; |
- |
-// Test fixture for setting up and tearing down our dialog controller under |
-// test. Also provides helper methods to access the source profiles and |
-// credit card information stored in mock |PersonalDataManager|. |
-class AutoFillDialogControllerTest : public CocoaTest { |
- public: |
- AutoFillDialogControllerTest() |
- : controller_(nil), |
- imported_profile_(NULL), |
- imported_credit_card_(NULL) { |
- } |
- |
- void LoadDialog() { |
- controller_ = [AutoFillDialogController |
- controllerWithObserver:&observer_ profile:helper_.profile()]; |
- [controller_ runModelessDialog]; |
- } |
- |
- std::vector<AutoFillProfile*>& profiles() { |
- return helper_.test_profile_->test_manager_->test_profiles_; |
- } |
- std::vector<CreditCard*>& credit_cards() { |
- return helper_.test_profile_->test_manager_->test_credit_cards_; |
- } |
- |
- ScopedTestingBrowserProcess browser_process_; |
- |
- BrowserMock helper_; |
- AutoFillDialogObserverMock observer_; |
- AutoFillDialogController* controller_; // weak reference |
- AutoFillProfile* imported_profile_; // weak reference |
- CreditCard* imported_credit_card_; // weak reference |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(AutoFillDialogControllerTest); |
-}; |
- |
-TEST_F(AutoFillDialogControllerTest, CloseButtonDoesNotInformObserver) { |
- LoadDialog(); |
- [controller_ closeDialog]; |
- ASSERT_FALSE(observer_.hit_); |
-} |
- |
-TEST_F(AutoFillDialogControllerTest, NoEditsDoNotChangeObserverProfiles) { |
- AutoFillProfile profile; |
- profiles().push_back(&profile); |
- LoadDialog(); |
- [controller_ closeDialog]; |
- |
- // Should not hit our observer. |
- ASSERT_FALSE(observer_.hit_); |
- |
- // Observer should not have profiles. |
- ASSERT_EQ(0UL, observer_.profiles_.size()); |
-} |
- |
-TEST_F(AutoFillDialogControllerTest, NoEditsDoNotChangeObserverCreditCards) { |
- CreditCard credit_card; |
- credit_cards().push_back(&credit_card); |
- LoadDialog(); |
- [controller_ closeDialog]; |
- |
- // Should not hit our observer. |
- ASSERT_FALSE(observer_.hit_); |
- |
- // Observer should not have credit cards. |
- ASSERT_EQ(0UL, observer_.credit_cards_.size()); |
-} |
- |
-TEST_F(AutoFillDialogControllerTest, AutoFillDataMutation) { |
- AutoFillProfile profile; |
- profile.SetInfo(AutofillType(NAME_FIRST), ASCIIToUTF16("John")); |
- profile.SetInfo(AutofillType(NAME_MIDDLE), ASCIIToUTF16("C")); |
- profile.SetInfo(AutofillType(NAME_LAST), ASCIIToUTF16("Smith")); |
- profile.SetInfo(AutofillType(EMAIL_ADDRESS), |
- ASCIIToUTF16("john@chromium.org")); |
- profile.SetInfo(AutofillType(COMPANY_NAME), ASCIIToUTF16("Google Inc.")); |
- profile.SetInfo(AutofillType(ADDRESS_HOME_LINE1), |
- ASCIIToUTF16("1122 Mountain View Road")); |
- profile.SetInfo(AutofillType(ADDRESS_HOME_LINE2), ASCIIToUTF16("Suite #1")); |
- profile.SetInfo(AutofillType(ADDRESS_HOME_CITY), |
- ASCIIToUTF16("Mountain View")); |
- profile.SetInfo(AutofillType(ADDRESS_HOME_STATE), ASCIIToUTF16("CA")); |
- profile.SetInfo(AutofillType(ADDRESS_HOME_ZIP), ASCIIToUTF16("94111")); |
- profile.SetInfo(AutofillType(ADDRESS_HOME_COUNTRY), ASCIIToUTF16("USA")); |
- profile.SetInfo(AutofillType(PHONE_HOME_WHOLE_NUMBER), |
- ASCIIToUTF16("014155552258")); |
- profile.SetInfo(AutofillType(PHONE_FAX_WHOLE_NUMBER), |
- ASCIIToUTF16("024087172258")); |
- profiles().push_back(&profile); |
- |
- LoadDialog(); |
- [controller_ selectAddressAtIndex:0]; |
- [controller_ editSelection:nil]; |
- |
- AutoFillAddressSheetController* sheet = [controller_ addressSheetController]; |
- ASSERT_TRUE(sheet != nil); |
- AutoFillAddressModel* am = [sheet addressModel]; |
- EXPECT_TRUE([[am fullName] isEqualToString:@"John C Smith"]); |
- EXPECT_TRUE([[am email] isEqualToString:@"john@chromium.org"]); |
- EXPECT_TRUE([[am companyName] isEqualToString:@"Google Inc."]); |
- EXPECT_TRUE([[am addressLine1] isEqualToString:@"1122 Mountain View Road"]); |
- EXPECT_TRUE([[am addressLine2] isEqualToString:@"Suite #1"]); |
- EXPECT_TRUE([[am addressCity] isEqualToString:@"Mountain View"]); |
- EXPECT_TRUE([[am addressState] isEqualToString:@"CA"]); |
- EXPECT_TRUE([[am addressZip] isEqualToString:@"94111"]); |
- EXPECT_TRUE([[am phoneWholeNumber] isEqualToString:@"014155552258"]); |
- EXPECT_TRUE([[am faxWholeNumber] isEqualToString:@"024087172258"]); |
- |
- [sheet save:nil]; |
- [controller_ closeDialog]; |
- |
- ASSERT_TRUE(observer_.hit_); |
- ASSERT_TRUE(observer_.profiles_.size() == 1); |
- |
- ASSERT_EQ(0, observer_.profiles_[0].Compare(*profiles()[0])); |
-} |
- |
-TEST_F(AutoFillDialogControllerTest, CreditCardDataMutation) { |
- CreditCard credit_card; |
- credit_card.SetInfo(AutofillType(CREDIT_CARD_NAME), ASCIIToUTF16("DCH")); |
- credit_card.SetInfo(AutofillType(CREDIT_CARD_NUMBER), |
- ASCIIToUTF16("1234 5678 9101 1121")); |
- credit_card.SetInfo(AutofillType(CREDIT_CARD_EXP_MONTH), ASCIIToUTF16("01")); |
- credit_card.SetInfo(AutofillType(CREDIT_CARD_EXP_4_DIGIT_YEAR), |
- ASCIIToUTF16("2012")); |
- credit_cards().push_back(&credit_card); |
- |
- LoadDialog(); |
- [controller_ selectCreditCardAtIndex:0]; |
- [controller_ editSelection:nil]; |
- |
- AutoFillCreditCardSheetController* sheet = |
- [controller_ creditCardSheetController]; |
- ASSERT_TRUE(sheet != nil); |
- AutoFillCreditCardModel* cm = [sheet creditCardModel]; |
- EXPECT_TRUE([[cm nameOnCard] isEqualToString:@"DCH"]); |
- EXPECT_TRUE([[cm creditCardNumber] isEqualToString:@"1234567891011121"]); |
- EXPECT_TRUE([[cm expirationMonth] isEqualToString:@"01"]); |
- EXPECT_TRUE([[cm expirationYear] isEqualToString:@"2012"]); |
- |
- // Check that user-visible text is obfuscated. |
- NSTextField* numberField = [sheet creditCardNumberField]; |
- ASSERT_TRUE(numberField != nil); |
- EXPECT_TRUE([[numberField stringValue] isEqualToString:@"************1121"]); |
- |
- [sheet save:nil]; |
- [controller_ closeDialog]; |
- |
- ASSERT_TRUE(observer_.hit_); |
- ASSERT_TRUE(observer_.credit_cards_.size() == 1); |
- ASSERT_EQ(0, observer_.credit_cards_[0].Compare(*credit_cards()[0])); |
-} |
- |
-TEST_F(AutoFillDialogControllerTest, TwoProfiles) { |
- AutoFillProfile profile1; |
- profile1.SetInfo(AutofillType(NAME_FIRST), ASCIIToUTF16("Joe")); |
- profiles().push_back(&profile1); |
- AutoFillProfile profile2; |
- profile2.SetInfo(AutofillType(NAME_FIRST), ASCIIToUTF16("Bob")); |
- profiles().push_back(&profile2); |
- LoadDialog(); |
- [controller_ closeDialog]; |
- |
- // Should not hit our observer. |
- ASSERT_FALSE(observer_.hit_); |
- |
- // Sizes should match. And should be 2. |
- ASSERT_EQ([controller_ profiles].size(), profiles().size()); |
- ASSERT_EQ([controller_ profiles].size(), 2UL); |
- |
- // Contents should match. With the exception of the |unique_id|. |
- for (size_t i = 0, count = profiles().size(); i < count; i++) { |
- ASSERT_EQ(0, [controller_ profiles][i].Compare(*profiles()[i])); |
- } |
-} |
- |
-TEST_F(AutoFillDialogControllerTest, TwoCreditCards) { |
- CreditCard credit_card1; |
- credit_card1.SetInfo(AutofillType(CREDIT_CARD_NAME), ASCIIToUTF16("Joe")); |
- credit_cards().push_back(&credit_card1); |
- CreditCard credit_card2; |
- credit_card2.SetInfo(AutofillType(CREDIT_CARD_NAME), ASCIIToUTF16("Bob")); |
- credit_cards().push_back(&credit_card2); |
- LoadDialog(); |
- [controller_ closeDialog]; |
- |
- // Should not hit our observer. |
- ASSERT_FALSE(observer_.hit_); |
- |
- // Sizes should match. And should be 2. |
- ASSERT_EQ([controller_ creditCards].size(), credit_cards().size()); |
- ASSERT_EQ([controller_ creditCards].size(), 2UL); |
- |
- // Contents should match. With the exception of the |unique_id|. |
- for (size_t i = 0, count = credit_cards().size(); i < count; i++) { |
- ASSERT_EQ(0, [controller_ creditCards][i].Compare(*credit_cards()[i])); |
- } |
-} |
- |
-TEST_F(AutoFillDialogControllerTest, AddNewProfile) { |
- AutoFillProfile profile; |
- profile.SetInfo(AutofillType(NAME_FIRST), ASCIIToUTF16("Joe")); |
- profiles().push_back(&profile); |
- LoadDialog(); |
- [controller_ addNewAddress:nil]; |
- AutoFillAddressSheetController* sheet = [controller_ addressSheetController]; |
- ASSERT_TRUE(sheet != nil); |
- AutoFillAddressModel* model = [sheet addressModel]; |
- ASSERT_TRUE(model != nil); |
- [model setFullName:@"Don"]; |
- [sheet save:nil]; |
- [controller_ closeDialog]; |
- |
- // Should hit our observer. |
- ASSERT_TRUE(observer_.hit_); |
- |
- // Sizes should be different. New size should be 2. |
- ASSERT_NE(observer_.profiles_.size(), profiles().size()); |
- ASSERT_EQ(observer_.profiles_.size(), 2UL); |
- |
- // New address should match. Don't compare labels. |
- AutoFillProfile new_profile; |
- new_profile.SetInfo(AutofillType(NAME_FULL), ASCIIToUTF16("Don")); |
- ASSERT_EQ(0, observer_.profiles_[1].Compare(new_profile)); |
-} |
- |
-TEST_F(AutoFillDialogControllerTest, AddNewCreditCard) { |
- CreditCard credit_card; |
- credit_card.SetInfo(AutofillType(CREDIT_CARD_NAME), ASCIIToUTF16("Joe")); |
- credit_cards().push_back(&credit_card); |
- LoadDialog(); |
- [controller_ addNewCreditCard:nil]; |
- AutoFillCreditCardSheetController* sheet = |
- [controller_ creditCardSheetController]; |
- ASSERT_TRUE(sheet != nil); |
- AutoFillCreditCardModel* model = [sheet creditCardModel]; |
- ASSERT_TRUE(model != nil); |
- [model setNameOnCard:@"Don"]; |
- [sheet save:nil]; |
- [controller_ closeDialog]; |
- |
- // Should hit our observer. |
- ASSERT_TRUE(observer_.hit_); |
- |
- // Sizes should be different. New size should be 2. |
- ASSERT_NE(observer_.credit_cards_.size(), credit_cards().size()); |
- ASSERT_EQ(observer_.credit_cards_.size(), 2UL); |
- |
- // New credit card should match. Don't compare labels. |
- CreditCard new_credit_card; |
- new_credit_card.SetInfo(AutofillType(CREDIT_CARD_NAME), ASCIIToUTF16("Don")); |
- ASSERT_EQ(0, observer_.credit_cards_[1].Compare(new_credit_card)); |
-} |
- |
-TEST_F(AutoFillDialogControllerTest, AddNewEmptyProfile) { |
- AutoFillProfile profile; |
- profile.SetInfo(AutofillType(NAME_FIRST), ASCIIToUTF16("Joe")); |
- profiles().push_back(&profile); |
- LoadDialog(); |
- [controller_ addNewAddress:nil]; |
- AutoFillAddressSheetController* sheet = [controller_ addressSheetController]; |
- ASSERT_TRUE(sheet != nil); |
- [sheet save:nil]; |
- [controller_ closeDialog]; |
- |
- // Should not hit our observer. |
- ASSERT_FALSE(observer_.hit_); |
- |
- // Empty profile should not be saved. |
- ASSERT_EQ(0UL, observer_.profiles_.size()); |
-} |
- |
-TEST_F(AutoFillDialogControllerTest, AddNewEmptyCreditCard) { |
- CreditCard credit_card; |
- credit_card.SetInfo(AutofillType(CREDIT_CARD_NAME), ASCIIToUTF16("Joe")); |
- credit_cards().push_back(&credit_card); |
- LoadDialog(); |
- [controller_ addNewCreditCard:nil]; |
- AutoFillCreditCardSheetController* sheet = |
- [controller_ creditCardSheetController]; |
- ASSERT_TRUE(sheet != nil); |
- [sheet save:nil]; |
- [controller_ closeDialog]; |
- |
- // Should hit our observer. |
- ASSERT_FALSE(observer_.hit_); |
- |
- // Empty credit card should not be saved. |
- ASSERT_EQ(0UL, observer_.credit_cards_.size()); |
-} |
- |
-TEST_F(AutoFillDialogControllerTest, DeleteProfile) { |
- AutoFillProfile profile; |
- profile.SetInfo(AutofillType(NAME_FIRST), ASCIIToUTF16("Joe")); |
- profiles().push_back(&profile); |
- LoadDialog(); |
- [controller_ selectAddressAtIndex:0]; |
- [controller_ deleteSelection:nil]; |
- [controller_ closeDialog]; |
- |
- // Should hit our observer. |
- ASSERT_TRUE(observer_.hit_); |
- |
- // Sizes should be different. New size should be 0. |
- ASSERT_NE(observer_.profiles_.size(), profiles().size()); |
- ASSERT_EQ(observer_.profiles_.size(), 0UL); |
-} |
- |
-TEST_F(AutoFillDialogControllerTest, DeleteCreditCard) { |
- CreditCard credit_card; |
- credit_card.SetInfo(AutofillType(CREDIT_CARD_NAME), ASCIIToUTF16("Joe")); |
- credit_cards().push_back(&credit_card); |
- LoadDialog(); |
- [controller_ selectCreditCardAtIndex:0]; |
- [controller_ deleteSelection:nil]; |
- [controller_ closeDialog]; |
- |
- // Should hit our observer. |
- ASSERT_TRUE(observer_.hit_); |
- |
- // Sizes should be different. New size should be 0. |
- ASSERT_NE(observer_.credit_cards_.size(), credit_cards().size()); |
- ASSERT_EQ(observer_.credit_cards_.size(), 0UL); |
-} |
- |
-TEST_F(AutoFillDialogControllerTest, TwoProfilesDeleteOne) { |
- AutoFillProfile profile; |
- profile.SetInfo(AutofillType(NAME_FIRST), ASCIIToUTF16("Joe")); |
- profiles().push_back(&profile); |
- AutoFillProfile profile2; |
- profile2.SetInfo(AutofillType(NAME_FIRST), ASCIIToUTF16("Bob")); |
- profiles().push_back(&profile2); |
- LoadDialog(); |
- [controller_ selectAddressAtIndex:1]; |
- [controller_ deleteSelection:nil]; |
- [controller_ closeDialog]; |
- |
- // Should hit our observer. |
- ASSERT_TRUE(observer_.hit_); |
- |
- // Sizes should be different. New size should be 1. |
- ASSERT_NE(observer_.profiles_.size(), profiles().size()); |
- ASSERT_EQ(observer_.profiles_.size(), 1UL); |
- ASSERT_EQ(0, observer_.profiles_[0].Compare(profile)); |
-} |
- |
-TEST_F(AutoFillDialogControllerTest, TwoCreditCardsDeleteOne) { |
- CreditCard credit_card; |
- credit_card.SetInfo(AutofillType(CREDIT_CARD_NAME), ASCIIToUTF16("Joe")); |
- credit_cards().push_back(&credit_card); |
- CreditCard credit_card2; |
- credit_card2.SetInfo(AutofillType(CREDIT_CARD_NAME), ASCIIToUTF16("Bob")); |
- credit_cards().push_back(&credit_card2); |
- LoadDialog(); |
- [controller_ selectCreditCardAtIndex:1]; |
- [controller_ deleteSelection:nil]; |
- [controller_ closeDialog]; |
- |
- // Should hit our observer. |
- ASSERT_TRUE(observer_.hit_); |
- |
- // Sizes should be different. New size should be 1. |
- ASSERT_NE(observer_.credit_cards_.size(), credit_cards().size()); |
- ASSERT_EQ(observer_.credit_cards_.size(), 1UL); |
- |
- // First credit card should match. |
- ASSERT_EQ(0, observer_.credit_cards_[0].Compare(credit_card)); |
-} |
- |
-TEST_F(AutoFillDialogControllerTest, DeleteMultiple) { |
- AutoFillProfile profile; |
- profile.SetInfo(AutofillType(NAME_FIRST), ASCIIToUTF16("Joe")); |
- profiles().push_back(&profile); |
- AutoFillProfile profile2; |
- profile2.SetInfo(AutofillType(NAME_FIRST), ASCIIToUTF16("Bob")); |
- profiles().push_back(&profile2); |
- |
- CreditCard credit_card; |
- credit_card.SetInfo(AutofillType(CREDIT_CARD_NAME), ASCIIToUTF16("Joe")); |
- credit_cards().push_back(&credit_card); |
- CreditCard credit_card2; |
- credit_card2.SetInfo(AutofillType(CREDIT_CARD_NAME), ASCIIToUTF16("Bob")); |
- credit_cards().push_back(&credit_card2); |
- |
- LoadDialog(); |
- [controller_ selectAddressAtIndex:1]; |
- [controller_ addSelectedCreditCardAtIndex:0]; |
- ASSERT_FALSE([controller_ editButtonEnabled]); |
- [controller_ deleteSelection:nil]; |
- [controller_ selectAddressAtIndex:0]; |
- ASSERT_TRUE([controller_ editButtonEnabled]); |
- [controller_ closeDialog]; |
- |
- // Should hit our observer. |
- ASSERT_TRUE(observer_.hit_); |
- |
- // Sizes should be different. New size should be 1. |
- ASSERT_NE(observer_.profiles_.size(), profiles().size()); |
- ASSERT_EQ(observer_.profiles_.size(), 1UL); |
- |
- // Sizes should be different. New size should be 1. |
- ASSERT_NE(observer_.credit_cards_.size(), credit_cards().size()); |
- ASSERT_EQ(observer_.credit_cards_.size(), 1UL); |
- |
- // Profiles should match. |
- ASSERT_EQ(0, observer_.profiles_[0].Compare(profile)); |
- |
- // Second credit card should match. |
- ASSERT_EQ(0, observer_.credit_cards_[0].Compare(credit_card2)); |
-} |
- |
-// Auxilliary profiles are enabled by default. |
-TEST_F(AutoFillDialogControllerTest, AuxiliaryProfilesTrue) { |
- LoadDialog(); |
- [controller_ closeDialog]; |
- |
- // Should not hit our observer. |
- ASSERT_FALSE(observer_.hit_); |
- |
- // Auxiliary profiles setting should be unchanged. |
- ASSERT_TRUE(helper_.profile()->GetPrefs()->GetBoolean( |
- prefs::kAutoFillAuxiliaryProfilesEnabled)); |
-} |
- |
-TEST_F(AutoFillDialogControllerTest, AuxiliaryProfilesFalse) { |
- helper_.profile()->GetPrefs()->SetBoolean( |
- prefs::kAutoFillAuxiliaryProfilesEnabled, false); |
- LoadDialog(); |
- [controller_ closeDialog]; |
- |
- // Should not hit our observer. |
- ASSERT_FALSE(observer_.hit_); |
- |
- // Auxiliary profiles setting should be unchanged. |
- ASSERT_FALSE(helper_.profile()->GetPrefs()->GetBoolean( |
- prefs::kAutoFillAuxiliaryProfilesEnabled)); |
-} |
- |
-TEST_F(AutoFillDialogControllerTest, AuxiliaryProfilesChanged) { |
- helper_.profile()->GetPrefs()->SetBoolean( |
- prefs::kAutoFillAuxiliaryProfilesEnabled, false); |
- LoadDialog(); |
- [controller_ setAuxiliaryEnabled:YES]; |
- [controller_ closeDialog]; |
- |
- // Should not hit our observer. |
- ASSERT_FALSE(observer_.hit_); |
- |
- // Auxiliary profiles setting should be unchanged. |
- ASSERT_TRUE(helper_.profile()->GetPrefs()->GetBoolean( |
- prefs::kAutoFillAuxiliaryProfilesEnabled)); |
-} |
- |
-TEST_F(AutoFillDialogControllerTest, WaitForDataToLoad) { |
- AutoFillProfile profile; |
- profiles().push_back(&profile); |
- CreditCard credit_card; |
- credit_cards().push_back(&credit_card); |
- helper_.test_profile_->test_manager_->test_data_is_loaded_ = false; |
- LoadDialog(); |
- [controller_ closeDialog]; |
- |
- // Should not hit our observer. |
- ASSERT_FALSE(observer_.hit_); |
- |
- // Sizes should match. |
- ASSERT_EQ([controller_ profiles].size(), profiles().size()); |
- ASSERT_EQ([controller_ creditCards].size(), credit_cards().size()); |
- |
- // Contents should match. |
- size_t i = 0; |
- size_t count = profiles().size(); |
- for (i = 0; i < count; i++) { |
- // Do not compare labels. Label is a derived field. |
- ASSERT_EQ([controller_ profiles][i], *profiles()[i]); |
- } |
- count = credit_cards().size(); |
- for (i = 0; i < count; i++) { |
- ASSERT_EQ([controller_ creditCards][i], *credit_cards()[i]); |
- } |
-} |
- |
-// AutoFill is enabled by default. |
-TEST_F(AutoFillDialogControllerTest, AutoFillEnabledTrue) { |
- LoadDialog(); |
- [controller_ closeDialog]; |
- |
- // Should not hit our observer. |
- ASSERT_FALSE(observer_.hit_); |
- |
- // AutoFill enabled setting should be unchanged. |
- ASSERT_TRUE(helper_.profile()->GetPrefs()->GetBoolean( |
- prefs::kAutoFillEnabled)); |
-} |
- |
-TEST_F(AutoFillDialogControllerTest, AutoFillEnabledFalse) { |
- helper_.profile()->GetPrefs()->SetBoolean(prefs::kAutoFillEnabled, false); |
- LoadDialog(); |
- [controller_ closeDialog]; |
- |
- // Should not hit our observer. |
- ASSERT_FALSE(observer_.hit_); |
- |
- // AutoFill enabled setting should be unchanged. |
- ASSERT_FALSE(helper_.profile()->GetPrefs()->GetBoolean( |
- prefs::kAutoFillEnabled)); |
-} |
- |
-TEST_F(AutoFillDialogControllerTest, AutoFillEnabledChanged) { |
- helper_.profile()->GetPrefs()->SetBoolean( |
- prefs::kAutoFillAuxiliaryProfilesEnabled, false); |
- LoadDialog(); |
- [controller_ setAutoFillEnabled:YES]; |
- [controller_ closeDialog]; |
- |
- // Should not hit our observer. |
- ASSERT_FALSE(observer_.hit_); |
- |
- // Auxiliary profiles setting should be unchanged. |
- ASSERT_TRUE(helper_.profile()->GetPrefs()->GetBoolean( |
- prefs::kAutoFillEnabled)); |
-} |
- |
-TEST_F(AutoFillDialogControllerTest, PolicyRefresh) { |
- LoadDialog(); |
- ASSERT_FALSE([controller_ autoFillManaged]); |
- |
- // Disable AutoFill through configuration policy. |
- helper_.profile()->GetTestingPrefService()->SetManagedPref( |
- prefs::kAutoFillEnabled, Value::CreateBooleanValue(false)); |
- ASSERT_TRUE([controller_ autoFillManaged]); |
- ASSERT_FALSE([controller_ autoFillEnabled]); |
- |
- // Enabling through policy should switch to enabled but not editable. |
- helper_.profile()->GetTestingPrefService()->SetManagedPref( |
- prefs::kAutoFillEnabled, Value::CreateBooleanValue(true)); |
- ASSERT_TRUE([controller_ autoFillManaged]); |
- ASSERT_TRUE([controller_ autoFillEnabled]); |
- |
- [controller_ closeDialog]; |
-} |
- |
-TEST_F(AutoFillDialogControllerTest, PolicyDisabledAndSave) { |
- // Disable AutoFill through configuration policy. |
- helper_.profile()->GetTestingPrefService()->SetManagedPref( |
- prefs::kAutoFillEnabled, Value::CreateBooleanValue(false)); |
- helper_.profile()->GetPrefs()->SetBoolean( |
- prefs::kAutoFillAuxiliaryProfilesEnabled, false); |
- LoadDialog(); |
- |
- // Save should be disabled. |
- ASSERT_TRUE([controller_ autoFillManagedAndDisabled]); |
- |
- [controller_ setAuxiliaryEnabled:YES]; |
- [controller_ closeDialog]; |
- |
- // Observer should not have been called. |
- ASSERT_FALSE(observer_.hit_); |
- |
- // Auxiliary profiles setting should be unchanged. |
- ASSERT_FALSE(helper_.profile()->GetPrefs()->GetBoolean( |
- prefs::kAutoFillAuxiliaryProfilesEnabled)); |
-} |
- |
-TEST_F(AutoFillDialogControllerTest, PolicyEnabledAndSave) { |
- // Enable AutoFill through configuration policy. |
- helper_.profile()->GetTestingPrefService()->SetManagedPref( |
- prefs::kAutoFillEnabled, Value::CreateBooleanValue(true)); |
- helper_.profile()->GetPrefs()->SetBoolean( |
- prefs::kAutoFillAuxiliaryProfilesEnabled, false); |
- LoadDialog(); |
- |
- // Save should be enabled. |
- ASSERT_FALSE([controller_ autoFillManagedAndDisabled]); |
- |
- [controller_ setAuxiliaryEnabled:YES]; |
- [controller_ closeDialog]; |
- |
- // Observer should not have been notified. |
- ASSERT_FALSE(observer_.hit_); |
- |
- // Auxiliary profiles setting should have been saved. |
- ASSERT_TRUE(helper_.profile()->GetPrefs()->GetBoolean( |
- prefs::kAutoFillAuxiliaryProfilesEnabled)); |
-} |
- |
-} // namespace |