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..340fd3da6f5b79520ad11c1b842cd09309326d56 100644 |
--- a/chrome/browser/autofill/autofill_manager_unittest.cc |
+++ b/chrome/browser/autofill/autofill_manager_unittest.cc |
@@ -2891,9 +2891,12 @@ 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); |
+ // Always set password generation enabled check box so we can test the |
+ // behavior of password sync. |
+ profile()->GetPrefs()->SetBoolean(prefs::kPasswordGenerationEnabled, true); |
// Sync some things, but not passwords. Shouldn't send anything since |
// password generation is disabled by default. |
@@ -2943,6 +2946,47 @@ TEST_F(AutofillManagerTest, UpdatePasswordGenerationState) { |
autofill_manager_->ClearSentStates(); |
} |
+TEST_F(AutofillManagerTest, UpdatePasswordGenerationState) { |
+ // Always set password sync enabled so we can test the behavior of password |
+ // generation. |
+ profile()->GetPrefs()->SetBoolean(prefs::kSyncKeepEverythingSynced, false); |
+ ProfileSyncService* sync_service = GetProfileSyncService(); |
+ sync_service->SetSyncSetupCompleted(); |
+ syncable::ModelTypeSet preferred_set; |
+ preferred_set.Put(syncable::PASSWORDS); |
+ sync_service->ChangePreferredDataTypes(preferred_set); |
+ |
+ // Enabled state remains false, should not sent. |
+ profile()->GetPrefs()->SetBoolean(prefs::kPasswordGenerationEnabled, false); |
+ UpdatePasswordGenerationState(false); |
+ EXPECT_EQ(0u, autofill_manager_->GetSentStates().size()); |
+ |
+ // Enabled state from false to true, should sent true. |
+ profile()->GetPrefs()->SetBoolean(prefs::kPasswordGenerationEnabled, true); |
+ UpdatePasswordGenerationState(false); |
+ EXPECT_EQ(1u, autofill_manager_->GetSentStates().size()); |
+ EXPECT_TRUE(autofill_manager_->GetSentStates()[0]); |
+ autofill_manager_->ClearSentStates(); |
+ |
+ // Enabled states remains true, should not sent. |
+ profile()->GetPrefs()->SetBoolean(prefs::kPasswordGenerationEnabled, true); |
+ UpdatePasswordGenerationState(false); |
+ EXPECT_EQ(0u, autofill_manager_->GetSentStates().size()); |
+ |
+ // Enabled states from true to false, should sent false. |
+ profile()->GetPrefs()->SetBoolean(prefs::kPasswordGenerationEnabled, false); |
+ UpdatePasswordGenerationState(false); |
+ EXPECT_EQ(1u, autofill_manager_->GetSentStates().size()); |
+ EXPECT_FALSE(autofill_manager_->GetSentStates()[0]); |
+ autofill_manager_->ClearSentStates(); |
+ |
+ // 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(); |
+} |
Ilya Sherman
2012/05/01 22:27:48
nit: Please leave a blank line after this closing
zysxqn
2012/05/03 00:57:24
Done.
|
namespace { |
class MockAutofillExternalDelegate : public TestAutofillExternalDelegate { |