普通文本  |  39行  |  1.4 KB

// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/sync/syncable/nigori_util.h"
#include "testing/gtest/include/gtest/gtest.h"

namespace syncable {

typedef testing::Test NigoriUtilTest;

TEST_F(NigoriUtilTest, NigoriEncryptionTypes) {
  sync_pb::NigoriSpecifics nigori;
  ModelTypeSet encrypted_types;
  FillNigoriEncryptedTypes(encrypted_types, &nigori);
  ModelTypeSet test_types = GetEncryptedDataTypesFromNigori(nigori);
  EXPECT_EQ(encrypted_types, test_types);

  for (int i = FIRST_REAL_MODEL_TYPE; i < MODEL_TYPE_COUNT; ++i) {
    encrypted_types.insert(ModelTypeFromInt(i));
  }
  FillNigoriEncryptedTypes(encrypted_types, &nigori);
  test_types = GetEncryptedDataTypesFromNigori(nigori);
  encrypted_types.erase(syncable::NIGORI);     // Should not get set.
  encrypted_types.erase(syncable::PASSWORDS);  // Should not get set.
  EXPECT_EQ(encrypted_types, test_types);

  encrypted_types.erase(syncable::BOOKMARKS);
  encrypted_types.erase(syncable::SESSIONS);
  FillNigoriEncryptedTypes(encrypted_types, &nigori);
  test_types = GetEncryptedDataTypesFromNigori(nigori);
  EXPECT_EQ(encrypted_types, test_types);
}

// ProcessUnsyncedChangesForEncryption and other methods that rely on the syncer
// are tested in apply_updates_command_unittest.cc

}  // namespace syncable