summaryrefslogtreecommitdiffstats
path: root/sql/mojo/sql_test_base.h
diff options
context:
space:
mode:
Diffstat (limited to 'sql/mojo/sql_test_base.h')
-rw-r--r--sql/mojo/sql_test_base.h92
1 files changed, 0 insertions, 92 deletions
diff --git a/sql/mojo/sql_test_base.h b/sql/mojo/sql_test_base.h
deleted file mode 100644
index 2fba5aa..0000000
--- a/sql/mojo/sql_test_base.h
+++ /dev/null
@@ -1,92 +0,0 @@
-// 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.
-
-#ifndef SQL_MOJO_SQL_TEST_BASE_H_
-#define SQL_MOJO_SQL_TEST_BASE_H_
-
-#include "base/files/file_path.h"
-#include "base/macros.h"
-#include "base/memory/scoped_ptr.h"
-#include "components/filesystem/public/interfaces/file_system.mojom.h"
-#include "mojo/public/cpp/bindings/binding.h"
-#include "mojo/shell/public/cpp/application_test_base.h"
-#include "sql/connection.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace sql {
-
-class Connection;
-class ScopedMojoFilesystemVFS;
-
-// Base class for SQL tests.
-//
-// WARNING: We want to run the same gtest based unit test code both against
-// chromium (which uses this implementation here), and the mojo code (which
-// uses a different class named SQLTestBase). These two classes need to have
-// the same interface because we compile time switch them based on a
-// #define. We need to have two different implementations because the mojo
-// version derives from mojo::test::ApplicationTestBase instead of
-// testing::Test.
-class SQLTestBase : public mojo::test::ApplicationTestBase,
- public filesystem::FileSystemClient {
- public:
- SQLTestBase();
- ~SQLTestBase() override;
-
- enum WriteJunkType {
- TYPE_OVERWRITE_AND_TRUNCATE,
- TYPE_OVERWRITE
- };
-
- // Returns the path to the database.
- base::FilePath db_path();
-
- // Returns a connection to the database at db_path().
- sql::Connection& db();
-
- // Closes the current connection to the database and reopens it.
- bool Reopen();
-
- // Proxying method around base::PathExists.
- bool GetPathExists(const base::FilePath& path);
-
- // SQLite stores the database size in the header, and if the actual
- // OS-derived size is smaller, the database is considered corrupt.
- // [This case is actually a common form of corruption in the wild.]
- // This helper sets the in-header size to one page larger than the
- // actual file size. The resulting file will return SQLITE_CORRUPT
- // for most operations unless PRAGMA writable_schema is turned ON.
- //
- // Returns false if any error occurs accessing the file.
- bool CorruptSizeInHeaderOfDB();
-
- // Writes junk to the start of the file.
- void WriteJunkToDatabase(WriteJunkType type);
-
- // Sets the database file size to 0.
- void TruncateDatabase();
-
- // Overridden from testing::Test:
- void SetUp() override;
- void TearDown() override;
-
- // Overridden from FileSystemClient:
- void OnFileSystemShutdown() override;
-
- protected:
- filesystem::FileSystemPtr& files() { return files_; }
-
- private:
- filesystem::FileSystemPtr files_;
-
- scoped_ptr<ScopedMojoFilesystemVFS> vfs_;
- mojo::Binding<filesystem::FileSystemClient> binding_;
- sql::Connection db_;
-
- DISALLOW_COPY_AND_ASSIGN(SQLTestBase);
-};
-
-} // namespace sql
-
-#endif // SQL_MOJO_SQL_TEST_BASE_H_