| // 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() = default; | |
| SQLTestBase::~SQLTestBase() = default; | |
| base::FilePath SQLTestBase::db_path() { | |
| return temp_dir_.GetPath().AppendASCII("SQLTest.db"); | |
| } | |
| sql::Database& 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()); | |
| 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); | |
| 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 |