Index: components/autofill/browser/personal_data_manager_unittest.cc |
diff --git a/components/autofill/browser/personal_data_manager_unittest.cc b/components/autofill/browser/personal_data_manager_unittest.cc |
index 99ad37422e6b87e699a82b8f44a19eaa68d0993a..9a513afa57f003bcaa2ff30e2f89f81bb9d70e00 100644 |
--- a/components/autofill/browser/personal_data_manager_unittest.cc |
+++ b/components/autofill/browser/personal_data_manager_unittest.cc |
@@ -103,6 +103,10 @@ class PersonalDataManagerTest : public testing::Test { |
MessageLoop::current()->Run(); |
} |
+ void MakeProfileIncognito() { |
+ profile_->set_incognito(true); |
+ } |
+ |
MessageLoopForUI message_loop_; |
content::TestBrowserThread ui_thread_; |
content::TestBrowserThread db_thread_; |
@@ -2039,4 +2043,74 @@ TEST_F(PersonalDataManagerTest, CaseInsensitiveMultiValueAggregation) { |
EXPECT_EQ(0, expected.Compare(*results2[0])); |
} |
+TEST_F(PersonalDataManagerTest, IncognitoReadOnly) { |
+ ASSERT_TRUE(personal_data_->GetProfiles().empty()); |
+ ASSERT_TRUE(personal_data_->credit_cards().empty()); |
+ |
+ AutofillProfile steve_jobs; |
+ test::SetProfileInfo(&steve_jobs, "Steven", "Paul", "Jobs", "sjobs@apple.com", |
+ "Apple Computer, Inc.", "1 Infinite Loop", "", "Cupertino", "CA", "95014", |
+ "US", "(800) 275-2273"); |
+ personal_data_->AddProfile(steve_jobs); |
+ |
+ CreditCard bill_gates; |
+ test::SetCreditCardInfo( |
+ &bill_gates, "William H. Gates", "5555555555554444", "1", "2020"); |
+ personal_data_->AddCreditCard(bill_gates); |
+ |
+ ResetPersonalDataManager(); |
+ ASSERT_EQ(1U, personal_data_->GetProfiles().size()); |
+ ASSERT_EQ(1U, personal_data_->credit_cards().size()); |
+ |
+ // After this point no adds, saves, or updates should take effect. |
+ MakeProfileIncognito(); |
+ EXPECT_CALL(personal_data_observer_, OnPersonalDataChanged()).Times(0); |
+ |
+ // Add profiles or credit card shouldn't work. |
+ personal_data_->AddProfile(test::GetFullProfile()); |
+ |
+ CreditCard larry_page; |
+ test::SetCreditCardInfo( |
+ &larry_page, "Lawrence Page", "4111111111111111", "10", "2025"); |
+ personal_data_->AddCreditCard(larry_page); |
+ |
+ ResetPersonalDataManager(); |
+ EXPECT_EQ(1U, personal_data_->GetProfiles().size()); |
+ EXPECT_EQ(1U, personal_data_->credit_cards().size()); |
+ |
+ // Saving or creating profiles from imported profiles shouldn't work. |
+ steve_jobs.SetRawInfo(NAME_FIRST, ASCIIToUTF16("Steve")); |
+ personal_data_->SaveImportedProfile(steve_jobs); |
+ |
+ bill_gates.SetRawInfo(CREDIT_CARD_NAME, ASCIIToUTF16("Bill Gates")); |
+ personal_data_->SaveImportedCreditCard(bill_gates); |
+ |
+ ResetPersonalDataManager(); |
+ EXPECT_EQ(ASCIIToUTF16("Steven"), |
+ personal_data_->GetProfiles()[0]->GetRawInfo(NAME_FIRST)); |
+ EXPECT_EQ(ASCIIToUTF16("William H. Gates"), |
+ personal_data_->credit_cards()[0]->GetRawInfo(CREDIT_CARD_NAME)); |
+ |
+ // Updating existing profiles shouldn't work. |
+ steve_jobs.SetRawInfo(NAME_FIRST, ASCIIToUTF16("Steve")); |
+ personal_data_->UpdateProfile(steve_jobs); |
+ |
+ bill_gates.SetRawInfo(CREDIT_CARD_NAME, ASCIIToUTF16("Bill Gates")); |
+ personal_data_->UpdateCreditCard(bill_gates); |
+ |
+ ResetPersonalDataManager(); |
+ EXPECT_EQ(ASCIIToUTF16("Steven"), |
+ personal_data_->GetProfiles()[0]->GetRawInfo(NAME_FIRST)); |
+ EXPECT_EQ(ASCIIToUTF16("William H. Gates"), |
+ personal_data_->credit_cards()[0]->GetRawInfo(CREDIT_CARD_NAME)); |
+ |
+ // Removing shouldn't work. |
+ personal_data_->RemoveByGUID(steve_jobs.guid()); |
+ personal_data_->RemoveByGUID(bill_gates.guid()); |
+ |
+ ResetPersonalDataManager(); |
+ EXPECT_EQ(1U, personal_data_->GetProfiles().size()); |
+ EXPECT_EQ(1U, personal_data_->credit_cards().size()); |
+} |
+ |
} // namespace autofill |