// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "sql/test/sql_test_base.h" #include "base/files/file_util.h" #include "sql/test/test_helpers.h" namespace sql { SQLTestBase::SQLTestBase() { } SQLTestBase::~SQLTestBase() { } base::FilePath SQLTestBase::db_path() { return temp_dir_.path().AppendASCII("SQLTest.db"); } sql::Connection& SQLTestBase::db() { return db_; } bool SQLTestBase::Reopen() { db_.Close(); return db_.Open(db_path()); } bool SQLTestBase::GetPathExists(const base::FilePath& path) { return base::PathExists(path); } bool SQLTestBase::CorruptSizeInHeaderOfDB() { return sql::test::CorruptSizeInHeader(db_path()); } void SQLTestBase::WriteJunkToDatabase(WriteJunkType type) { base::ScopedFILE file(base::OpenFile( db_path(), type == TYPE_OVERWRITE_AND_TRUNCATE ? "wb" : "rb+")); ASSERT_TRUE(file.get() != NULL); ASSERT_EQ(0, fseek(file.get(), 0, SEEK_SET)); const char* kJunk = "Now is the winter of our discontent."; fputs(kJunk, file.get()); } void SQLTestBase::TruncateDatabase() { base::ScopedFILE file(base::OpenFile(db_path(), "rb+")); ASSERT_TRUE(file.get() != NULL); ASSERT_EQ(0, fseek(file.get(), 0, SEEK_SET)); ASSERT_TRUE(base::TruncateFile(file.get())); } void SQLTestBase::SetUp() { ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); ASSERT_TRUE(db_.Open(db_path())); } void SQLTestBase::TearDown() { db_.Close(); } } // namespace sql