Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1988)

Unified Diff: chrome/browser/sync/util/user_settings_unittest.cc

Issue 2801017: sqlite_utils: don't dereference an empty vector. (Closed)
Patch Set: Created 10 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/sync/util/data_encryption.cc ('k') | chrome/common/sqlite_utils.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/sync/util/user_settings_unittest.cc
diff --git a/chrome/browser/sync/util/user_settings_unittest.cc b/chrome/browser/sync/util/user_settings_unittest.cc
index 073c29ca906bcd5d13c3cb24cbf2c5449bbc0e81..a39f98744742ef87fda92b65e006280d88e483f9 100644
--- a/chrome/browser/sync/util/user_settings_unittest.cc
+++ b/chrome/browser/sync/util/user_settings_unittest.cc
@@ -40,6 +40,8 @@ class UserSettingsTest : public testing::Test {
destination_directory.Append(FilePath(kV10UserSettingsDB));
ASSERT_EQ(SQLITE_OK, sqlite_utils::OpenSqliteDb(v10_user_setting_db_path_,
&primer_handle));
+ sqlite_utils::scoped_sqlite_db_ptr db(primer_handle);
+
old_style_sync_data_path_ =
destination_directory.Append(FilePath(kOldStyleSyncDataDB));
@@ -82,7 +84,6 @@ class UserSettingsTest : public testing::Test {
LOG(FATAL) << query << "\n" << sqlite3_errmsg(primer_handle);
}
}
- sqlite3_close(primer_handle);
}
// Creates and populates the V11 database file within
@@ -93,6 +94,7 @@ class UserSettingsTest : public testing::Test {
destination_directory.Append(FilePath(kV11UserSettingsDB));
ASSERT_EQ(SQLITE_OK, sqlite_utils::OpenSqliteDb(v11_user_setting_db_path_,
&primer_handle));
+ sqlite_utils::scoped_sqlite_db_ptr db(primer_handle);
// Create settings table.
ExecOrDie(primer_handle, "CREATE TABLE settings"
@@ -124,8 +126,6 @@ class UserSettingsTest : public testing::Test {
LOG(FATAL) << query << "\n" << sqlite3_errmsg(primer_handle);
}
}
-
- sqlite3_close(primer_handle);
}
const std::string& sync_data() const { return sync_data_; }
@@ -164,6 +164,7 @@ TEST_F(UserSettingsTest, MigrateFromV10ToV11) {
sqlite3* handle = NULL;
ASSERT_EQ(SQLITE_OK, sqlite_utils::OpenSqliteDb(v10_user_setting_db_path(),
&handle));
+ sqlite_utils::scoped_sqlite_db_ptr db(handle);
// Note that we don't use ScopedStatement to avoid closing the sqlite handle
// before finalizing the statement.
@@ -183,7 +184,6 @@ TEST_F(UserSettingsTest, MigrateFromV10ToV11) {
std::string contents;
ASSERT_TRUE(file_util::ReadFileToString(new_style_path, &contents));
EXPECT_TRUE(sync_data() == contents);
- sqlite3_close(handle);
}
TEST_F(UserSettingsTest, MigrateFromV11ToV12) {
@@ -197,6 +197,7 @@ TEST_F(UserSettingsTest, MigrateFromV11ToV12) {
sqlite3* handle = NULL;
ASSERT_EQ(SQLITE_OK, sqlite_utils::OpenSqliteDb(v11_user_setting_db_path(),
&handle));
+ sqlite_utils::scoped_sqlite_db_ptr db(handle);
{
SQLStatement version_query;
@@ -222,3 +223,31 @@ TEST_F(UserSettingsTest, APEncode) {
const string decoded = APDecode(encoded);
ASSERT_EQ(test, decoded);
}
+
+TEST_F(UserSettingsTest, PersistEmptyToken) {
+ ScopedTempDir temp_dir;
+ ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
+ UserSettings settings;
+ settings.Init(temp_dir.path().AppendASCII("UserSettings.sqlite3"));
+ settings.SetAuthTokenForService("username", "service", "");
+ std::string username;
+ std::string token;
+ ASSERT_TRUE(settings.GetLastUserAndServiceToken("service", &username,
+ &token));
+ EXPECT_EQ("", token);
+ EXPECT_EQ("username", username);
+}
+
+TEST_F(UserSettingsTest, PersistNonEmptyToken) {
+ ScopedTempDir temp_dir;
+ ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
+ UserSettings settings;
+ settings.Init(temp_dir.path().AppendASCII("UserSettings.sqlite3"));
+ settings.SetAuthTokenForService("username", "service", "012345beefbeef");
+ std::string username;
+ std::string token;
+ ASSERT_TRUE(settings.GetLastUserAndServiceToken("service", &username,
+ &token));
+ EXPECT_EQ("012345beefbeef", token);
+ EXPECT_EQ("username", username);
+}
« no previous file with comments | « chrome/browser/sync/util/data_encryption.cc ('k') | chrome/common/sqlite_utils.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698