Index: sql/test/sql_test_base.cc |
diff --git a/sql/test/sql_test_base.cc b/sql/test/sql_test_base.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..612a5e46a208a2ebaf00b7c90cf67dc5148e7a68 |
--- /dev/null |
+++ b/sql/test/sql_test_base.cc |
@@ -0,0 +1,66 @@ |
+// 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::CorruptSizeInHeaderOfPath(const base::FilePath& db_path) { |
+ return sql::test::CorruptSizeInHeader(db_path); |
+} |
+ |
+void SQLTestBase::WriteJunkToDatabase(WriteJunkType type) { |
+ base::ScopedFILE file(base::OpenFile( |
+ db_path(), |
+ type == TYPE_TRUNCATE_AND_CREATE ? "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 |