Index: chrome/browser/sync/engine/syncapi_unittest.cc |
diff --git a/chrome/browser/sync/engine/syncapi_unittest.cc b/chrome/browser/sync/engine/syncapi_unittest.cc |
index 95a3ada183ac9d155c55cb9964d100ee6e36eb3d..9fccb7b06c5f5a76cea3a3758a5adc50b1e034f2 100644 |
--- a/chrome/browser/sync/engine/syncapi_unittest.cc |
+++ b/chrome/browser/sync/engine/syncapi_unittest.cc |
@@ -1240,6 +1240,23 @@ TEST_F(SyncManagerTest, OnIncomingNotification) { |
sync_manager_.TriggerOnIncomingNotificationForTest(model_types); |
} |
+TEST_F(SyncManagerTest, ReloadNigoriReady) { |
+ EXPECT_TRUE(SetUpEncryption()); |
+ sync_manager_.ReloadNigori(); |
+ syncable::ModelTypeSet encrypted_types = |
+ sync_manager_.GetEncryptedDataTypes(); |
+ EXPECT_EQ(1U, encrypted_types.count(syncable::PASSWORDS)); |
+} |
+ |
+// Attempt to reload nigori when nigori not downloaded. |
+TEST_F(SyncManagerTest, ReloadNigoriNotReady) { |
+ // Don't set up encryption. |
+ sync_manager_.ReloadNigori(); // Should fail. |
+ syncable::ModelTypeSet encrypted_types = |
+ sync_manager_.GetEncryptedDataTypes(); |
+ EXPECT_EQ(1U, encrypted_types.count(syncable::PASSWORDS)); // Hardcoded. |
+} |
+ |
TEST_F(SyncManagerTest, EncryptDataTypesWithNoData) { |
EXPECT_TRUE(SetUpEncryption()); |
ModelTypeSet encrypted_types; |
@@ -1321,6 +1338,73 @@ TEST_F(SyncManagerTest, EncryptDataTypesWithData) { |
} |
} |
+TEST_F(SyncManagerTest, SetPassphraseWithPassword) { |
+ EXPECT_TRUE(SetUpEncryption()); |
+ { |
+ WriteTransaction trans(sync_manager_.GetUserShare()); |
+ ReadNode root_node(&trans); |
+ root_node.InitByRootLookup(); |
+ |
+ WriteNode password_node(&trans); |
+ EXPECT_TRUE(password_node.InitUniqueByCreation(syncable::PASSWORDS, |
+ root_node, "foo")); |
+ sync_pb::PasswordSpecificsData data; |
+ data.set_password_value("secret"); |
+ password_node.SetPasswordSpecifics(data); |
+ } |
+ EXPECT_CALL(observer_, OnPassphraseAccepted(_)); |
+ EXPECT_CALL(observer_, OnEncryptionComplete(_)); |
+ sync_manager_.SetPassphrase("new_passphrase", true); |
+ { |
+ ReadTransaction trans(sync_manager_.GetUserShare()); |
+ ReadNode root_node(&trans); |
+ root_node.InitByRootLookup(); |
+ |
+ ReadNode password_node(&trans); |
+ EXPECT_TRUE(password_node.InitByClientTagLookup(syncable::PASSWORDS, |
+ "foo")); |
+ const sync_pb::PasswordSpecificsData& data = |
+ password_node.GetPasswordSpecifics(); |
+ EXPECT_EQ("secret", data.password_value()); |
+ } |
+} |
+ |
+TEST_F(SyncManagerTest, SetPassphraseWithEmptyPasswordNode) { |
+ EXPECT_TRUE(SetUpEncryption()); |
+ int64 node_id = 0; |
+ std::string tag = "foo"; |
+ { |
+ WriteTransaction trans(sync_manager_.GetUserShare()); |
+ ReadNode root_node(&trans); |
+ root_node.InitByRootLookup(); |
+ |
+ WriteNode password_node(&trans); |
+ EXPECT_TRUE(password_node.InitUniqueByCreation(syncable::PASSWORDS, |
+ root_node, tag)); |
+ node_id = password_node.GetId(); |
+ } |
+ EXPECT_CALL(observer_, OnPassphraseAccepted(_)); |
+ EXPECT_CALL(observer_, OnEncryptionComplete(_)); |
+ sync_manager_.SetPassphrase("new_passphrase", true); |
+ { |
+ ReadTransaction trans(sync_manager_.GetUserShare()); |
+ ReadNode root_node(&trans); |
+ root_node.InitByRootLookup(); |
+ |
+ ReadNode password_node(&trans); |
+ EXPECT_FALSE(password_node.InitByClientTagLookup(syncable::PASSWORDS, |
+ tag)); |
+ } |
+ { |
+ ReadTransaction trans(sync_manager_.GetUserShare()); |
+ ReadNode root_node(&trans); |
+ root_node.InitByRootLookup(); |
+ |
+ ReadNode password_node(&trans); |
+ EXPECT_FALSE(password_node.InitByIdLookup(node_id)); |
+ } |
+} |
+ |
} // namespace |
} // namespace browser_sync |