15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "sync/test/test_directory_backing_store.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/basictypes.h" 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/logging.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace syncer { 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace syncable { 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TestDirectoryBackingStore::TestDirectoryBackingStore( 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& dir_name, sql::Connection* db) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : DirectoryBackingStore(dir_name, db) { 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TestDirectoryBackingStore::~TestDirectoryBackingStore() { 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // This variant of the DirectoryBackingStore does not own its connection, so 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // we take care to not delete it here. 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ignore_result(db_.release()); 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)DirOpenResult TestDirectoryBackingStore::Load( 25868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) Directory::MetahandlesMap* handles_map, 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) JournalIndex* delete_journals, 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Directory::KernelLoadInfo* kernel_load_info) { 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DCHECK(db_->is_open()); 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (!InitializeTables()) 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return FAILED_OPEN_DATABASE; 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (!DropDeletedEntries()) 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return FAILED_DATABASE_CORRUPT; 35868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) if (!LoadEntries(handles_map)) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return FAILED_DATABASE_CORRUPT; 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!LoadDeleteJournals(delete_journals)) 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return FAILED_DATABASE_CORRUPT; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (!LoadInfo(kernel_load_info)) 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return FAILED_DATABASE_CORRUPT; 41868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) if (!VerifyReferenceIntegrity(handles_map)) 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return FAILED_DATABASE_CORRUPT; 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return OPENED; 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace syncable 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace syncer 49