Index: sync/util/cryptographer_unittest.cc |
diff --git a/sync/util/cryptographer_unittest.cc b/sync/util/cryptographer_unittest.cc |
index d729311299582b8d3ec5e81ef75bafb736e91d89..01190e9865fa1c200a83ac1016be32f670551e66 100644 |
--- a/sync/util/cryptographer_unittest.cc |
+++ b/sync/util/cryptographer_unittest.cc |
@@ -147,6 +147,19 @@ TEST_F(SyncCryptographerTest, AddKeySetsDefault) { |
EXPECT_EQ(encrypted3.key_name(), encrypted4.key_name()); |
} |
+// Ensure setting the keystore key works and doesn't modify the default nigori. |
+TEST_F(SyncCryptographerTest, SetKeystore) { |
+ EXPECT_FALSE(cryptographer_.is_initialized()); |
+ EXPECT_FALSE(cryptographer_.HasKeystoreKey()); |
+ |
+ EXPECT_FALSE(cryptographer_.SetKeystoreKey("")); |
+ EXPECT_FALSE(cryptographer_.HasKeystoreKey()); |
+ |
+ EXPECT_TRUE(cryptographer_.SetKeystoreKey("keystore_key")); |
+ EXPECT_TRUE(cryptographer_.HasKeystoreKey()); |
+ EXPECT_FALSE(cryptographer_.is_initialized()); |
+} |
+ |
// Crashes, Bug 55178. |
#if defined(OS_WIN) |
#define MAYBE_EncryptExportDecrypt DISABLED_EncryptExportDecrypt |
@@ -220,6 +233,24 @@ TEST_F(SyncCryptographerTest, MAYBE_PackUnpack) { |
EXPECT_EQ(expected_mac, mac_key); |
} |
+// Test that bootstrapping the keystore key works and doesn't affect the default |
+// nigori. |
+TEST_F(SyncCryptographerTest, BootstrapKeystore) { |
+ std::string token; |
+ cryptographer_.GetKeystoreKeyBootstrapToken(&token); |
+ EXPECT_TRUE(token.empty()); |
+ |
+ cryptographer_.SetKeystoreKey("keystore_key"); |
+ cryptographer_.GetKeystoreKeyBootstrapToken(&token); |
+ EXPECT_FALSE(token.empty()); |
+ |
+ Cryptographer cryptographer2(&encryptor_); |
+ EXPECT_FALSE(cryptographer2.HasKeystoreKey()); |
+ cryptographer2.BootstrapKeystoreKey(token); |
+ EXPECT_TRUE(cryptographer2.HasKeystoreKey()); |
+ EXPECT_FALSE(cryptographer2.is_initialized()); |
+} |
+ |
TEST_F(SyncCryptographerTest, NigoriEncryptionTypes) { |
Cryptographer cryptographer2(&encryptor_); |
sync_pb::NigoriSpecifics nigori; |