OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "sync/engine/syncer_proto_util.h" | 5 #include "sync/engine/syncer_proto_util.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
(...skipping 30 matching lines...) Expand all Loading... |
41 | 41 |
42 MOCK_METHOD0(IsSyncingCurrentlySilenced, bool()); | 42 MOCK_METHOD0(IsSyncingCurrentlySilenced, bool()); |
43 MOCK_METHOD1(OnReceivedShortPollIntervalUpdate, void(const base::TimeDelta&)); | 43 MOCK_METHOD1(OnReceivedShortPollIntervalUpdate, void(const base::TimeDelta&)); |
44 MOCK_METHOD1(OnReceivedLongPollIntervalUpdate ,void(const base::TimeDelta&)); | 44 MOCK_METHOD1(OnReceivedLongPollIntervalUpdate ,void(const base::TimeDelta&)); |
45 MOCK_METHOD1(OnReceivedSessionsCommitDelay, void(const base::TimeDelta&)); | 45 MOCK_METHOD1(OnReceivedSessionsCommitDelay, void(const base::TimeDelta&)); |
46 MOCK_METHOD1(OnSyncProtocolError, void(const sessions::SyncSessionSnapshot&)); | 46 MOCK_METHOD1(OnSyncProtocolError, void(const sessions::SyncSessionSnapshot&)); |
47 MOCK_METHOD0(OnShouldStopSyncingPermanently, void()); | 47 MOCK_METHOD0(OnShouldStopSyncingPermanently, void()); |
48 MOCK_METHOD1(OnSilencedUntil, void(const base::TimeTicks&)); | 48 MOCK_METHOD1(OnSilencedUntil, void(const base::TimeTicks&)); |
49 }; | 49 }; |
50 | 50 |
| 51 // Builds a ClientToServerResponse with some data type ids, including |
| 52 // invalid ones. GetTypesToMigrate() should return only the valid |
| 53 // model types. |
| 54 TEST(SyncerProtoUtil, GetTypesToMigrate) { |
| 55 sync_pb::ClientToServerResponse response; |
| 56 response.add_migrated_data_type_id( |
| 57 GetSpecificsFieldNumberFromModelType(BOOKMARKS)); |
| 58 response.add_migrated_data_type_id( |
| 59 GetSpecificsFieldNumberFromModelType(HISTORY_DELETE_DIRECTIVES)); |
| 60 response.add_migrated_data_type_id(-1); |
| 61 EXPECT_TRUE( |
| 62 GetTypesToMigrate(response).Equals( |
| 63 ModelTypeSet(BOOKMARKS, HISTORY_DELETE_DIRECTIVES))); |
| 64 } |
| 65 |
| 66 // Builds a ClientToServerResponse_Error with some error data type |
| 67 // ids, including invalid ones. ConvertErrorPBToLocalType() should |
| 68 // return a SyncProtocolError with only the valid model types. |
| 69 TEST(SyncerProtoUtil, ConvertErrorPBToLocalType) { |
| 70 sync_pb::ClientToServerResponse_Error error_pb; |
| 71 error_pb.set_error_type(sync_pb::SyncEnums::THROTTLED); |
| 72 error_pb.add_error_data_type_ids( |
| 73 GetSpecificsFieldNumberFromModelType(BOOKMARKS)); |
| 74 error_pb.add_error_data_type_ids( |
| 75 GetSpecificsFieldNumberFromModelType(HISTORY_DELETE_DIRECTIVES)); |
| 76 error_pb.add_error_data_type_ids(-1); |
| 77 SyncProtocolError error = ConvertErrorPBToLocalType(error_pb); |
| 78 EXPECT_TRUE( |
| 79 error.error_data_types.Equals( |
| 80 ModelTypeSet(BOOKMARKS, HISTORY_DELETE_DIRECTIVES))); |
| 81 } |
| 82 |
51 TEST(SyncerProtoUtil, TestBlobToProtocolBufferBytesUtilityFunctions) { | 83 TEST(SyncerProtoUtil, TestBlobToProtocolBufferBytesUtilityFunctions) { |
52 unsigned char test_data1[] = {1, 2, 3, 4, 5, 6, 7, 8, 0, 1, 4, 2, 9}; | 84 unsigned char test_data1[] = {1, 2, 3, 4, 5, 6, 7, 8, 0, 1, 4, 2, 9}; |
53 unsigned char test_data2[] = {1, 99, 3, 4, 5, 6, 7, 8, 0, 1, 4, 2, 9}; | 85 unsigned char test_data2[] = {1, 99, 3, 4, 5, 6, 7, 8, 0, 1, 4, 2, 9}; |
54 unsigned char test_data3[] = {99, 2, 3, 4, 5, 6, 7, 8}; | 86 unsigned char test_data3[] = {99, 2, 3, 4, 5, 6, 7, 8}; |
55 | 87 |
56 syncable::Blob test_blob1, test_blob2, test_blob3; | 88 syncable::Blob test_blob1, test_blob2, test_blob3; |
57 for (size_t i = 0; i < arraysize(test_data1); ++i) | 89 for (size_t i = 0; i < arraysize(test_data1); ++i) |
58 test_blob1.push_back(test_data1[i]); | 90 test_blob1.push_back(test_data1[i]); |
59 for (size_t i = 0; i < arraysize(test_data2); ++i) | 91 for (size_t i = 0; i < arraysize(test_data2); ++i) |
60 test_blob2.push_back(test_data2[i]); | 92 test_blob2.push_back(test_data2[i]); |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
168 | 200 |
169 protected: | 201 protected: |
170 MessageLoop message_loop_; | 202 MessageLoop message_loop_; |
171 TestDirectorySetterUpper dir_maker_; | 203 TestDirectorySetterUpper dir_maker_; |
172 }; | 204 }; |
173 | 205 |
174 TEST_F(SyncerProtoUtilTest, VerifyResponseBirthday) { | 206 TEST_F(SyncerProtoUtilTest, VerifyResponseBirthday) { |
175 // Both sides empty | 207 // Both sides empty |
176 EXPECT_TRUE(directory()->store_birthday().empty()); | 208 EXPECT_TRUE(directory()->store_birthday().empty()); |
177 sync_pb::ClientToServerResponse response; | 209 sync_pb::ClientToServerResponse response; |
178 EXPECT_FALSE(SyncerProtoUtil::VerifyResponseBirthday(directory(), &response)); | 210 EXPECT_FALSE(SyncerProtoUtil::VerifyResponseBirthday(response, directory())); |
179 | 211 |
180 // Remote set, local empty | 212 // Remote set, local empty |
181 response.set_store_birthday("flan"); | 213 response.set_store_birthday("flan"); |
182 EXPECT_TRUE(SyncerProtoUtil::VerifyResponseBirthday(directory(), &response)); | 214 EXPECT_TRUE(SyncerProtoUtil::VerifyResponseBirthday(response, directory())); |
183 EXPECT_EQ(directory()->store_birthday(), "flan"); | 215 EXPECT_EQ(directory()->store_birthday(), "flan"); |
184 | 216 |
185 // Remote empty, local set. | 217 // Remote empty, local set. |
186 response.clear_store_birthday(); | 218 response.clear_store_birthday(); |
187 EXPECT_TRUE(SyncerProtoUtil::VerifyResponseBirthday(directory(), &response)); | 219 EXPECT_TRUE(SyncerProtoUtil::VerifyResponseBirthday(response, directory())); |
188 EXPECT_EQ(directory()->store_birthday(), "flan"); | 220 EXPECT_EQ(directory()->store_birthday(), "flan"); |
189 | 221 |
190 // Doesn't match | 222 // Doesn't match |
191 response.set_store_birthday("meat"); | 223 response.set_store_birthday("meat"); |
192 EXPECT_FALSE(SyncerProtoUtil::VerifyResponseBirthday(directory(), &response)); | 224 EXPECT_FALSE(SyncerProtoUtil::VerifyResponseBirthday(response, directory())); |
193 | 225 |
194 response.set_error_code(sync_pb::SyncEnums::CLEAR_PENDING); | 226 response.set_error_code(sync_pb::SyncEnums::CLEAR_PENDING); |
195 EXPECT_FALSE(SyncerProtoUtil::VerifyResponseBirthday(directory(), &response)); | 227 EXPECT_FALSE(SyncerProtoUtil::VerifyResponseBirthday(response, directory())); |
196 } | 228 } |
197 | 229 |
198 TEST_F(SyncerProtoUtilTest, AddRequestBirthday) { | 230 TEST_F(SyncerProtoUtilTest, AddRequestBirthday) { |
199 EXPECT_TRUE(directory()->store_birthday().empty()); | 231 EXPECT_TRUE(directory()->store_birthday().empty()); |
200 ClientToServerMessage msg; | 232 ClientToServerMessage msg; |
201 SyncerProtoUtil::AddRequestBirthday(directory(), &msg); | 233 SyncerProtoUtil::AddRequestBirthday(directory(), &msg); |
202 EXPECT_FALSE(msg.has_store_birthday()); | 234 EXPECT_FALSE(msg.has_store_birthday()); |
203 | 235 |
204 directory()->set_store_birthday("meat"); | 236 directory()->set_store_birthday("meat"); |
205 SyncerProtoUtil::AddRequestBirthday(directory(), &msg); | 237 SyncerProtoUtil::AddRequestBirthday(directory(), &msg); |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
284 SyncProtocolError error; | 316 SyncProtocolError error; |
285 error.error_type = THROTTLED; | 317 error.error_type = THROTTLED; |
286 | 318 |
287 base::TimeTicks ticks = base::TimeTicks::FromInternalValue(1); | 319 base::TimeTicks ticks = base::TimeTicks::FromInternalValue(1); |
288 | 320 |
289 EXPECT_CALL(delegate, OnSilencedUntil(ticks)); | 321 EXPECT_CALL(delegate, OnSilencedUntil(ticks)); |
290 | 322 |
291 SyncerProtoUtil::HandleThrottleError(error, ticks, &tracker, &delegate); | 323 SyncerProtoUtil::HandleThrottleError(error, ticks, &tracker, &delegate); |
292 EXPECT_TRUE(tracker.GetThrottledTypes().Empty()); | 324 EXPECT_TRUE(tracker.GetThrottledTypes().Empty()); |
293 } | 325 } |
| 326 |
294 } // namespace syncer | 327 } // namespace syncer |
OLD | NEW |