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 #include "sync/protocol/sync.pb.h"
     15 
     16 namespace syncer {
     17 namespace syncable {
     18 
     19 class BaseTransaction;
     20 class Directory;
     21 class Id;
     22 class WriteTransaction;
     23 
     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);
     30 
     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);
     35 
     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);
     41 
     42 void CreateTypeRoot(WriteTransaction* trans,
     43                     syncable::Directory *dir,
     44                     ModelType type);
     45 
     46 sync_pb::DataTypeProgressMarker BuildProgress(ModelType type);
     47 
     48 }  // namespace syncable
     49 }  // namespace syncer
     50 
     51 #endif  // SYNC_TEST_ENGINE_TEST_SYNCABLE_UTILS_H_
     52