Chromium Code Reviews| 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 8962b2d7a47baf5850d117feef2960496661b7f3..d91922f61cb844a9ab766ba4ab40e447baa7c6af 100644 |
| --- a/chrome/browser/autofill/autofill_manager_unittest.cc |
| +++ b/chrome/browser/autofill/autofill_manager_unittest.cc |
| @@ -488,17 +488,30 @@ class TestAutofillManager : public AutofillManager { |
| submitted_form_signature_ = submitted_form.FormSignature(); |
| } |
| + virtual void SendPasswordSyncStateToRenderer( |
|
Garrett Casto
2012/04/26 23:23:59
Remove this.
|
| + content::RenderViewHost* host, bool enabled) OVERRIDE { |
| + sent_sync_states_.push_back(enabled); |
| + } |
| + |
| virtual void SendPasswordGenerationStateToRenderer( |
| content::RenderViewHost* host, bool enabled) OVERRIDE { |
| - sent_states_.push_back(enabled); |
| + sent_enabled_states_.push_back(enabled); |
| + } |
| + |
| + const std::vector<bool>& GetSentSyncStates() { |
| + return sent_sync_states_; |
| + } |
| + |
| + const std::vector<bool>& GetSentEnabledStates() { |
| + return sent_enabled_states_; |
| } |
| - const std::vector<bool>& GetSentStates() { |
| - return sent_states_; |
| + void ClearSentSyncStates() { |
| + sent_sync_states_.clear(); |
| } |
| - void ClearSentStates() { |
| - sent_states_.clear(); |
| + void ClearSentEnabledStates() { |
| + sent_enabled_states_.clear(); |
| } |
| const std::string GetSubmittedFormSignature() { |
| @@ -542,7 +555,8 @@ class TestAutofillManager : public AutofillManager { |
| std::string submitted_form_signature_; |
| std::vector<FieldTypeSet> expected_submitted_field_types_; |
| - std::vector<bool> sent_states_; |
| + std::vector<bool> sent_sync_states_; |
| + std::vector<bool> sent_enabled_states_; |
| DISALLOW_COPY_AND_ASSIGN(TestAutofillManager); |
| }; |
| @@ -583,6 +597,10 @@ class AutofillManagerTest : public TabContentsWrapperTestHarness { |
| TabContentsWrapperTestHarness::TearDown(); |
| } |
| + void UpdatePasswordSyncState(bool new_renderer) { |
| + autofill_manager_->UpdatePasswordSyncState(NULL, new_renderer); |
| + } |
| + |
| void UpdatePasswordGenerationState(bool new_renderer) { |
| autofill_manager_->UpdatePasswordGenerationState(NULL, new_renderer); |
| } |
| @@ -2891,7 +2909,7 @@ TEST_F(AutofillManagerTest, DeterminePossibleFieldTypesForUpload) { |
| FormSubmitted(form); |
| } |
| -TEST_F(AutofillManagerTest, UpdatePasswordGenerationState) { |
| +TEST_F(AutofillManagerTest, UpdatePasswordSyncState) { |
| // Allow this test to control what should get synced. |
| profile()->GetPrefs()->SetBoolean(prefs::kSyncKeepEverythingSynced, false); |
| @@ -2904,45 +2922,77 @@ TEST_F(AutofillManagerTest, UpdatePasswordGenerationState) { |
| preferred_set.Put(syncable::PREFERENCES); |
| sync_service->ChangePreferredDataTypes(preferred_set); |
| syncable::ModelTypeSet new_set = sync_service->GetPreferredDataTypes(); |
| - UpdatePasswordGenerationState(false); |
| - EXPECT_EQ(0u, autofill_manager_->GetSentStates().size()); |
| + UpdatePasswordSyncState(false); |
| + EXPECT_EQ(0u, autofill_manager_->GetSentSyncStates().size()); |
| // Now sync passwords. |
| preferred_set.Put(syncable::PASSWORDS); |
| sync_service->ChangePreferredDataTypes(preferred_set); |
| - UpdatePasswordGenerationState(false); |
| - EXPECT_EQ(1u, autofill_manager_->GetSentStates().size()); |
| - EXPECT_TRUE(autofill_manager_->GetSentStates()[0]); |
| - autofill_manager_->ClearSentStates(); |
| + UpdatePasswordSyncState(false); |
| + EXPECT_EQ(1u, autofill_manager_->GetSentSyncStates().size()); |
| + EXPECT_TRUE(autofill_manager_->GetSentSyncStates()[0]); |
| + autofill_manager_->ClearSentSyncStates(); |
| // Add some additional synced state. Nothing should be sent. |
| preferred_set.Put(syncable::THEMES); |
| sync_service->ChangePreferredDataTypes(preferred_set); |
| - UpdatePasswordGenerationState(false); |
| - EXPECT_EQ(0u, autofill_manager_->GetSentStates().size()); |
| + UpdatePasswordSyncState(false); |
| + EXPECT_EQ(0u, autofill_manager_->GetSentSyncStates().size()); |
| // Disable syncing. This should disable the feature. |
| sync_service->DisableForUser(); |
| - UpdatePasswordGenerationState(false); |
| - EXPECT_EQ(1u, autofill_manager_->GetSentStates().size()); |
| - EXPECT_FALSE(autofill_manager_->GetSentStates()[0]); |
| - autofill_manager_->ClearSentStates(); |
| + UpdatePasswordSyncState(false); |
| + EXPECT_EQ(1u, autofill_manager_->GetSentSyncStates().size()); |
| + EXPECT_FALSE(autofill_manager_->GetSentSyncStates()[0]); |
| + autofill_manager_->ClearSentSyncStates(); |
| // Disable password manager by going incognito, and re-enable syncing. The |
| // feature should still be disabled, and nothing will be sent. |
| sync_service->SetSyncSetupCompleted(); |
| profile()->set_incognito(true); |
| + UpdatePasswordSyncState(false); |
| + EXPECT_EQ(0u, autofill_manager_->GetSentSyncStates().size()); |
| + |
| + // When a new render_view is created, we send the state even if it's the |
| + // same. |
| + UpdatePasswordSyncState(true); |
| + EXPECT_EQ(1u, autofill_manager_->GetSentSyncStates().size()); |
| + EXPECT_FALSE(autofill_manager_->GetSentSyncStates()[0]); |
| + autofill_manager_->ClearSentSyncStates(); |
| +} |
| + |
| +TEST_F(AutofillManagerTest, UpdatePasswordGenerationState) { |
| + // Enabled state remains false, should not sent. |
| + profile()->GetPrefs()->SetBoolean(prefs::kPasswordGenerationEnabled, false); |
| UpdatePasswordGenerationState(false); |
| - EXPECT_EQ(0u, autofill_manager_->GetSentStates().size()); |
| + EXPECT_EQ(0u, autofill_manager_->GetSentEnabledStates().size()); |
| + |
| + // Enabled state from false to true, should sent true. |
| + profile()->GetPrefs()->SetBoolean(prefs::kPasswordGenerationEnabled, true); |
| + UpdatePasswordGenerationState(false); |
| + EXPECT_EQ(1u, autofill_manager_->GetSentEnabledStates().size()); |
| + EXPECT_TRUE(autofill_manager_->GetSentEnabledStates()[0]); |
| + autofill_manager_->ClearSentEnabledStates(); |
| + |
| + // Enabled states remains true, should not sent. |
| + profile()->GetPrefs()->SetBoolean(prefs::kPasswordGenerationEnabled, true); |
| + UpdatePasswordGenerationState(false); |
| + EXPECT_EQ(0u, autofill_manager_->GetSentEnabledStates().size()); |
| + |
| + // Enabled states from true to false, should sent false. |
| + profile()->GetPrefs()->SetBoolean(prefs::kPasswordGenerationEnabled, false); |
| + UpdatePasswordGenerationState(false); |
| + EXPECT_EQ(1u, autofill_manager_->GetSentEnabledStates().size()); |
| + EXPECT_FALSE(autofill_manager_->GetSentEnabledStates()[0]); |
| + autofill_manager_->ClearSentEnabledStates(); |
| // When a new render_view is created, we send the state even if it's the |
| // same. |
| UpdatePasswordGenerationState(true); |
| - EXPECT_EQ(1u, autofill_manager_->GetSentStates().size()); |
| - EXPECT_FALSE(autofill_manager_->GetSentStates()[0]); |
| - autofill_manager_->ClearSentStates(); |
| + EXPECT_EQ(1u, autofill_manager_->GetSentEnabledStates().size()); |
| + EXPECT_FALSE(autofill_manager_->GetSentEnabledStates()[0]); |
| + autofill_manager_->ClearSentEnabledStates(); |
| } |
| - |
| namespace { |
| class MockAutofillExternalDelegate : public TestAutofillExternalDelegate { |