OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 // Utilities to verify the state of items in unit tests. | 5 // Utilities to verify the state of items in unit tests. |
6 | 6 |
7 #include "sync/test/engine/test_syncable_utils.h" | 7 #include "components/sync/test/engine/test_syncable_utils.h" |
8 | 8 |
9 #include "sync/syncable/directory.h" | 9 #include "components/sync/syncable/directory.h" |
10 #include "sync/syncable/entry.h" | 10 #include "components/sync/syncable/entry.h" |
11 #include "sync/syncable/mutable_entry.h" | 11 #include "components/sync/syncable/mutable_entry.h" |
12 #include "sync/syncable/syncable_base_transaction.h" | 12 #include "components/sync/syncable/syncable_base_transaction.h" |
13 #include "sync/syncable/syncable_write_transaction.h" | 13 #include "components/sync/syncable/syncable_write_transaction.h" |
14 #include "sync/test/engine/test_id_factory.h" | 14 #include "components/sync/test/engine/test_id_factory.h" |
15 | 15 |
16 using std::string; | 16 using std::string; |
17 | 17 |
18 namespace syncer { | 18 namespace syncer { |
19 namespace syncable { | 19 namespace syncable { |
20 | 20 |
21 int CountEntriesWithName(BaseTransaction* rtrans, | 21 int CountEntriesWithName(BaseTransaction* rtrans, |
22 const syncable::Id& parent_id, | 22 const syncable::Id& parent_id, |
23 const string& name) { | 23 const string& name) { |
24 Directory::Metahandles child_handles; | 24 Directory::Metahandles child_handles; |
25 rtrans->directory()->GetChildHandlesById(rtrans, parent_id, &child_handles); | 25 rtrans->directory()->GetChildHandlesById(rtrans, parent_id, &child_handles); |
26 if (child_handles.size() <= 0) { | 26 if (child_handles.size() <= 0) { |
27 return 0; | 27 return 0; |
28 } | 28 } |
29 | 29 |
30 int number_of_entries_with_name = 0; | 30 int number_of_entries_with_name = 0; |
31 for (Directory::Metahandles::iterator i = child_handles.begin(); | 31 for (Directory::Metahandles::iterator i = child_handles.begin(); |
32 i != child_handles.end(); ++i) { | 32 i != child_handles.end(); ++i) { |
33 Entry e(rtrans, GET_BY_HANDLE, *i); | 33 Entry e(rtrans, GET_BY_HANDLE, *i); |
34 CHECK(e.good()); | 34 CHECK(e.good()); |
35 if (e.GetNonUniqueName()== name) { | 35 if (e.GetNonUniqueName() == name) { |
36 ++number_of_entries_with_name; | 36 ++number_of_entries_with_name; |
37 } | 37 } |
38 } | 38 } |
39 return number_of_entries_with_name; | 39 return number_of_entries_with_name; |
40 } | 40 } |
41 | 41 |
42 Id GetFirstEntryWithName(BaseTransaction* rtrans, | 42 Id GetFirstEntryWithName(BaseTransaction* rtrans, |
43 const syncable::Id& parent_id, | 43 const syncable::Id& parent_id, |
44 const string& name) { | 44 const string& name) { |
45 Directory::Metahandles child_handles; | 45 Directory::Metahandles child_handles; |
46 rtrans->directory()->GetChildHandlesById(rtrans, parent_id, &child_handles); | 46 rtrans->directory()->GetChildHandlesById(rtrans, parent_id, &child_handles); |
47 | 47 |
48 for (Directory::Metahandles::iterator i = child_handles.begin(); | 48 for (Directory::Metahandles::iterator i = child_handles.begin(); |
49 i != child_handles.end(); ++i) { | 49 i != child_handles.end(); ++i) { |
50 Entry e(rtrans, GET_BY_HANDLE, *i); | 50 Entry e(rtrans, GET_BY_HANDLE, *i); |
51 CHECK(e.good()); | 51 CHECK(e.good()); |
52 if (e.GetNonUniqueName()== name) { | 52 if (e.GetNonUniqueName() == name) { |
53 return e.GetId(); | 53 return e.GetId(); |
54 } | 54 } |
55 } | 55 } |
56 | 56 |
57 CHECK(false); | 57 CHECK(false); |
58 return Id(); | 58 return Id(); |
59 } | 59 } |
60 | 60 |
61 Id GetOnlyEntryWithName(BaseTransaction* rtrans, | 61 Id GetOnlyEntryWithName(BaseTransaction* rtrans, |
62 const syncable::Id& parent_id, | 62 const syncable::Id& parent_id, |
63 const string& name) { | 63 const string& name) { |
64 CHECK_EQ(1, CountEntriesWithName(rtrans, parent_id, name)); | 64 CHECK_EQ(1, CountEntriesWithName(rtrans, parent_id, name)); |
65 return GetFirstEntryWithName(rtrans, parent_id, name); | 65 return GetFirstEntryWithName(rtrans, parent_id, name); |
66 } | 66 } |
67 | 67 |
68 void CreateTypeRoot(WriteTransaction* trans, | 68 void CreateTypeRoot(WriteTransaction* trans, |
69 syncable::Directory *dir, | 69 syncable::Directory* dir, |
70 ModelType type) { | 70 ModelType type) { |
71 std::string tag_name = syncer::ModelTypeToRootTag(type); | 71 std::string tag_name = syncer::ModelTypeToRootTag(type); |
72 syncable::MutableEntry node(trans, | 72 syncable::MutableEntry node(trans, syncable::CREATE, type, |
73 syncable::CREATE, | 73 TestIdFactory::root(), tag_name); |
74 type, | |
75 TestIdFactory::root(), | |
76 tag_name); | |
77 DCHECK(node.good()); | 74 DCHECK(node.good()); |
78 node.PutUniqueServerTag(tag_name); | 75 node.PutUniqueServerTag(tag_name); |
79 node.PutIsDir(true); | 76 node.PutIsDir(true); |
80 node.PutServerIsDir(false); | 77 node.PutServerIsDir(false); |
81 node.PutIsUnsynced(false); | 78 node.PutIsUnsynced(false); |
82 node.PutIsUnappliedUpdate(false); | 79 node.PutIsUnappliedUpdate(false); |
83 node.PutServerVersion(20); | 80 node.PutServerVersion(20); |
84 node.PutBaseVersion(20); | 81 node.PutBaseVersion(20); |
85 node.PutIsDel(false); | 82 node.PutIsDel(false); |
86 node.PutId(syncer::TestIdFactory::MakeServer(tag_name)); | 83 node.PutId(syncer::TestIdFactory::MakeServer(tag_name)); |
87 sync_pb::EntitySpecifics specifics; | 84 sync_pb::EntitySpecifics specifics; |
88 syncer::AddDefaultFieldValue(type, &specifics); | 85 syncer::AddDefaultFieldValue(type, &specifics); |
89 node.PutServerSpecifics(specifics); | 86 node.PutServerSpecifics(specifics); |
90 node.PutSpecifics(specifics); | 87 node.PutSpecifics(specifics); |
91 } | 88 } |
92 | 89 |
93 sync_pb::DataTypeProgressMarker BuildProgress(ModelType type) { | 90 sync_pb::DataTypeProgressMarker BuildProgress(ModelType type) { |
94 sync_pb::DataTypeProgressMarker progress; | 91 sync_pb::DataTypeProgressMarker progress; |
95 progress.set_token("token"); | 92 progress.set_token("token"); |
96 progress.set_data_type_id(GetSpecificsFieldNumberFromModelType(type)); | 93 progress.set_data_type_id(GetSpecificsFieldNumberFromModelType(type)); |
97 return progress; | 94 return progress; |
98 } | 95 } |
99 | 96 |
100 } // namespace syncable | 97 } // namespace syncable |
101 } // namespace syncer | 98 } // namespace syncer |
OLD | NEW |