OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2011 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 """Tests exercising chromiumsync and SyncDataModel.""" | 6 """Tests exercising chromiumsync and SyncDataModel.""" |
7 | 7 |
8 import pickle | 8 import pickle |
9 import unittest | 9 import unittest |
10 | 10 |
11 import autofill_specifics_pb2 | 11 import autofill_specifics_pb2 |
12 import bookmark_specifics_pb2 | 12 import bookmark_specifics_pb2 |
13 import chromiumsync | 13 import chromiumsync |
14 import sync_pb2 | 14 import sync_pb2 |
15 import theme_specifics_pb2 | 15 import theme_specifics_pb2 |
16 | 16 |
17 class SyncDataModelTest(unittest.TestCase): | 17 class SyncDataModelTest(unittest.TestCase): |
18 def setUp(self): | 18 def setUp(self): |
19 self.model = chromiumsync.SyncDataModel() | 19 self.model = chromiumsync.SyncDataModel() |
20 | 20 |
21 def AddToModel(self, proto): | 21 def AddToModel(self, proto): |
22 self.model._entries[proto.id_string] = proto | 22 self.model._entries[proto.id_string] = proto |
23 | 23 |
24 def GetChangesFromTimestamp(self, requested_types, timestamp): | 24 def GetChangesFromTimestamp(self, requested_types, timestamp): |
25 message = sync_pb2.GetUpdatesMessage() | 25 message = sync_pb2.GetUpdatesMessage() |
26 message.from_timestamp = timestamp | 26 message.from_timestamp = timestamp |
27 for data_type in requested_types: | 27 for data_type in requested_types: |
28 message.requested_types.Extensions[ | 28 getattr(message.requested_types, |
29 chromiumsync.SYNC_TYPE_TO_EXTENSION[data_type]].SetInParent() | 29 chromiumsync.SYNC_TYPE_TO_DESCRIPTOR[ |
| 30 data_type].name).SetInParent() |
30 return self.model.GetChanges( | 31 return self.model.GetChanges( |
31 chromiumsync.UpdateSieve(message, self.model.migration_history)) | 32 chromiumsync.UpdateSieve(message, self.model.migration_history)) |
32 | 33 |
33 def FindMarkerByNumber(self, markers, datatype): | 34 def FindMarkerByNumber(self, markers, datatype): |
34 """Search a list of progress markers and find the one for a datatype.""" | 35 """Search a list of progress markers and find the one for a datatype.""" |
35 for marker in markers: | 36 for marker in markers: |
36 if marker.data_type_id == datatype.number: | 37 if marker.data_type_id == datatype.number: |
37 return marker | 38 return marker |
38 self.fail('Required marker not found: %s' % datatype.name) | 39 self.fail('Required marker not found: %s' % datatype.name) |
39 | 40 |
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
291 self.assertTrue(result4.parent_id_string == | 292 self.assertTrue(result4.parent_id_string == |
292 result1b.parent_id_string == | 293 result1b.parent_id_string == |
293 result5.parent_id_string == | 294 result5.parent_id_string == |
294 result2b.id_string) | 295 result2b.id_string) |
295 self.assertTrue(result4.position_in_parent < | 296 self.assertTrue(result4.position_in_parent < |
296 result1b.position_in_parent < | 297 result1b.position_in_parent < |
297 result5.position_in_parent) | 298 result5.position_in_parent) |
298 | 299 |
299 def testUpdateSieve(self): | 300 def testUpdateSieve(self): |
300 # from_timestamp, legacy mode | 301 # from_timestamp, legacy mode |
301 autofill = autofill_specifics_pb2.autofill | 302 autofill = chromiumsync.SYNC_TYPE_FIELDS['autofill'] |
302 theme = theme_specifics_pb2.theme | 303 theme = chromiumsync.SYNC_TYPE_FIELDS['theme'] |
303 msg = sync_pb2.GetUpdatesMessage() | 304 msg = sync_pb2.GetUpdatesMessage() |
304 msg.from_timestamp = 15412 | 305 msg.from_timestamp = 15412 |
305 msg.requested_types.Extensions[autofill].SetInParent() | 306 msg.requested_types.autofill.SetInParent() |
306 msg.requested_types.Extensions[theme].SetInParent() | 307 msg.requested_types.theme.SetInParent() |
307 | 308 |
308 sieve = chromiumsync.UpdateSieve(msg) | 309 sieve = chromiumsync.UpdateSieve(msg) |
309 self.assertEqual(sieve._state, | 310 self.assertEqual(sieve._state, |
310 {chromiumsync.TOP_LEVEL: 15412, | 311 {chromiumsync.TOP_LEVEL: 15412, |
311 chromiumsync.AUTOFILL: 15412, | 312 chromiumsync.AUTOFILL: 15412, |
312 chromiumsync.THEME: 15412}) | 313 chromiumsync.THEME: 15412}) |
313 | 314 |
314 response = sync_pb2.GetUpdatesResponse() | 315 response = sync_pb2.GetUpdatesResponse() |
315 sieve.SaveProgress(15412, response) | 316 sieve.SaveProgress(15412, response) |
316 self.assertEqual(0, len(response.new_progress_marker)) | 317 self.assertEqual(0, len(response.new_progress_marker)) |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
441 testserver = chromiumsync.TestServer() | 442 testserver = chromiumsync.TestServer() |
442 http_code, raw_respon = testserver.HandleSetTransientError() | 443 http_code, raw_respon = testserver.HandleSetTransientError() |
443 self.assertEqual(http_code, 200) | 444 self.assertEqual(http_code, 200) |
444 try: | 445 try: |
445 testserver.CheckTransientError() | 446 testserver.CheckTransientError() |
446 self.fail('Should have raised transient error exception') | 447 self.fail('Should have raised transient error exception') |
447 except chromiumsync.TransientError: | 448 except chromiumsync.TransientError: |
448 self.assertTrue(testserver.transient_error) | 449 self.assertTrue(testserver.transient_error) |
449 | 450 |
450 def testUpdateSieveStoreMigration(self): | 451 def testUpdateSieveStoreMigration(self): |
451 autofill = autofill_specifics_pb2.autofill | 452 autofill = chromiumsync.SYNC_TYPE_FIELDS['autofill'] |
452 theme = theme_specifics_pb2.theme | 453 theme = chromiumsync.SYNC_TYPE_FIELDS['theme'] |
453 migrator = chromiumsync.MigrationHistory() | 454 migrator = chromiumsync.MigrationHistory() |
454 msg = sync_pb2.GetUpdatesMessage() | 455 msg = sync_pb2.GetUpdatesMessage() |
455 marker = msg.from_progress_marker.add() | 456 marker = msg.from_progress_marker.add() |
456 marker.data_type_id = autofill.number | 457 marker.data_type_id = autofill.number |
457 marker.token = pickle.dumps((15412, 1)) | 458 marker.token = pickle.dumps((15412, 1)) |
458 marker = msg.from_progress_marker.add() | 459 marker = msg.from_progress_marker.add() |
459 marker.data_type_id = theme.number | 460 marker.data_type_id = theme.number |
460 marker.token = pickle.dumps((15413, 1)) | 461 marker.token = pickle.dumps((15413, 1)) |
461 sieve = chromiumsync.UpdateSieve(msg, migrator) | 462 sieve = chromiumsync.UpdateSieve(msg, migrator) |
462 sieve.CheckMigrationState() | 463 sieve.CheckMigrationState() |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
556 marker.token = pickle.dumps((15412, 5)) | 557 marker.token = pickle.dumps((15412, 5)) |
557 marker = msg.from_progress_marker.add() | 558 marker = msg.from_progress_marker.add() |
558 marker.data_type_id = theme.number | 559 marker.data_type_id = theme.number |
559 marker.token = pickle.dumps((15413, 4)) | 560 marker.token = pickle.dumps((15413, 4)) |
560 sieve = chromiumsync.UpdateSieve(msg, migrator) | 561 sieve = chromiumsync.UpdateSieve(msg, migrator) |
561 sieve.CheckMigrationState() | 562 sieve.CheckMigrationState() |
562 | 563 |
563 | 564 |
564 if __name__ == '__main__': | 565 if __name__ == '__main__': |
565 unittest.main() | 566 unittest.main() |
OLD | NEW |