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. 7 8 #ifndef SYNC_TEST_ENGINE_TEST_SYNCABLE_UTILS_H_ 9 #define SYNC_TEST_ENGINE_TEST_SYNCABLE_UTILS_H_ 10 11 #include <string> 12 13 #include "sync/internal_api/public/base/model_type.h" 14 15 namespace syncer { 16 namespace syncable { 17 18 class BaseTransaction; 19 class Directory; 20 class Id; 21 class WriteTransaction; 22 23 // Count the number of entries with a given name inside of a parent. 24 // Useful to check folder structure and for porting older tests that 25 // rely on uniqueness inside of folders. 26 int CountEntriesWithName(BaseTransaction* rtrans, 27 const syncable::Id& parent_id, 28 const std::string& name); 29 30 // Get the first entry ID with name in a parent. The entry *must* exist. 31 Id GetFirstEntryWithName(BaseTransaction* rtrans, 32 const syncable::Id& parent_id, 33 const std::string& name); 34 35 // Assert that there's only one entry by this name in this parent. 36 // Return the Id. 37 Id GetOnlyEntryWithName(BaseTransaction* rtrans, 38 const syncable::Id& parent_id, 39 const std::string& name); 40 41 void CreateTypeRoot(WriteTransaction* trans, 42 syncable::Directory *dir, 43 ModelType type); 44 45 } // namespace syncable 46 } // namespace syncer 47 48 #endif // SYNC_TEST_ENGINE_TEST_SYNCABLE_UTILS_H_ 49