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#include "sync/test/test_directory_backing_store.h" 6 7#include "base/basictypes.h" 8#include "base/logging.h" 9 10namespace syncer { 11namespace syncable { 12 13TestDirectoryBackingStore::TestDirectoryBackingStore( 14 const std::string& dir_name, sql::Connection* db) 15 : DirectoryBackingStore(dir_name, db) { 16} 17 18TestDirectoryBackingStore::~TestDirectoryBackingStore() { 19 // This variant of the DirectoryBackingStore does not own its connection, so 20 // we take care to not delete it here. 21 ignore_result(db_.release()); 22} 23 24DirOpenResult TestDirectoryBackingStore::Load( 25 Directory::MetahandlesMap* handles_map, 26 JournalIndex* delete_journals, 27 Directory::KernelLoadInfo* kernel_load_info) { 28 DCHECK(db_->is_open()); 29 30 if (!InitializeTables()) 31 return FAILED_OPEN_DATABASE; 32 33 if (!DropDeletedEntries()) 34 return FAILED_DATABASE_CORRUPT; 35 if (!LoadEntries(handles_map)) 36 return FAILED_DATABASE_CORRUPT; 37 if (!LoadDeleteJournals(delete_journals)) 38 return FAILED_DATABASE_CORRUPT; 39 if (!LoadInfo(kernel_load_info)) 40 return FAILED_DATABASE_CORRUPT; 41 if (!VerifyReferenceIntegrity(handles_map)) 42 return FAILED_DATABASE_CORRUPT; 43 44 return OPENED; 45} 46 47} // namespace syncable 48} // namespace syncer 49