Index: chrome/browser/autofill/autofill_manager_unittest.cc |
diff --git a/chrome/browser/autofill/autofill_manager_unittest.cc b/chrome/browser/autofill/autofill_manager_unittest.cc |
index bfef7ff99f916c816185e53b8d825ea4541d84bd..37fc438abab6de56cd8058f987ae5f9aabd038f1 100644 |
--- a/chrome/browser/autofill/autofill_manager_unittest.cc |
+++ b/chrome/browser/autofill/autofill_manager_unittest.cc |
@@ -488,7 +488,7 @@ class TestAutofillManager : public AutofillManager { |
submitted_form_signature_ = submitted_form.FormSignature(); |
} |
- virtual void SendPasswordSyncStateToRenderer( |
+ virtual void SendPasswordGenerationStateToRenderer( |
content::RenderViewHost* host, bool enabled) OVERRIDE { |
sent_states_.push_back(enabled); |
} |
@@ -566,10 +566,12 @@ class AutofillManagerTest : public TabContentsWrapperTestHarness { |
} |
virtual void SetUp() OVERRIDE { |
- Profile* profile = new TestingProfile(); |
- browser_context_.reset(profile); |
- PersonalDataManagerFactory::GetInstance()->SetTestingFactory( |
- profile, TestPersonalDataManager::Build); |
+ if (!browser_context_.get()) { |
+ Profile* profile = new TestingProfile(); |
+ browser_context_.reset(profile); |
+ PersonalDataManagerFactory::GetInstance()->SetTestingFactory( |
+ profile, TestPersonalDataManager::Build); |
+ } |
TabContentsWrapperTestHarness::SetUp(); |
autofill_manager_ = new TestAutofillManager(contents_wrapper(), |
@@ -583,8 +585,18 @@ class AutofillManagerTest : public TabContentsWrapperTestHarness { |
TabContentsWrapperTestHarness::TearDown(); |
} |
- void UpdatePasswordSyncState(bool new_renderer) { |
- autofill_manager_->UpdatePasswordSyncState(NULL, new_renderer); |
+ void GoOffTheRecord() { |
+ TearDown(); |
Ilya Sherman
2012/04/24 00:46:54
Hmm, I'm not sure this is safe. For example, chro
Garrett Casto
2012/04/24 18:49:56
I'm not sure how this is different from the normal
|
+ other_browser_context_.reset(new TestingProfile()); |
+ Profile* incognito = |
+ Profile::FromBrowserContext( |
+ other_browser_context_.get())->GetOffTheRecordProfile(); |
+ browser_context_.reset(incognito); |
+ SetUp(); |
+ } |
+ |
+ void UpdatePasswordGenerationState(bool new_renderer) { |
+ autofill_manager_->UpdatePasswordGenerationState(NULL, new_renderer); |
} |
void GetAutofillSuggestions(int query_id, |
@@ -684,6 +696,10 @@ class AutofillManagerTest : public TabContentsWrapperTestHarness { |
scoped_refptr<TestAutofillManager> autofill_manager_; |
TestPersonalDataManager personal_data_; |
+ // Used when we want an off the record profile. This will store the original |
+ // profile from which the off the record profile is derived. |
+ scoped_ptr<Profile> other_browser_context_; |
+ |
private: |
DISALLOW_COPY_AND_ASSIGN(AutofillManagerTest); |
}; |
@@ -2887,7 +2903,7 @@ TEST_F(AutofillManagerTest, DeterminePossibleFieldTypesForUpload) { |
FormSubmitted(form); |
} |
-TEST_F(AutofillManagerTest, UpdatePasswordSyncState) { |
+TEST_F(AutofillManagerTest, UpdatePasswordGenerationState) { |
// Allow this test to control what should get synced. |
profile()->GetPrefs()->SetBoolean(prefs::kSyncKeepEverythingSynced, false); |
@@ -2900,13 +2916,13 @@ TEST_F(AutofillManagerTest, UpdatePasswordSyncState) { |
preferred_set.Put(syncable::PREFERENCES); |
sync_service->ChangePreferredDataTypes(preferred_set); |
syncable::ModelTypeSet new_set = sync_service->GetPreferredDataTypes(); |
- UpdatePasswordSyncState(false); |
+ UpdatePasswordGenerationState(false); |
EXPECT_EQ(0u, autofill_manager_->GetSentStates().size()); |
// Now sync passwords. |
preferred_set.Put(syncable::PASSWORDS); |
sync_service->ChangePreferredDataTypes(preferred_set); |
- UpdatePasswordSyncState(false); |
+ UpdatePasswordGenerationState(false); |
EXPECT_EQ(1u, autofill_manager_->GetSentStates().size()); |
EXPECT_TRUE(autofill_manager_->GetSentStates()[0]); |
autofill_manager_->ClearSentStates(); |
@@ -2914,19 +2930,26 @@ TEST_F(AutofillManagerTest, UpdatePasswordSyncState) { |
// Add some additional synced state. Nothing should be sent. |
preferred_set.Put(syncable::THEMES); |
sync_service->ChangePreferredDataTypes(preferred_set); |
- UpdatePasswordSyncState(false); |
+ UpdatePasswordGenerationState(false); |
EXPECT_EQ(0u, autofill_manager_->GetSentStates().size()); |
- // Disable syncing. This should be sent. |
Ilya Sherman
2012/04/24 00:46:54
Hmm, why is this case (disabling sync) removed fro
Garrett Casto
2012/04/24 18:49:56
Re-added. Just got lost in the shuffle.
|
- sync_service->DisableForUser(); |
- UpdatePasswordSyncState(false); |
+ // Disable autofill. This should be sent. |
+ autofill_manager_->set_autofill_enabled(false); |
+ UpdatePasswordGenerationState(false); |
EXPECT_EQ(1u, autofill_manager_->GetSentStates().size()); |
EXPECT_FALSE(autofill_manager_->GetSentStates()[0]); |
autofill_manager_->ClearSentStates(); |
+ // Now re-enable autofill, but disable password manager by going incognito. |
+ // This should still leave the feature disabled, and shouldn't send anything. |
Ilya Sherman
2012/04/24 00:46:54
nit: The "still" in this comment seems a little bi
Garrett Casto
2012/04/24 18:49:56
N/A
|
+ GoOffTheRecord(); |
+ autofill_manager_->set_autofill_enabled(true); |
+ UpdatePasswordGenerationState(false); |
+ EXPECT_EQ(0u, autofill_manager_->GetSentStates().size()); |
+ |
// When a new render_view is created, we send the state even if it's the |
// same. |
- UpdatePasswordSyncState(true); |
+ UpdatePasswordGenerationState(true); |
EXPECT_EQ(1u, autofill_manager_->GetSentStates().size()); |
EXPECT_FALSE(autofill_manager_->GetSentStates()[0]); |
autofill_manager_->ClearSentStates(); |