Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1229)

Side by Side Diff: components/sync/api/sync_change_unittest.cc

Issue 2401223002: [Sync] Renaming sync/api* to sync/model*. (Closed)
Patch Set: Missed a comment in a DEPS file, and rebasing. Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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 "components/sync/api/sync_change.h"
6
7 #include <memory>
8
9 #include "base/message_loop/message_loop.h"
10 #include "base/time/time.h"
11 #include "base/values.h"
12 #include "components/sync/api/attachments/attachment_id.h"
13 #include "components/sync/api/attachments/attachment_service_proxy_for_test.h"
14 #include "components/sync/protocol/preference_specifics.pb.h"
15 #include "components/sync/protocol/proto_value_conversions.h"
16 #include "components/sync/protocol/sync.pb.h"
17 #include "testing/gtest/include/gtest/gtest.h"
18
19 namespace syncer {
20
21 // Ordered list of SyncChange's.
22 typedef std::vector<SyncChange> SyncChangeList;
23
24 namespace {
25
26 class SyncChangeTest : public testing::Test {
27 private:
28 base::MessageLoop message_loop;
29 };
30
31 TEST_F(SyncChangeTest, LocalDelete) {
32 SyncChange::SyncChangeType change_type = SyncChange::ACTION_DELETE;
33 std::string tag = "client_tag";
34 SyncChange e(FROM_HERE, change_type,
35 SyncData::CreateLocalDelete(tag, PREFERENCES));
36 EXPECT_EQ(change_type, e.change_type());
37 EXPECT_EQ(tag, SyncDataLocal(e.sync_data()).GetTag());
38 EXPECT_EQ(PREFERENCES, e.sync_data().GetDataType());
39 }
40
41 TEST_F(SyncChangeTest, LocalUpdate) {
42 SyncChange::SyncChangeType change_type = SyncChange::ACTION_UPDATE;
43 sync_pb::EntitySpecifics specifics;
44 sync_pb::PreferenceSpecifics* pref_specifics = specifics.mutable_preference();
45 pref_specifics->set_name("test");
46 std::string tag = "client_tag";
47 std::string title = "client_title";
48 SyncChange e(FROM_HERE, change_type,
49 SyncData::CreateLocalData(tag, title, specifics));
50 EXPECT_EQ(change_type, e.change_type());
51 EXPECT_EQ(tag, SyncDataLocal(e.sync_data()).GetTag());
52 EXPECT_EQ(title, e.sync_data().GetTitle());
53 EXPECT_EQ(PREFERENCES, e.sync_data().GetDataType());
54 std::unique_ptr<base::DictionaryValue> ref_spec(
55 EntitySpecificsToValue(specifics));
56 std::unique_ptr<base::DictionaryValue> e_spec(
57 EntitySpecificsToValue(e.sync_data().GetSpecifics()));
58 EXPECT_TRUE(ref_spec->Equals(e_spec.get()));
59 }
60
61 TEST_F(SyncChangeTest, LocalAdd) {
62 SyncChange::SyncChangeType change_type = SyncChange::ACTION_ADD;
63 sync_pb::EntitySpecifics specifics;
64 sync_pb::PreferenceSpecifics* pref_specifics = specifics.mutable_preference();
65 pref_specifics->set_name("test");
66 std::string tag = "client_tag";
67 std::string title = "client_title";
68 SyncChange e(FROM_HERE, change_type,
69 SyncData::CreateLocalData(tag, title, specifics));
70 EXPECT_EQ(change_type, e.change_type());
71 EXPECT_EQ(tag, SyncDataLocal(e.sync_data()).GetTag());
72 EXPECT_EQ(title, e.sync_data().GetTitle());
73 EXPECT_EQ(PREFERENCES, e.sync_data().GetDataType());
74 std::unique_ptr<base::DictionaryValue> ref_spec(
75 EntitySpecificsToValue(specifics));
76 std::unique_ptr<base::DictionaryValue> e_spec(
77 EntitySpecificsToValue(e.sync_data().GetSpecifics()));
78 EXPECT_TRUE(ref_spec->Equals(e_spec.get()));
79 }
80
81 TEST_F(SyncChangeTest, SyncerChanges) {
82 SyncChangeList change_list;
83
84 // Create an update.
85 sync_pb::EntitySpecifics update_specifics;
86 sync_pb::PreferenceSpecifics* pref_specifics =
87 update_specifics.mutable_preference();
88 pref_specifics->set_name("update");
89 change_list.push_back(SyncChange(
90 FROM_HERE, SyncChange::ACTION_UPDATE,
91 SyncData::CreateRemoteData(1, update_specifics, base::Time(),
92 AttachmentIdList(),
93 AttachmentServiceProxyForTest::Create())));
94
95 // Create an add.
96 sync_pb::EntitySpecifics add_specifics;
97 pref_specifics = add_specifics.mutable_preference();
98 pref_specifics->set_name("add");
99 change_list.push_back(SyncChange(
100 FROM_HERE, SyncChange::ACTION_ADD,
101 SyncData::CreateRemoteData(2, add_specifics, base::Time(),
102 AttachmentIdList(),
103 AttachmentServiceProxyForTest::Create())));
104
105 // Create a delete.
106 sync_pb::EntitySpecifics delete_specifics;
107 pref_specifics = delete_specifics.mutable_preference();
108 pref_specifics->set_name("add");
109 change_list.push_back(SyncChange(
110 FROM_HERE, SyncChange::ACTION_DELETE,
111 SyncData::CreateRemoteData(3, delete_specifics, base::Time(),
112 AttachmentIdList(),
113 AttachmentServiceProxyForTest::Create())));
114
115 ASSERT_EQ(3U, change_list.size());
116
117 // Verify update.
118 SyncChange e = change_list[0];
119 EXPECT_EQ(SyncChange::ACTION_UPDATE, e.change_type());
120 EXPECT_EQ(PREFERENCES, e.sync_data().GetDataType());
121 std::unique_ptr<base::DictionaryValue> ref_spec(
122 EntitySpecificsToValue(update_specifics));
123 std::unique_ptr<base::DictionaryValue> e_spec(
124 EntitySpecificsToValue(e.sync_data().GetSpecifics()));
125 EXPECT_TRUE(ref_spec->Equals(e_spec.get()));
126
127 // Verify add.
128 e = change_list[1];
129 EXPECT_EQ(SyncChange::ACTION_ADD, e.change_type());
130 EXPECT_EQ(PREFERENCES, e.sync_data().GetDataType());
131 ref_spec = EntitySpecificsToValue(add_specifics);
132 e_spec = EntitySpecificsToValue(e.sync_data().GetSpecifics());
133 EXPECT_TRUE(ref_spec->Equals(e_spec.get()));
134
135 // Verify delete.
136 e = change_list[2];
137 EXPECT_EQ(SyncChange::ACTION_DELETE, e.change_type());
138 EXPECT_EQ(PREFERENCES, e.sync_data().GetDataType());
139 ref_spec = EntitySpecificsToValue(delete_specifics);
140 e_spec = EntitySpecificsToValue(e.sync_data().GetSpecifics());
141 EXPECT_TRUE(ref_spec->Equals(e_spec.get()));
142 }
143
144 } // namespace
145
146 } // namespace syncer
OLDNEW
« no previous file with comments | « components/sync/api/sync_change_processor_wrapper_for_test.cc ('k') | components/sync/api/sync_data.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698