Home | History | Annotate | Download | only in engine
      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