OLD | NEW |
1 | 1 |
2 // Copyright 2014 The Chromium Authors. All rights reserved. | 2 // Copyright 2014 The Chromium Authors. All rights reserved. |
3 // Use of this source code is governed by a BSD-style license that can be | 3 // Use of this source code is governed by a BSD-style license that can be |
4 // found in the LICENSE file. | 4 // found in the LICENSE file. |
5 | 5 |
6 #include "sync/engine/entity_tracker.h" | 6 #include "sync/engine/entity_tracker.h" |
7 | 7 |
| 8 #include <stdint.h> |
| 9 |
8 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
9 #include "base/time/time.h" | 11 #include "base/time/time.h" |
10 #include "sync/internal_api/public/base/model_type.h" | 12 #include "sync/internal_api/public/base/model_type.h" |
11 #include "sync/internal_api/public/non_blocking_sync_common.h" | 13 #include "sync/internal_api/public/non_blocking_sync_common.h" |
12 #include "sync/syncable/syncable_util.h" | 14 #include "sync/syncable/syncable_util.h" |
13 #include "sync/util/time.h" | 15 #include "sync/util/time.h" |
14 #include "testing/gtest/include/gtest/gtest.h" | 16 #include "testing/gtest/include/gtest/gtest.h" |
15 | 17 |
16 namespace syncer_v2 { | 18 namespace syncer_v2 { |
17 | 19 |
(...skipping 14 matching lines...) Expand all Loading... |
32 syncer::syncable::GenerateSyncableHash(syncer::PREFERENCES, | 34 syncer::syncable::GenerateSyncableHash(syncer::PREFERENCES, |
33 kClientTag)), | 35 kClientTag)), |
34 kCtime(base::Time::UnixEpoch() + base::TimeDelta::FromDays(10)), | 36 kCtime(base::Time::UnixEpoch() + base::TimeDelta::FromDays(10)), |
35 kMtime(base::Time::UnixEpoch() + base::TimeDelta::FromDays(20)) { | 37 kMtime(base::Time::UnixEpoch() + base::TimeDelta::FromDays(20)) { |
36 specifics.mutable_preference()->set_name(kClientTag); | 38 specifics.mutable_preference()->set_name(kClientTag); |
37 specifics.mutable_preference()->set_value("pref.value"); | 39 specifics.mutable_preference()->set_value("pref.value"); |
38 } | 40 } |
39 | 41 |
40 ~EntityTrackerTest() override {} | 42 ~EntityTrackerTest() override {} |
41 | 43 |
42 CommitRequestData MakeCommitRequestData(int64 sequence_number, | 44 CommitRequestData MakeCommitRequestData(int64_t sequence_number, |
43 int64 base_version) { | 45 int64_t base_version) { |
44 EntityData data; | 46 EntityData data; |
45 data.id = kServerId; | 47 data.id = kServerId; |
46 data.client_tag_hash = kClientTagHash; | 48 data.client_tag_hash = kClientTagHash; |
47 data.creation_time = kCtime; | 49 data.creation_time = kCtime; |
48 data.modification_time = kMtime; | 50 data.modification_time = kMtime; |
49 data.specifics = specifics; | 51 data.specifics = specifics; |
50 data.non_unique_name = kClientTag; | 52 data.non_unique_name = kClientTag; |
51 | 53 |
52 CommitRequestData request_data; | 54 CommitRequestData request_data; |
53 request_data.entity = data.Pass(); | 55 request_data.entity = data.Pass(); |
54 request_data.sequence_number = sequence_number; | 56 request_data.sequence_number = sequence_number; |
55 request_data.base_version = base_version; | 57 request_data.base_version = base_version; |
56 return request_data; | 58 return request_data; |
57 } | 59 } |
58 | 60 |
59 UpdateResponseData MakeUpdateResponseData(int64 response_version) { | 61 UpdateResponseData MakeUpdateResponseData(int64_t response_version) { |
60 EntityData data; | 62 EntityData data; |
61 data.id = kServerId; | 63 data.id = kServerId; |
62 data.client_tag_hash = kClientTagHash; | 64 data.client_tag_hash = kClientTagHash; |
63 | 65 |
64 UpdateResponseData response_data; | 66 UpdateResponseData response_data; |
65 response_data.entity = data.Pass(); | 67 response_data.entity = data.Pass(); |
66 response_data.response_version = response_version; | 68 response_data.response_version = response_version; |
67 return response_data; | 69 return response_data; |
68 } | 70 } |
69 | 71 |
(...skipping 10 matching lines...) Expand all Loading... |
80 scoped_ptr<EntityTracker> entity( | 82 scoped_ptr<EntityTracker> entity( |
81 EntityTracker::FromUpdateResponse(MakeUpdateResponseData(10))); | 83 EntityTracker::FromUpdateResponse(MakeUpdateResponseData(10))); |
82 EXPECT_FALSE(entity->HasPendingCommit()); | 84 EXPECT_FALSE(entity->HasPendingCommit()); |
83 | 85 |
84 entity->ReceiveUpdate(20); | 86 entity->ReceiveUpdate(20); |
85 EXPECT_FALSE(entity->HasPendingCommit()); | 87 EXPECT_FALSE(entity->HasPendingCommit()); |
86 } | 88 } |
87 | 89 |
88 // Construct a new entity from a commit request. Then serialize it. | 90 // Construct a new entity from a commit request. Then serialize it. |
89 TEST_F(EntityTrackerTest, FromCommitRequest) { | 91 TEST_F(EntityTrackerTest, FromCommitRequest) { |
90 const int64 kSequenceNumber = 22; | 92 const int64_t kSequenceNumber = 22; |
91 const int64 kBaseVersion = 33; | 93 const int64_t kBaseVersion = 33; |
92 CommitRequestData data = MakeCommitRequestData(kSequenceNumber, kBaseVersion); | 94 CommitRequestData data = MakeCommitRequestData(kSequenceNumber, kBaseVersion); |
93 scoped_ptr<EntityTracker> entity(EntityTracker::FromCommitRequest(data)); | 95 scoped_ptr<EntityTracker> entity(EntityTracker::FromCommitRequest(data)); |
94 entity->RequestCommit(data); | 96 entity->RequestCommit(data); |
95 | 97 |
96 ASSERT_TRUE(entity->HasPendingCommit()); | 98 ASSERT_TRUE(entity->HasPendingCommit()); |
97 sync_pb::SyncEntity pb_entity; | 99 sync_pb::SyncEntity pb_entity; |
98 int64 sequence_number = 0; | 100 int64_t sequence_number = 0; |
99 entity->PrepareCommitProto(&pb_entity, &sequence_number); | 101 entity->PrepareCommitProto(&pb_entity, &sequence_number); |
100 EXPECT_EQ(kSequenceNumber, sequence_number); | 102 EXPECT_EQ(kSequenceNumber, sequence_number); |
101 EXPECT_EQ(kServerId, pb_entity.id_string()); | 103 EXPECT_EQ(kServerId, pb_entity.id_string()); |
102 EXPECT_EQ(kClientTagHash, pb_entity.client_defined_unique_tag()); | 104 EXPECT_EQ(kClientTagHash, pb_entity.client_defined_unique_tag()); |
103 EXPECT_EQ(kBaseVersion, pb_entity.version()); | 105 EXPECT_EQ(kBaseVersion, pb_entity.version()); |
104 EXPECT_EQ(kCtime, syncer::ProtoTimeToTime(pb_entity.ctime())); | 106 EXPECT_EQ(kCtime, syncer::ProtoTimeToTime(pb_entity.ctime())); |
105 EXPECT_EQ(kMtime, syncer::ProtoTimeToTime(pb_entity.mtime())); | 107 EXPECT_EQ(kMtime, syncer::ProtoTimeToTime(pb_entity.mtime())); |
106 EXPECT_FALSE(pb_entity.deleted()); | 108 EXPECT_FALSE(pb_entity.deleted()); |
107 EXPECT_EQ(specifics.preference().name(), | 109 EXPECT_EQ(specifics.preference().name(), |
108 pb_entity.specifics().preference().name()); | 110 pb_entity.specifics().preference().name()); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
150 scoped_ptr<EntityTracker> entity(EntityTracker::FromCommitRequest(data)); | 152 scoped_ptr<EntityTracker> entity(EntityTracker::FromCommitRequest(data)); |
151 entity->RequestCommit(data); | 153 entity->RequestCommit(data); |
152 | 154 |
153 EXPECT_TRUE(entity->HasPendingCommit()); | 155 EXPECT_TRUE(entity->HasPendingCommit()); |
154 | 156 |
155 entity->ReceiveUpdate(33); // Version 33 == 33. | 157 entity->ReceiveUpdate(33); // Version 33 == 33. |
156 EXPECT_TRUE(entity->HasPendingCommit()); | 158 EXPECT_TRUE(entity->HasPendingCommit()); |
157 } | 159 } |
158 | 160 |
159 } // namespace syncer_v2 | 161 } // namespace syncer_v2 |
OLD | NEW |