| Index: chrome/browser/sync/util/cryptographer_unittest.cc
|
| diff --git a/chrome/browser/sync/util/cryptographer_unittest.cc b/chrome/browser/sync/util/cryptographer_unittest.cc
|
| index 73e389179a8ac578f5acaa0a8f5d34cbdb7dfcdd..b596c118237b873007ce46a698589e213b52b93c 100644
|
| --- a/chrome/browser/sync/util/cryptographer_unittest.cc
|
| +++ b/chrome/browser/sync/util/cryptographer_unittest.cc
|
| @@ -11,21 +11,23 @@
|
| #include "chrome/browser/password_manager/encryptor.h"
|
| #include "chrome/browser/sync/protocol/nigori_specifics.pb.h"
|
| #include "chrome/browser/sync/protocol/password_specifics.pb.h"
|
| +#include "chrome/browser/sync/syncable/model_type_test_util.h"
|
| #include "testing/gmock/include/gmock/gmock.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| namespace browser_sync {
|
|
|
| +using ::testing::_;
|
| using ::testing::Mock;
|
| using ::testing::StrictMock;
|
| -using syncable::ModelTypeSet;
|
| +using syncable::ModelEnumSet;
|
|
|
| namespace {
|
|
|
| class MockObserver : public Cryptographer::Observer {
|
| public:
|
| MOCK_METHOD2(OnEncryptedTypesChanged,
|
| - void(const syncable::ModelTypeSet&, bool));
|
| + void(syncable::ModelEnumSet, bool));
|
| };
|
|
|
| } // namespace
|
| @@ -206,41 +208,43 @@ TEST(CryptographerTest, NigoriEncryptionTypes) {
|
|
|
| // Just set the sensitive types (shouldn't trigger any
|
| // notifications).
|
| - ModelTypeSet encrypted_types(Cryptographer::SensitiveTypes());
|
| + ModelEnumSet encrypted_types(Cryptographer::SensitiveTypes());
|
| cryptographer.MergeEncryptedTypesForTest(encrypted_types);
|
| cryptographer.UpdateNigoriFromEncryptedTypes(&nigori);
|
| cryptographer2.UpdateEncryptedTypesFromNigori(nigori);
|
| - EXPECT_EQ(encrypted_types, cryptographer.GetEncryptedTypes());
|
| - EXPECT_EQ(encrypted_types, cryptographer2.GetEncryptedTypes());
|
| + EXPECT_TRUE(encrypted_types.Equals(cryptographer.GetEncryptedTypes()));
|
| + EXPECT_TRUE(encrypted_types.Equals(cryptographer2.GetEncryptedTypes()));
|
|
|
| Mock::VerifyAndClearExpectations(&observer);
|
| Mock::VerifyAndClearExpectations(&observer2);
|
|
|
| EXPECT_CALL(observer,
|
| - OnEncryptedTypesChanged(syncable::GetAllRealModelTypes(),
|
| - false));
|
| + OnEncryptedTypesChanged(
|
| + HasModelTypes(syncable::ModelEnumSet::All()),
|
| + false));
|
| EXPECT_CALL(observer2,
|
| - OnEncryptedTypesChanged(syncable::GetAllRealModelTypes(),
|
| - false));
|
| + OnEncryptedTypesChanged(
|
| + HasModelTypes(syncable::ModelEnumSet::All()),
|
| + false));
|
|
|
| // Set all encrypted types
|
| - encrypted_types = syncable::GetAllRealModelTypes();
|
| + encrypted_types = syncable::ModelEnumSet::All();
|
| cryptographer.MergeEncryptedTypesForTest(encrypted_types);
|
| cryptographer.UpdateNigoriFromEncryptedTypes(&nigori);
|
| cryptographer2.UpdateEncryptedTypesFromNigori(nigori);
|
| - EXPECT_EQ(encrypted_types, cryptographer.GetEncryptedTypes());
|
| - EXPECT_EQ(encrypted_types, cryptographer2.GetEncryptedTypes());
|
| + EXPECT_TRUE(encrypted_types.Equals(cryptographer.GetEncryptedTypes()));
|
| + EXPECT_TRUE(encrypted_types.Equals(cryptographer2.GetEncryptedTypes()));
|
|
|
| // Receiving an empty nigori should not reset any encrypted types or trigger
|
| // an observer notification.
|
| Mock::VerifyAndClearExpectations(&observer);
|
| nigori = sync_pb::NigoriSpecifics();
|
| cryptographer.UpdateEncryptedTypesFromNigori(nigori);
|
| - EXPECT_EQ(encrypted_types, cryptographer.GetEncryptedTypes());
|
| + EXPECT_TRUE(encrypted_types.Equals(cryptographer.GetEncryptedTypes()));
|
| }
|
|
|
| TEST(CryptographerTest, EncryptEverythingExplicit) {
|
| - ModelTypeSet real_types = syncable::GetAllRealModelTypes();
|
| + ModelEnumSet real_types = syncable::ModelEnumSet::All();
|
| sync_pb::NigoriSpecifics specifics;
|
| specifics.set_encrypt_everything(true);
|
|
|
| @@ -249,28 +253,26 @@ TEST(CryptographerTest, EncryptEverythingExplicit) {
|
| cryptographer.AddObserver(&observer);
|
|
|
| EXPECT_CALL(observer,
|
| - OnEncryptedTypesChanged(syncable::GetAllRealModelTypes(),
|
| - true));
|
| + OnEncryptedTypesChanged(
|
| + HasModelTypes(syncable::ModelEnumSet::All()), true));
|
|
|
| EXPECT_FALSE(cryptographer.encrypt_everything());
|
| - ModelTypeSet encrypted_types = cryptographer.GetEncryptedTypes();
|
| - for (ModelTypeSet::iterator iter = real_types.begin();
|
| - iter != real_types.end();
|
| - ++iter) {
|
| - if (*iter == syncable::PASSWORDS || *iter == syncable::NIGORI)
|
| - EXPECT_EQ(1U, encrypted_types.count(*iter));
|
| + ModelEnumSet encrypted_types = cryptographer.GetEncryptedTypes();
|
| + for (ModelEnumSet::Iterator iter = real_types.First();
|
| + iter.Good(); iter.Inc()) {
|
| + if (iter.Get() == syncable::PASSWORDS || iter.Get() == syncable::NIGORI)
|
| + EXPECT_TRUE(encrypted_types.Has(iter.Get()));
|
| else
|
| - EXPECT_EQ(0U, encrypted_types.count(*iter));
|
| + EXPECT_FALSE(encrypted_types.Has(iter.Get()));
|
| }
|
|
|
| cryptographer.UpdateEncryptedTypesFromNigori(specifics);
|
|
|
| EXPECT_TRUE(cryptographer.encrypt_everything());
|
| encrypted_types = cryptographer.GetEncryptedTypes();
|
| - for (ModelTypeSet::iterator iter = real_types.begin();
|
| - iter != real_types.end();
|
| - ++iter) {
|
| - EXPECT_EQ(1U, encrypted_types.count(*iter));
|
| + for (ModelEnumSet::Iterator iter = real_types.First();
|
| + iter.Good(); iter.Inc()) {
|
| + EXPECT_TRUE(encrypted_types.Has(iter.Get()));
|
| }
|
|
|
| // Shouldn't trigger another notification.
|
| @@ -280,7 +282,7 @@ TEST(CryptographerTest, EncryptEverythingExplicit) {
|
| }
|
|
|
| TEST(CryptographerTest, EncryptEverythingImplicit) {
|
| - ModelTypeSet real_types = syncable::GetAllRealModelTypes();
|
| + ModelEnumSet real_types = syncable::ModelEnumSet::All();
|
| sync_pb::NigoriSpecifics specifics;
|
| specifics.set_encrypt_bookmarks(true); // Non-passwords = encrypt everything
|
|
|
| @@ -289,28 +291,26 @@ TEST(CryptographerTest, EncryptEverythingImplicit) {
|
| cryptographer.AddObserver(&observer);
|
|
|
| EXPECT_CALL(observer,
|
| - OnEncryptedTypesChanged(syncable::GetAllRealModelTypes(),
|
| - true));
|
| + OnEncryptedTypesChanged(
|
| + HasModelTypes(syncable::ModelEnumSet::All()), true));
|
|
|
| EXPECT_FALSE(cryptographer.encrypt_everything());
|
| - ModelTypeSet encrypted_types = cryptographer.GetEncryptedTypes();
|
| - for (ModelTypeSet::iterator iter = real_types.begin();
|
| - iter != real_types.end();
|
| - ++iter) {
|
| - if (*iter == syncable::PASSWORDS || *iter == syncable::NIGORI)
|
| - EXPECT_EQ(1U, encrypted_types.count(*iter));
|
| + ModelEnumSet encrypted_types = cryptographer.GetEncryptedTypes();
|
| + for (ModelEnumSet::Iterator iter = real_types.First();
|
| + iter.Good(); iter.Inc()) {
|
| + if (iter.Get() == syncable::PASSWORDS || iter.Get() == syncable::NIGORI)
|
| + EXPECT_TRUE(encrypted_types.Has(iter.Get()));
|
| else
|
| - EXPECT_EQ(0U, encrypted_types.count(*iter));
|
| + EXPECT_FALSE(encrypted_types.Has(iter.Get()));
|
| }
|
|
|
| cryptographer.UpdateEncryptedTypesFromNigori(specifics);
|
|
|
| EXPECT_TRUE(cryptographer.encrypt_everything());
|
| encrypted_types = cryptographer.GetEncryptedTypes();
|
| - for (ModelTypeSet::iterator iter = real_types.begin();
|
| - iter != real_types.end();
|
| - ++iter) {
|
| - EXPECT_EQ(1U, encrypted_types.count(*iter));
|
| + for (ModelEnumSet::Iterator iter = real_types.First();
|
| + iter.Good(); iter.Inc()) {
|
| + EXPECT_TRUE(encrypted_types.Has(iter.Get()));
|
| }
|
|
|
| // Shouldn't trigger another notification.
|
| @@ -320,7 +320,7 @@ TEST(CryptographerTest, EncryptEverythingImplicit) {
|
| }
|
|
|
| TEST(CryptographerTest, UnknownSensitiveTypes) {
|
| - ModelTypeSet real_types = syncable::GetAllRealModelTypes();
|
| + ModelEnumSet real_types = syncable::ModelEnumSet::All();
|
| sync_pb::NigoriSpecifics specifics;
|
| // Explicitly setting encrypt everything should override logic for implicit
|
| // encrypt everything.
|
| @@ -331,38 +331,36 @@ TEST(CryptographerTest, UnknownSensitiveTypes) {
|
| StrictMock<MockObserver> observer;
|
| cryptographer.AddObserver(&observer);
|
|
|
| - syncable::ModelTypeSet expected_encrypted_types =
|
| + syncable::ModelEnumSet expected_encrypted_types =
|
| Cryptographer::SensitiveTypes();
|
| - expected_encrypted_types.insert(syncable::BOOKMARKS);
|
| + expected_encrypted_types.Put(syncable::BOOKMARKS);
|
|
|
| EXPECT_CALL(observer,
|
| - OnEncryptedTypesChanged(expected_encrypted_types,
|
| - false));
|
| + OnEncryptedTypesChanged(
|
| + HasModelTypes(expected_encrypted_types), false));
|
|
|
| EXPECT_FALSE(cryptographer.encrypt_everything());
|
| - ModelTypeSet encrypted_types = cryptographer.GetEncryptedTypes();
|
| - for (ModelTypeSet::iterator iter = real_types.begin();
|
| - iter != real_types.end();
|
| - ++iter) {
|
| - if (*iter == syncable::PASSWORDS || *iter == syncable::NIGORI)
|
| - EXPECT_EQ(1U, encrypted_types.count(*iter));
|
| + ModelEnumSet encrypted_types = cryptographer.GetEncryptedTypes();
|
| + for (ModelEnumSet::Iterator iter = real_types.First();
|
| + iter.Good(); iter.Inc()) {
|
| + if (iter.Get() == syncable::PASSWORDS || iter.Get() == syncable::NIGORI)
|
| + EXPECT_TRUE(encrypted_types.Has(iter.Get()));
|
| else
|
| - EXPECT_EQ(0U, encrypted_types.count(*iter));
|
| + EXPECT_FALSE(encrypted_types.Has(iter.Get()));
|
| }
|
|
|
| cryptographer.UpdateEncryptedTypesFromNigori(specifics);
|
|
|
| EXPECT_FALSE(cryptographer.encrypt_everything());
|
| encrypted_types = cryptographer.GetEncryptedTypes();
|
| - for (ModelTypeSet::iterator iter = real_types.begin();
|
| - iter != real_types.end();
|
| - ++iter) {
|
| - if (*iter == syncable::PASSWORDS ||
|
| - *iter == syncable::NIGORI ||
|
| - *iter == syncable::BOOKMARKS)
|
| - EXPECT_EQ(1U, encrypted_types.count(*iter));
|
| + for (ModelEnumSet::Iterator iter = real_types.First();
|
| + iter.Good(); iter.Inc()) {
|
| + if (iter.Get() == syncable::PASSWORDS ||
|
| + iter.Get() == syncable::NIGORI ||
|
| + iter.Get() == syncable::BOOKMARKS)
|
| + EXPECT_TRUE(encrypted_types.Has(iter.Get()));
|
| else
|
| - EXPECT_EQ(0U, encrypted_types.count(*iter));
|
| + EXPECT_FALSE(encrypted_types.Has(iter.Get()));
|
| }
|
|
|
| cryptographer.RemoveObserver(&observer);
|
|
|