| 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 |