diff options
Diffstat (limited to 'app/sql/connection_unittest.cc')
-rw-r--r-- | app/sql/connection_unittest.cc | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/app/sql/connection_unittest.cc b/app/sql/connection_unittest.cc deleted file mode 100644 index 2c1a5a0..0000000 --- a/app/sql/connection_unittest.cc +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright (c) 2011 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 "app/sql/connection.h" -#include "app/sql/statement.h" -#include "base/file_util.h" -#include "base/scoped_temp_dir.h" -#include "testing/gtest/include/gtest/gtest.h" -#include "third_party/sqlite/sqlite3.h" - -class SQLConnectionTest : public testing::Test { - public: - SQLConnectionTest() {} - - void SetUp() { - ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); - ASSERT_TRUE(db_.Open(temp_dir_.path().AppendASCII("SQLConnectionTest.db"))); - } - - void TearDown() { - db_.Close(); - } - - sql::Connection& db() { return db_; } - - private: - ScopedTempDir temp_dir_; - sql::Connection db_; -}; - -TEST_F(SQLConnectionTest, Execute) { - // Valid statement should return true. - ASSERT_TRUE(db().Execute("CREATE TABLE foo (a, b)")); - EXPECT_EQ(SQLITE_OK, db().GetErrorCode()); - - // Invalid statement should fail. - ASSERT_FALSE(db().Execute("CREATE TAB foo (a, b")); - EXPECT_EQ(SQLITE_ERROR, db().GetErrorCode()); -} - -TEST_F(SQLConnectionTest, CachedStatement) { - sql::StatementID id1("foo", 12); - - ASSERT_TRUE(db().Execute("CREATE TABLE foo (a, b)")); - ASSERT_TRUE(db().Execute("INSERT INTO foo(a, b) VALUES (12, 13)")); - - // Create a new cached statement. - { - sql::Statement s(db().GetCachedStatement(id1, "SELECT a FROM foo")); - ASSERT_FALSE(!s); // Test ! operator for validity. - - ASSERT_TRUE(s.Step()); - EXPECT_EQ(12, s.ColumnInt(0)); - } - - // The statement should be cached still. - EXPECT_TRUE(db().HasCachedStatement(id1)); - - { - // Get the same statement using different SQL. This should ignore our - // SQL and use the cached one (so it will be valid). - sql::Statement s(db().GetCachedStatement(id1, "something invalid(")); - ASSERT_FALSE(!s); // Test ! operator for validity. - - ASSERT_TRUE(s.Step()); - EXPECT_EQ(12, s.ColumnInt(0)); - } - - // Make sure other statements aren't marked as cached. - EXPECT_FALSE(db().HasCachedStatement(SQL_FROM_HERE)); -} - -TEST_F(SQLConnectionTest, DoesStuffExist) { - // Test DoesTableExist. - EXPECT_FALSE(db().DoesTableExist("foo")); - ASSERT_TRUE(db().Execute("CREATE TABLE foo (a, b)")); - EXPECT_TRUE(db().DoesTableExist("foo")); - - // Should be case sensitive. - EXPECT_FALSE(db().DoesTableExist("FOO")); - - // Test DoesColumnExist. - EXPECT_FALSE(db().DoesColumnExist("foo", "bar")); - EXPECT_TRUE(db().DoesColumnExist("foo", "a")); - - // Testing for a column on a nonexistent table. - EXPECT_FALSE(db().DoesColumnExist("bar", "b")); -} - -TEST_F(SQLConnectionTest, GetLastInsertRowId) { - ASSERT_TRUE(db().Execute("CREATE TABLE foo (id INTEGER PRIMARY KEY, value)")); - - ASSERT_TRUE(db().Execute("INSERT INTO foo (value) VALUES (12)")); - - // Last insert row ID should be valid. - int64 row = db().GetLastInsertRowId(); - EXPECT_LT(0, row); - - // It should be the primary key of the row we just inserted. - sql::Statement s(db().GetUniqueStatement("SELECT value FROM foo WHERE id=?")); - s.BindInt64(0, row); - ASSERT_TRUE(s.Step()); - EXPECT_EQ(12, s.ColumnInt(0)); -} - |