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

Side by Side Diff: chrome/browser/sync/util/user_settings_unittest.cc

Issue 340055: String cleanup in sync code (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/sync/util/user_settings.cc ('k') | chrome/chrome.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 entry. 3 // found in the LICENSE entry.
4 4
5 #include <string> 5 #include <string>
6 6
7 #include "base/file_util.h" 7 #include "base/file_util.h"
8 #include "base/test/test_file_util.h" 8 #include "base/test/test_file_util.h"
9 #include "chrome/browser/sync/syncable/directory_manager.h" 9 #include "chrome/browser/sync/syncable/directory_manager.h"
10 #include "chrome/browser/sync/util/character_set_converters.h" 10 #include "chrome/browser/sync/util/character_set_converters.h"
11 #include "chrome/browser/sync/util/user_settings.h" 11 #include "chrome/browser/sync/util/user_settings.h"
12 #include "chrome/browser/sync/util/query_helpers.h" 12 #include "chrome/browser/sync/util/query_helpers.h"
13 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
14 14
15 using browser_sync::FilePathToUTF8;
15 using browser_sync::UserSettings; 16 using browser_sync::UserSettings;
16 17
17 static const PathChar* kV10UserSettingsDB = PSTR("Version10Settings.sqlite3"); 18 static const FilePath::CharType kV10UserSettingsDB[] =
18 static const PathChar* kOldStyleSyncDataDB = PSTR("OldStyleSyncData.sqlite3"); 19 FILE_PATH_LITERAL("Version10Settings.sqlite3");
20 static const FilePath::CharType kOldStyleSyncDataDB[] =
21 FILE_PATH_LITERAL("OldStyleSyncData.sqlite3");
22 static const FilePath::CharType kSyncDataDB[] =
23 FILE_PATH_LITERAL("SyncData.sqlite3");
19 24
20 class UserSettingsTest : public testing::Test { 25 class UserSettingsTest : public testing::Test {
21 public: 26 public:
22 UserSettingsTest() : sync_data_("Some sync data") { } 27 UserSettingsTest() : sync_data_("Some sync data") { }
23 void SetUpVersion10Databases() { 28 void SetUpVersion10Databases() {
24 CleanUpVersion10Databases(); 29 CleanUpVersion10Databases();
25 sqlite3* primer_handle = NULL; 30 sqlite3* primer_handle = NULL;
26 ASSERT_TRUE(SQLITE_OK == SqliteOpen(kV10UserSettingsDB, 31 ASSERT_TRUE(SQLITE_OK == SqliteOpen(FilePath(kV10UserSettingsDB),
27 &primer_handle)); 32 &primer_handle));
28 FilePath old_sync_data(kOldStyleSyncDataDB); 33 FilePath old_sync_data(kOldStyleSyncDataDB);
29 34
30 ASSERT_TRUE(sync_data_.length() == 35 ASSERT_TRUE(sync_data_.length() ==
31 static_cast<size_t>(file_util::WriteFile( 36 static_cast<size_t>(file_util::WriteFile(
32 old_sync_data, sync_data_.data(), sync_data_.length()))); 37 old_sync_data, sync_data_.data(), sync_data_.length())));
33 38
34 // Create settings table. 39 // Create settings table.
35 ExecOrDie(primer_handle, "CREATE TABLE settings" 40 ExecOrDie(primer_handle, "CREATE TABLE settings"
36 " (email, key, value, " 41 " (email, key, value, "
37 " PRIMARY KEY(email, key) ON CONFLICT REPLACE)"); 42 " PRIMARY KEY(email, key) ON CONFLICT REPLACE)");
38 43
39 // Create and populate version table. 44 // Create and populate version table.
40 ExecOrDie(primer_handle, "CREATE TABLE db_version ( version )"); 45 ExecOrDie(primer_handle, "CREATE TABLE db_version ( version )");
41 ExecOrDie(primer_handle, "INSERT INTO db_version values ( ? )", 10); 46 ExecOrDie(primer_handle, "INSERT INTO db_version values ( ? )", 10);
42 // Create shares table. 47 // Create shares table.
43 ExecOrDie(primer_handle, "CREATE TABLE shares" 48 ExecOrDie(primer_handle, "CREATE TABLE shares"
44 " (email, share_name, file_name," 49 " (email, share_name, file_name,"
45 " PRIMARY KEY(email, share_name) ON CONFLICT REPLACE)"); 50 " PRIMARY KEY(email, share_name) ON CONFLICT REPLACE)");
46 // Populate a share. 51 // Populate a share.
47 ExecOrDie(primer_handle, "INSERT INTO shares values ( ?, ?, ?)", 52 ExecOrDie(primer_handle, "INSERT INTO shares values ( ?, ?, ?)",
48 "foo@foo.com", "foo@foo.com", 53 "foo@foo.com", "foo@foo.com", FilePathToUTF8(old_sync_data));
49 browser_sync::PathStringToUTF8Quick(kOldStyleSyncDataDB));
50 sqlite3_close(primer_handle); 54 sqlite3_close(primer_handle);
51 } 55 }
52 56
53 void CleanUpVersion10Databases() { 57 void CleanUpVersion10Databases() {
54 ASSERT_TRUE(file_util::DieFileDie(FilePath(kV10UserSettingsDB), false)); 58 ASSERT_TRUE(file_util::DieFileDie(FilePath(kV10UserSettingsDB), false));
55 ASSERT_TRUE(file_util::DieFileDie(FilePath(kOldStyleSyncDataDB), false)); 59 ASSERT_TRUE(file_util::DieFileDie(FilePath(kOldStyleSyncDataDB), false));
56 ASSERT_TRUE(file_util::DieFileDie(FilePath(PSTR("SyncData.sqlite3")), 60 ASSERT_TRUE(file_util::DieFileDie(FilePath(kSyncDataDB), false));
57 false));
58 } 61 }
59 62
60 const std::string& sync_data() const { return sync_data_; } 63 const std::string& sync_data() const { return sync_data_; }
61 64
62 private: 65 private:
63 std::string sync_data_; 66 std::string sync_data_;
64 }; 67 };
65 68
66 TEST_F(UserSettingsTest, MigrateFromV10ToV11) { 69 TEST_F(UserSettingsTest, MigrateFromV10ToV11) {
67 SetUpVersion10Databases(); 70 SetUpVersion10Databases();
68 { 71 {
69 // Create a UserSettings, which should trigger migration code. We do this 72 // Create a UserSettings, which should trigger migration code. We do this
70 // inside a scoped block so it closes itself and we can poke around to see 73 // inside a scoped block so it closes itself and we can poke around to see
71 // what happened later. 74 // what happened later.
72 UserSettings settings; 75 UserSettings settings;
73 settings.Init(kV10UserSettingsDB); 76 settings.Init(FilePath(kV10UserSettingsDB));
74 } 77 }
75 78
76 // Now poke around using sqlite to see if UserSettings migrated properly. 79 // Now poke around using sqlite to see if UserSettings migrated properly.
77 sqlite3* handle = NULL; 80 sqlite3* handle = NULL;
78 ASSERT_TRUE(SQLITE_OK == SqliteOpen(kV10UserSettingsDB, &handle)); 81 ASSERT_TRUE(SQLITE_OK == SqliteOpen(FilePath(kV10UserSettingsDB), &handle));
79 ScopedStatement version_query(PrepareQuery(handle, 82 ScopedStatement version_query(PrepareQuery(handle,
80 "SELECT version FROM db_version")); 83 "SELECT version FROM db_version"));
81 ASSERT_TRUE(SQLITE_ROW == sqlite3_step(version_query.get())); 84 ASSERT_TRUE(SQLITE_ROW == sqlite3_step(version_query.get()));
82 85
83 const int version = sqlite3_column_int(version_query.get(), 0); 86 const int version = sqlite3_column_int(version_query.get(), 0);
84 EXPECT_TRUE(11 == version); 87 EXPECT_EQ(11, version);
85 EXPECT_FALSE(file_util::PathExists(FilePath(kOldStyleSyncDataDB))); 88 EXPECT_FALSE(file_util::PathExists(FilePath(kOldStyleSyncDataDB)));
86 89
87 PathString path(syncable::DirectoryManager::GetSyncDataDatabaseFilename()); 90 const FilePath& path =
91 syncable::DirectoryManager::GetSyncDataDatabaseFilename();
88 92
89 std::string contents; 93 std::string contents;
90 ASSERT_TRUE(file_util::ReadFileToString(FilePath(path), &contents)); 94 ASSERT_TRUE(file_util::ReadFileToString(FilePath(path), &contents));
91 EXPECT_TRUE(sync_data() == contents); 95 EXPECT_TRUE(sync_data() == contents);
92 } 96 }
OLDNEW
« no previous file with comments | « chrome/browser/sync/util/user_settings.cc ('k') | chrome/chrome.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698