Upstreaming browser/ui/uikit_ui_util from iOS.
[chromium-blink-merge.git] / sync / test / engine / test_syncable_utils.h
blob5975e1228ca5eb9293206ae5ab3f7ef407596eb5
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
3 // found in the LICENSE file.
4 //
5 // Utilities that are useful in verifying the state of items in a
6 // syncable database.
8 #ifndef SYNC_TEST_ENGINE_TEST_SYNCABLE_UTILS_H_
9 #define SYNC_TEST_ENGINE_TEST_SYNCABLE_UTILS_H_
11 #include <string>
13 #include "sync/internal_api/public/base/model_type.h"
14 #include "sync/protocol/sync.pb.h"
16 namespace syncer {
17 namespace syncable {
19 class BaseTransaction;
20 class Directory;
21 class Id;
22 class WriteTransaction;
24 // Count the number of entries with a given name inside of a parent.
25 // Useful to check folder structure and for porting older tests that
26 // rely on uniqueness inside of folders.
27 int CountEntriesWithName(BaseTransaction* rtrans,
28 const syncable::Id& parent_id,
29 const std::string& name);
31 // Get the first entry ID with name in a parent. The entry *must* exist.
32 Id GetFirstEntryWithName(BaseTransaction* rtrans,
33 const syncable::Id& parent_id,
34 const std::string& name);
36 // Assert that there's only one entry by this name in this parent.
37 // Return the Id.
38 Id GetOnlyEntryWithName(BaseTransaction* rtrans,
39 const syncable::Id& parent_id,
40 const std::string& name);
42 void CreateTypeRoot(WriteTransaction* trans,
43 syncable::Directory *dir,
44 ModelType type);
46 sync_pb::DataTypeProgressMarker BuildProgress(ModelType type);
48 } // namespace syncable
49 } // namespace syncer
51 #endif // SYNC_TEST_ENGINE_TEST_SYNCABLE_UTILS_H_