| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/sync/util/query_helpers.h" | 5 #include "chrome/browser/sync/util/query_helpers.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "chrome/browser/sync/util/compat_file.h" | 10 #include "base/file_util.h" |
| 11 #include "chrome/common/sqlite_utils.h" |
| 12 #include "chrome/test/file_test_utils.h" |
| 11 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
| 12 | 14 |
| 13 using std::numeric_limits; | 15 using std::numeric_limits; |
| 14 using std::string; | 16 using std::string; |
| 15 | 17 |
| 16 TEST(QueryHelpers, APEncode) { | 18 TEST(QueryHelpers, APEncode) { |
| 17 string test; | 19 string test; |
| 18 char i; | 20 char i; |
| 19 for (i = numeric_limits<char>::min(); i < numeric_limits<char>::max(); ++i) | 21 for (i = numeric_limits<char>::min(); i < numeric_limits<char>::max(); ++i) |
| 20 test.push_back(i); | 22 test.push_back(i); |
| 21 test.push_back(i); | 23 test.push_back(i); |
| 22 const string encoded = APEncode(test); | 24 const string encoded = APEncode(test); |
| 23 const string decoded = APDecode(encoded); | 25 const string decoded = APDecode(encoded); |
| 24 ASSERT_EQ(test, decoded); | 26 ASSERT_EQ(test, decoded); |
| 25 } | 27 } |
| 26 | 28 |
| 27 TEST(QueryHelpers, TestExecFailure) { | 29 TEST(QueryHelpers, TestExecFailure) { |
| 28 sqlite3* database; | 30 FilePath test_database; |
| 29 const PathString test_database(PSTR("queryhelper_test.sqlite3")); | 31 file_util::GetCurrentDirectory(&test_database); |
| 30 PathRemove(test_database); | 32 test_database = test_database.Append( |
| 31 ASSERT_EQ(SQLITE_OK, SqliteOpen(test_database, &database)); | 33 FILE_PATH_LITERAL("queryhelper_test.sqlite3")); |
| 32 EXPECT_EQ(SQLITE_DONE, Exec(database, "CREATE TABLE test_table (idx int)")); | 34 // Cleanup left-over file, if present. |
| 33 EXPECT_NE(SQLITE_DONE, Exec(database, "ALTER TABLE test_table ADD COLUMN " | 35 file_util::Delete(test_database, true); |
| 34 "broken int32 default ?", -1)); | 36 FileAutoDeleter file_deleter(test_database); |
| 35 PathRemove(test_database); | 37 { |
| 38 sqlite3* database = NULL; |
| 39 ASSERT_EQ(SQLITE_OK, SqliteOpen(test_database, &database)); |
| 40 sqlite_utils::scoped_sqlite_db_ptr database_deleter(database); |
| 41 EXPECT_EQ(SQLITE_DONE, Exec(database, "CREATE TABLE test_table (idx int)")); |
| 42 EXPECT_NE(SQLITE_DONE, Exec(database, "ALTER TABLE test_table ADD COLUMN " |
| 43 "broken int32 default ?", -1)); |
| 44 } |
| 36 } | 45 } |
| OLD | NEW |