Index: chrome/browser/sync/syncable/directory_backing_store_unittest.cc |
diff --git a/chrome/browser/sync/syncable/directory_backing_store_unittest.cc b/chrome/browser/sync/syncable/directory_backing_store_unittest.cc |
index 214690c4e74c636c75f529ad270ef488105e1322..d80200f7469931229b5efe877e9ce3076f18268e 100644 |
--- a/chrome/browser/sync/syncable/directory_backing_store_unittest.cc |
+++ b/chrome/browser/sync/syncable/directory_backing_store_unittest.cc |
@@ -48,6 +48,7 @@ class MigrationTest : public testing::TestWithParam<int> { |
void SetUpVersion70Database(); |
void SetUpVersion71Database(); |
void SetUpVersion72Database(); |
+ void SetUpVersion73Database(); |
void SetUpCurrentDatabaseAndCheckVersion() { |
SetUpVersion70Database(); // Prepopulates data. |
@@ -643,7 +644,7 @@ void MigrationTest::SetUpVersion72Database() { |
ASSERT_TRUE(connection.BeginTransaction()); |
ASSERT_TRUE(connection.Execute( |
"CREATE TABLE share_version (id VARCHAR(128) primary key, data INT);" |
- "INSERT INTO 'share_version' VALUES('nick@chromium.org',71);" |
+ "INSERT INTO 'share_version' VALUES('nick@chromium.org',72);" |
"CREATE TABLE metas(metahandle bigint primary key ON CONFLICT FAIL," |
"base_version bigint default -1,server_version bigint default 0," |
"mtime bigint default 0,server_mtime bigint default 0,ctime bigint " |
@@ -741,6 +742,111 @@ void MigrationTest::SetUpVersion72Database() { |
ASSERT_TRUE(connection.CommitTransaction()); |
} |
+void MigrationTest::SetUpVersion73Database() { |
+ sql::Connection connection; |
+ ASSERT_TRUE(connection.Open(GetDatabasePath())); |
+ ASSERT_TRUE(connection.BeginTransaction()); |
+ ASSERT_TRUE(connection.Execute( |
+ "CREATE TABLE share_version (id VARCHAR(128) primary key, data INT);" |
+ "INSERT INTO 'share_version' VALUES('nick@chromium.org',73);" |
+ "CREATE TABLE metas(metahandle bigint primary key ON CONFLICT FAIL," |
+ "base_version bigint default -1,server_version bigint default 0," |
+ "mtime bigint default 0,server_mtime bigint default 0,ctime bigint " |
+ "default 0,server_ctime bigint default 0,server_position_in_parent " |
+ "bigint default 0,local_external_id bigint default 0,id varchar(255) " |
+ "default 'r',parent_id varchar(255) default 'r',server_parent_id " |
+ "varchar(255) default 'r',prev_id varchar(255) default 'r',next_id " |
+ "varchar(255) default 'r',is_unsynced bit default 0," |
+ "is_unapplied_update bit default 0,is_del bit default 0,is_dir bit " |
+ "default 0,server_is_dir bit default 0,server_is_del bit default 0," |
+ "non_unique_name varchar,server_non_unique_name varchar(255)," |
+ "unique_server_tag varchar,unique_client_tag varchar,specifics blob," |
+ "server_specifics blob);" |
+ "INSERT INTO 'metas' VALUES(1,-1,0,129079956640320000,0," |
+ "129079956640320000,0,0,0,'r','r','r','r','r',0,0,0,1,0,0,NULL,NULL," |
+ "NULL,NULL,X'',X'');" |
+ "INSERT INTO 'metas' VALUES(2,669,669,128976886618480000," |
+ "128976886618480000,128976886618480000,128976886618480000,-2097152,4," |
+ "'s_ID_2','s_ID_9','s_ID_9','s_ID_2','s_ID_2',0,0,1,0,0,1," |
+ "'Deleted Item','Deleted Item',NULL,NULL,X'C28810220A16687474703A2F2F" |
+ "7777772E676F6F676C652E636F6D2F12084141534741534741',X'C28810260A1768" |
+ "7474703A2F2F7777772E676F6F676C652E636F6D2F32120B41534144474144474144" |
+ "47');" |
+ "INSERT INTO 'metas' VALUES(4,681,681,129002163642690000," |
+ "129002163642690000,129002163642690000,129002163642690000,-3145728,3," |
+ "'s_ID_4','s_ID_9','s_ID_9','s_ID_4','s_ID_4',0,0,1,0,0,1," |
+ "'Welcome to Chromium','Welcome to Chromium',NULL,NULL,X'C28810350A31" |
+ "687474703A2F2F7777772E676F6F676C652E636F6D2F6368726F6D652F696E746C2F" |
+ "656E2F77656C636F6D652E68746D6C1200',X'C28810350A31687474703A2F2F7777" |
+ "772E676F6F676C652E636F6D2F6368726F6D652F696E746C2F656E2F77656C636F6D" |
+ "652E68746D6C1200');" |
+ "INSERT INTO 'metas' VALUES(5,677,677,129001555500000000," |
+ "129001555500000000,129001555500000000,129001555500000000,1048576,7," |
+ "'s_ID_5','s_ID_9','s_ID_9','s_ID_5','s_ID_5',0,0,1,0,0,1,'Google'," |
+ "'Google',NULL,NULL,X'C28810220A16687474703A2F2F7777772E676F6F676C652" |
+ "E636F6D2F12084147415347415347',X'C28810220A16687474703A2F2F7777772E6" |
+ "76F6F676C652E636F6D2F12084147464447415347');" |
+ "INSERT INTO 'metas' VALUES(6,694,694,129053976170000000," |
+ "129053976170000000,129053976170000000,129053976170000000,-4194304,6," |
+ "'s_ID_6','s_ID_9','s_ID_9','r','r',0,0,0,1,1,0,'The Internet'," |
+ "'The Internet',NULL,NULL,X'C2881000',X'C2881000');" |
+ "INSERT INTO 'metas' VALUES(7,663,663,128976864758480000," |
+ "128976864758480000,128976864758480000,128976864758480000,1048576,0," |
+ "'s_ID_7','r','r','r','r',0,0,0,1,1,0,'Google Chrome','Google Chrome'" |
+ ",'google_chrome',NULL,NULL,NULL);" |
+ "INSERT INTO 'metas' VALUES(8,664,664,128976864758480000," |
+ "128976864758480000,128976864758480000,128976864758480000,1048576,0," |
+ "'s_ID_8','s_ID_7','s_ID_7','r','r',0,0,0,1,1,0,'Bookmarks'," |
+ "'Bookmarks','google_chrome_bookmarks',NULL,X'C2881000',X'C2881000');" |
+ "INSERT INTO 'metas' VALUES(9,665,665,128976864758480000," |
+ "128976864758480000,128976864758480000,128976864758480000,1048576,1," |
+ "'s_ID_9','s_ID_8','s_ID_8','r','s_ID_10',0,0,0,1,1,0,'Bookmark Bar'," |
+ "'Bookmark Bar','bookmark_bar',NULL,X'C2881000',X'C2881000');" |
+ "INSERT INTO 'metas' VALUES(10,666,666,128976864758480000," |
+ "128976864758480000,128976864758480000,128976864758480000,2097152,2," |
+ "'s_ID_10','s_ID_8','s_ID_8','s_ID_9','r',0,0,0,1,1,0," |
+ "'Other Bookmarks','Other Bookmarks','other_bookmarks',NULL," |
+ "X'C2881000',X'C2881000');" |
+ "INSERT INTO 'metas' VALUES(11,683,683,129079956948440000," |
+ "129079956948440000,129079956948440000,129079956948440000,-1048576,8," |
+ "'s_ID_11','s_ID_6','s_ID_6','r','s_ID_13',0,0,0,0,0,0," |
+ "'Home (The Chromium Projects)','Home (The Chromium Projects)',NULL," |
+ "NULL,X'C28810220A18687474703A2F2F6465762E6368726F6D69756D2E6F72672F1" |
+ "206414741545741',X'C28810290A1D687474703A2F2F6465762E6368726F6D69756" |
+ "D2E6F72672F6F7468657212084146414756415346');" |
+ "INSERT INTO 'metas' VALUES(12,685,685,129079957513650000," |
+ "129079957513650000,129079957513650000,129079957513650000,0,9," |
+ "'s_ID_12','s_ID_6','s_ID_6','s_ID_13','s_ID_14',0,0,0,1,1,0," |
+ "'Extra Bookmarks','Extra Bookmarks',NULL,NULL,X'C2881000'," |
+ "X'C2881000');" |
+ "INSERT INTO 'metas' VALUES(13,687,687,129079957985300000," |
+ "129079957985300000,129079957985300000,129079957985300000,-917504,10," |
+ "'s_ID_13','s_ID_6','s_ID_6','s_ID_11','s_ID_12',0,0,0,0,0,0," |
+ "'ICANN | Internet Corporation for Assigned Names and Numbers'," |
+ "'ICANN | Internet Corporation for Assigned Names and Numbers',NULL," |
+ "NULL,X'C28810240A15687474703A2F2F7777772E6963616E6E2E636F6D2F120B504" |
+ "E474158463041414646',X'C28810200A15687474703A2F2F7777772E6963616E6E2" |
+ "E636F6D2F120744414146415346');" |
+ "INSERT INTO 'metas' VALUES(14,692,692,129079958383000000," |
+ "129079958383000000,129079958383000000,129079958383000000,1048576,11," |
+ "'s_ID_14','s_ID_6','s_ID_6','s_ID_12','r',0,0,0,0,0,0," |
+ "'The WebKit Open Source Project','The WebKit Open Source Project'," |
+ "NULL,NULL,""X'C288101A0A12687474703A2F2F7765626B69742E6F72672F120450" |
+ "4E4758',X'C288101C0A13687474703A2F2F7765626B69742E6F72672F781205504E" |
+ "473259');" |
+ "CREATE TABLE models (model_id BLOB primary key, " |
+ "last_download_timestamp INT, initial_sync_ended BOOLEAN default 0);" |
+ "INSERT INTO 'models' VALUES(X'C2881000',694,1);" |
+ "CREATE TABLE 'share_info' (id TEXT primary key, name TEXT, " |
+ "store_birthday TEXT, db_create_version TEXT, db_create_time INT, " |
+ "next_id INT default -2, cache_guid TEXT, " |
+ "notification_state BLOB);" |
+ "INSERT INTO 'share_info' VALUES('nick@chromium.org','nick@chromium.org'," |
+ "'c27e9f59-08ca-46f8-b0cc-f16a2ed778bb','Unknown',1263522064,-65542," |
+ "'9010788312004066376x-6609234393368420856x',X'C2881000');")); |
+ ASSERT_TRUE(connection.CommitTransaction()); |
+} |
+ |
TEST_F(DirectoryBackingStoreTest, MigrateVersion67To68) { |
SetUpVersion67Database(); |
@@ -937,6 +1043,56 @@ TEST_F(DirectoryBackingStoreTest, MigrateVersion72To73) { |
connection.DoesColumnExist("share_info", "notification_state")); |
} |
+TEST_F(DirectoryBackingStoreTest, MigrateVersion73To74) { |
+ SetUpVersion73Database(); |
+ |
+ { |
+ sql::Connection connection; |
+ ASSERT_TRUE(connection.Open(GetDatabasePath())); |
+ ASSERT_FALSE( |
+ connection.DoesColumnExist("share_info", "autofill_migration_state")); |
+ ASSERT_FALSE( |
+ connection.DoesColumnExist("share_info", |
+ "bookmarks_added_during_autofill_migration")); |
+ ASSERT_FALSE( |
+ connection.DoesColumnExist("share_info", "autofill_migration_time")); |
+ ASSERT_FALSE( |
+ connection.DoesColumnExist("share_info", |
+ "autofill_entries_added_during_migration")); |
+ |
+ ASSERT_FALSE( |
+ connection.DoesColumnExist("share_info", |
+ "autofill_profiles_added_during_migration")); |
+ } |
+ |
+ scoped_ptr<DirectoryBackingStore> dbs( |
+ new DirectoryBackingStore(GetUsername(), GetDatabasePath())); |
+ |
+ dbs->BeginLoad(); |
+ ASSERT_FALSE(dbs->needs_column_refresh_); |
+ ASSERT_TRUE(dbs->MigrateVersion73To74()); |
+ ASSERT_EQ(74, dbs->GetVersion()); |
+ dbs->EndLoad(); |
+ ASSERT_FALSE(dbs->needs_column_refresh_); |
+ |
+ sql::Connection connection; |
+ ASSERT_TRUE(connection.Open(GetDatabasePath())); |
+ ASSERT_TRUE( |
+ connection.DoesColumnExist("share_info", "autofill_migration_state")); |
+ ASSERT_TRUE( |
+ connection.DoesColumnExist("share_info", |
+ "bookmarks_added_during_autofill_migration")); |
+ ASSERT_TRUE( |
+ connection.DoesColumnExist("share_info", "autofill_migration_time")); |
+ ASSERT_TRUE( |
+ connection.DoesColumnExist("share_info", |
+ "autofill_entries_added_during_migration")); |
+ |
+ ASSERT_TRUE( |
+ connection.DoesColumnExist("share_info", |
+ "autofill_profiles_added_during_migration")); |
+} |
+ |
TEST_P(MigrationTest, ToCurrentVersion) { |
switch (GetParam()) { |
case 67: |
@@ -957,6 +1113,9 @@ TEST_P(MigrationTest, ToCurrentVersion) { |
case 72: |
SetUpVersion72Database(); |
break; |
+ case 73: |
+ SetUpVersion73Database(); |
+ break; |
default: |
// If you see this error, it may mean that you've increased the |
// database version number but you haven't finished adding unit tests |
@@ -1015,6 +1174,10 @@ TEST_P(MigrationTest, ToCurrentVersion) { |
// Columns added in Version 73. |
ASSERT_TRUE(connection.DoesColumnExist( |
"share_info", "notification_state")); |
+ |
+ // Columns added in version 74. |
+ ASSERT_TRUE(connection.DoesColumnExist("share_info", |
+ "autofill_migration_state")); |
} |
MetahandlesIndex index; |