• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "sync/protocol/bookmark_specifics.pb.h"
6 #include "sync/protocol/sync.pb.h"
7 #include "sync/syncable/nigori_util.h"
8 #include "sync/util/cryptographer.h"
9 #include "testing/gtest/include/gtest/gtest.h"
10 
11 namespace syncer {
12 namespace syncable {
13 
14 typedef testing::Test NigoriUtilTest;
15 
TEST(NigoriUtilTest,SpecificsNeedsEncryption)16 TEST(NigoriUtilTest, SpecificsNeedsEncryption) {
17   ModelTypeSet encrypted_types;
18   encrypted_types.Put(BOOKMARKS);
19   encrypted_types.Put(PASSWORDS);
20 
21   sync_pb::EntitySpecifics specifics;
22   EXPECT_FALSE(SpecificsNeedsEncryption(ModelTypeSet(), specifics));
23   EXPECT_FALSE(SpecificsNeedsEncryption(encrypted_types, specifics));
24 
25   AddDefaultFieldValue(PREFERENCES, &specifics);
26   EXPECT_FALSE(SpecificsNeedsEncryption(encrypted_types, specifics));
27 
28   sync_pb::EntitySpecifics bookmark_specifics;
29   AddDefaultFieldValue(BOOKMARKS, &bookmark_specifics);
30   EXPECT_TRUE(SpecificsNeedsEncryption(encrypted_types, bookmark_specifics));
31 
32   bookmark_specifics.mutable_bookmark()->set_title("title");
33   bookmark_specifics.mutable_bookmark()->set_url("url");
34   EXPECT_TRUE(SpecificsNeedsEncryption(encrypted_types, bookmark_specifics));
35   EXPECT_FALSE(SpecificsNeedsEncryption(ModelTypeSet(), bookmark_specifics));
36 
37   bookmark_specifics.mutable_encrypted();
38   EXPECT_FALSE(SpecificsNeedsEncryption(encrypted_types, bookmark_specifics));
39   EXPECT_FALSE(SpecificsNeedsEncryption(ModelTypeSet(), bookmark_specifics));
40 
41   sync_pb::EntitySpecifics password_specifics;
42   AddDefaultFieldValue(PASSWORDS, &password_specifics);
43   EXPECT_FALSE(SpecificsNeedsEncryption(encrypted_types, password_specifics));
44 }
45 
46 // ProcessUnsyncedChangesForEncryption and other methods that rely on the syncer
47 // are tested in apply_updates_command_unittest.cc
48 
49 }  // namespace syncable
50 }  // namespace syncer
51