summaryrefslogtreecommitdiffstats
path: root/components/autofill/browser/personal_data_manager_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'components/autofill/browser/personal_data_manager_unittest.cc')
-rw-r--r--components/autofill/browser/personal_data_manager_unittest.cc74
1 files changed, 74 insertions, 0 deletions
diff --git a/components/autofill/browser/personal_data_manager_unittest.cc b/components/autofill/browser/personal_data_manager_unittest.cc
index 99ad374..9a513af 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