OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "testing/gtest/include/gtest/gtest.h" | 5 #include "testing/gtest/include/gtest/gtest.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/file_path.h" | 9 #include "base/file_path.h" |
10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 void SetUpVersion76Database(sql::Connection* connection); | 63 void SetUpVersion76Database(sql::Connection* connection); |
64 void SetUpVersion77Database(sql::Connection* connection); | 64 void SetUpVersion77Database(sql::Connection* connection); |
65 void SetUpVersion78Database(sql::Connection* connection); | 65 void SetUpVersion78Database(sql::Connection* connection); |
66 void SetUpVersion79Database(sql::Connection* connection); | 66 void SetUpVersion79Database(sql::Connection* connection); |
67 void SetUpVersion80Database(sql::Connection* connection); | 67 void SetUpVersion80Database(sql::Connection* connection); |
68 void SetUpVersion81Database(sql::Connection* connection); | 68 void SetUpVersion81Database(sql::Connection* connection); |
69 void SetUpVersion82Database(sql::Connection* connection); | 69 void SetUpVersion82Database(sql::Connection* connection); |
70 void SetUpVersion83Database(sql::Connection* connection); | 70 void SetUpVersion83Database(sql::Connection* connection); |
71 void SetUpVersion84Database(sql::Connection* connection); | 71 void SetUpVersion84Database(sql::Connection* connection); |
72 void SetUpVersion85Database(sql::Connection* connection); | 72 void SetUpVersion85Database(sql::Connection* connection); |
| 73 void SetUpVersion86Database(sql::Connection* connection); |
73 | 74 |
74 void SetUpCurrentDatabaseAndCheckVersion(sql::Connection* connection) { | 75 void SetUpCurrentDatabaseAndCheckVersion(sql::Connection* connection) { |
75 SetUpVersion85Database(connection); // Prepopulates data. | 76 SetUpVersion86Database(connection); // Prepopulates data. |
76 scoped_ptr<TestDirectoryBackingStore> dbs( | 77 scoped_ptr<TestDirectoryBackingStore> dbs( |
77 new TestDirectoryBackingStore(GetUsername(), connection)); | 78 new TestDirectoryBackingStore(GetUsername(), connection)); |
| 79 ASSERT_EQ(kCurrentDBVersion, dbs->GetVersion()); |
78 | 80 |
79 ASSERT_TRUE(LoadAndIgnoreReturnedData(dbs.get())); | 81 ASSERT_TRUE(LoadAndIgnoreReturnedData(dbs.get())); |
80 ASSERT_FALSE(dbs->needs_column_refresh_); | 82 ASSERT_FALSE(dbs->needs_column_refresh_); |
81 ASSERT_EQ(kCurrentDBVersion, dbs->GetVersion()); | |
82 } | 83 } |
83 | 84 |
84 private: | 85 private: |
85 base::ScopedTempDir temp_dir_; | 86 base::ScopedTempDir temp_dir_; |
86 }; | 87 }; |
87 | 88 |
88 class DirectoryBackingStoreTest : public MigrationTest {}; | 89 class DirectoryBackingStoreTest : public MigrationTest {}; |
89 | 90 |
90 #if defined(OS_WIN) | 91 #if defined(OS_WIN) |
91 | 92 |
(...skipping 2325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2417 for (int i = 0; i < V80_ROW_COUNT; i++) { | 2418 for (int i = 0; i < V80_ROW_COUNT; i++) { |
2418 sql::Statement s(connection->GetUniqueStatement(insert_stmts[i])); | 2419 sql::Statement s(connection->GetUniqueStatement(insert_stmts[i])); |
2419 std::string ord = V81_Ordinal(i); | 2420 std::string ord = V81_Ordinal(i); |
2420 s.BindBlob(0, ord.data(), ord.length()); | 2421 s.BindBlob(0, ord.data(), ord.length()); |
2421 ASSERT_TRUE(s.Run()); | 2422 ASSERT_TRUE(s.Run()); |
2422 s.Reset(true); | 2423 s.Reset(true); |
2423 } | 2424 } |
2424 ASSERT_TRUE(connection->CommitTransaction()); | 2425 ASSERT_TRUE(connection->CommitTransaction()); |
2425 } | 2426 } |
2426 | 2427 |
| 2428 void MigrationTest::SetUpVersion86Database(sql::Connection* connection) { |
| 2429 ASSERT_TRUE(connection->is_open()); |
| 2430 ASSERT_TRUE(connection->BeginTransaction()); |
| 2431 ASSERT_TRUE(connection->Execute( |
| 2432 "CREATE TABLE share_version (id VARCHAR(128) primary key, data INT);" |
| 2433 "INSERT INTO 'share_version' VALUES('nick@chromium.org',86);" |
| 2434 "CREATE TABLE models (model_id BLOB primary key, progress_marker BLOB," |
| 2435 " transaction_version BIGINT default 0);" |
| 2436 "INSERT INTO 'models' VALUES(X'C2881000',X'0888810218B605',1);" |
| 2437 "CREATE TABLE 'metas'(metahandle bigint primary key ON CONFLICT FAIL,b" |
| 2438 "ase_version bigint default -1,server_version bigint default 0,local_e" |
| 2439 "xternal_id bigint default 0,transaction_version bigint default 0,mtim" |
| 2440 "e bigint default 0,server_mtime bigint default 0,ctime bigint default" |
| 2441 " 0,server_ctime bigint default 0,id varchar(255) default 'r',parent_i" |
| 2442 "d varchar(255) default 'r',server_parent_id varchar(255) default 'r'," |
| 2443 "is_unsynced bit default 0,is_unapplied_update bit default 0,is_del bi" |
| 2444 "t default 0,is_dir bit default 0,server_is_dir bit default 0,server_i" |
| 2445 "s_del bit default 0,non_unique_name varchar,server_non_unique_name va" |
| 2446 "rchar(255),unique_server_tag varchar,unique_client_tag varchar,specif" |
| 2447 "ics blob,server_specifics blob,base_server_specifics blob,server_uniq" |
| 2448 "ue_position blob,unique_position blob,unique_bookmark_tag blob);" |
| 2449 "INSERT INTO 'metas' VALUES(1,-1,0,0,0,1263522064000,1263522064000,126" |
| 2450 "3522064000,1263522064000,'r','r','r',0,0,0,1,0,0,NULL,NULL,NULL,NULL," |
| 2451 "X'',X'',NULL,X'',X'',X'');" |
| 2452 "INSERT INTO 'metas' VALUES(6,694,694,6,0,1260924017000,1260924017000," |
| 2453 "1260924017000,1260924017000,'s_ID_6','s_ID_9','s_ID_9',0,0,0,1,1,0,'T" |
| 2454 "he Internet','The Internet',NULL,NULL,X'C2881000',X'C2881000',NULL,X'" |
| 2455 "',X'',X'');" |
| 2456 "INSERT INTO 'metas' VALUES(7,663,663,0,0,1253212875000,1253212875000," |
| 2457 "1253212875000,1253212875000,'s_ID_7','r','r',0,0,0,1,1,0,'Google Chro" |
| 2458 "me','Google Chrome','google_chrome',NULL,NULL,NULL,NULL,X'',X'',X'');" |
| 2459 "INSERT INTO 'metas' VALUES(8,664,664,0,0,1253212875000,1253212875000," |
| 2460 "1253212875000,1253212875000,'s_ID_8','s_ID_7','s_ID_7',0,0,0,1,1,0,'B" |
| 2461 "ookmarks','Bookmarks','google_chrome_bookmarks',NULL,X'C2881000',X'C2" |
| 2462 "881000',NULL,X'',X'',X'');" |
| 2463 "INSERT INTO 'metas' VALUES(9,665,665,1,0,1253212875000,1253212875000," |
| 2464 "1253212875000,1253212875000,'s_ID_9','s_ID_8','s_ID_8',0,0,0,1,1,0,'B" |
| 2465 "ookmark Bar','Bookmark Bar','bookmark_bar',NULL,X'C2881000',X'C288100" |
| 2466 "0',NULL,X'',X'',X'');" |
| 2467 "INSERT INTO 'metas' VALUES(10,666,666,2,0,1253212875000,1253212875000" |
| 2468 ",1253212875000,1253212875000,'s_ID_10','s_ID_8','s_ID_8',0,0,0,1,1,0," |
| 2469 "'Other Bookmarks','Other Bookmarks','other_bookmarks',NULL,X'C2881000" |
| 2470 "',X'C2881000',NULL,X'',X'',X'');" |
| 2471 "INSERT INTO 'metas' VALUES(11,683,683,8,0,1263522094000,1263522094000" |
| 2472 ",1263522094000,1263522094000,'s_ID_11','s_ID_6','s_ID_6',0,0,0,0,0,0," |
| 2473 "'Home (The Chromium Projects)','Home (The Chromium Projects)',NULL,NU" |
| 2474 "LL,X'C28810220A18687474703A2F2F6465762E6368726F6D69756D2E6F72672F1206" |
| 2475 "414741545741',X'C28810290A1D687474703A2F2F6465762E6368726F6D69756D2E6" |
| 2476 "F72672F6F7468657212084146414756415346',NULL,X'',X'',X'');" |
| 2477 "INSERT INTO 'metas' VALUES(12,685,685,9,0,1263522151000,1263522151000" |
| 2478 ",1263522151000,1263522151000,'s_ID_12','s_ID_6','s_ID_6',0,0,0,1,1,0," |
| 2479 "'Extra Bookmarks','Extra Bookmarks',NULL,NULL,X'C2881000',X'C2881000'" |
| 2480 ",NULL,X'',X'',X'');" |
| 2481 "INSERT INTO 'metas' VALUES(13,687,687,10,0,1263522198000,126352219800" |
| 2482 "0,1263522198000,1263522198000,'s_ID_13','s_ID_6','s_ID_6',0,0,0,0,0,0" |
| 2483 ",'ICANN | Internet Corporation for Assigned Names and Numbers','ICANN" |
| 2484 " | Internet Corporation for Assigned Names and Numbers',NULL,NULL,X'C" |
| 2485 "28810240A15687474703A2F2F7777772E6963616E6E2E636F6D2F120B504E47415846" |
| 2486 "3041414646',X'C28810200A15687474703A2F2F7777772E6963616E6E2E636F6D2F1" |
| 2487 "20744414146415346',NULL,X'',X'',X'');" |
| 2488 "INSERT INTO 'metas' VALUES(14,692,692,11,0,1263522238000,126352223800" |
| 2489 "0,1263522238000,1263522238000,'s_ID_14','s_ID_6','s_ID_6',0,0,0,0,0,0" |
| 2490 ",'The WebKit Open Source Project','The WebKit Open Source Project',NU" |
| 2491 "LL,NULL,X'C288101A0A12687474703A2F2F7765626B69742E6F72672F1204504E475" |
| 2492 "8',X'C288101C0A13687474703A2F2F7765626B69742E6F72672F781205504E473259" |
| 2493 "',NULL,X'',X'',X'');" |
| 2494 "CREATE TABLE deleted_metas (metahandle bigint primary key ON CONFLICT" |
| 2495 " FAIL,base_version bigint default -1,server_version bigint default 0," |
| 2496 "local_external_id bigint default 0,transaction_version bigint default" |
| 2497 " 0,mtime bigint default 0,server_mtime bigint default 0,ctime bigint " |
| 2498 "default 0,server_ctime bigint default 0,id varchar(255) default 'r',p" |
| 2499 "arent_id varchar(255) default 'r',server_parent_id varchar(255) defau" |
| 2500 "lt 'r',is_unsynced bit default 0,is_unapplied_update bit default 0,is" |
| 2501 "_del bit default 0,is_dir bit default 0,server_is_dir bit default 0,s" |
| 2502 "erver_is_del bit default 0,non_unique_name varchar,server_non_unique_" |
| 2503 "name varchar(255),unique_server_tag varchar,unique_client_tag varchar" |
| 2504 ",specifics blob,server_specifics blob,base_server_specifics blob,serv" |
| 2505 "er_unique_position blob,unique_position blob,unique_bookmark_tag blob" |
| 2506 ");" |
| 2507 "CREATE TABLE 'share_info' (id TEXT primary key, name TEXT, store_birt" |
| 2508 "hday TEXT, db_create_version TEXT, db_create_time INT, next_id INT de" |
| 2509 "fault -2, cache_guid TEXT, notification_state BLOB, bag_of_chips BLOB" |
| 2510 ");" |
| 2511 "INSERT INTO 'share_info' VALUES('nick@chromium.org','nick@chromium.or" |
| 2512 "g','c27e9f59-08ca-46f8-b0cc-f16a2ed778bb','Unknown',1263522064,-13107" |
| 2513 "8,'9010788312004066376x-6609234393368420856x',NULL,NULL);")); |
| 2514 ASSERT_TRUE(connection->CommitTransaction()); |
| 2515 } |
| 2516 |
2427 TEST_F(DirectoryBackingStoreTest, MigrateVersion67To68) { | 2517 TEST_F(DirectoryBackingStoreTest, MigrateVersion67To68) { |
2428 sql::Connection connection; | 2518 sql::Connection connection; |
2429 ASSERT_TRUE(connection.OpenInMemory()); | 2519 ASSERT_TRUE(connection.OpenInMemory()); |
2430 | 2520 |
2431 SetUpVersion67Database(&connection); | 2521 SetUpVersion67Database(&connection); |
2432 | 2522 |
2433 // Columns existing before version 67. | 2523 // Columns existing before version 67. |
2434 ASSERT_TRUE(connection.DoesColumnExist("metas", "name")); | 2524 ASSERT_TRUE(connection.DoesColumnExist("metas", "name")); |
2435 ASSERT_TRUE(connection.DoesColumnExist("metas", "unsanitized_name")); | 2525 ASSERT_TRUE(connection.DoesColumnExist("metas", "unsanitized_name")); |
2436 ASSERT_TRUE(connection.DoesColumnExist("metas", "server_name")); | 2526 ASSERT_TRUE(connection.DoesColumnExist("metas", "server_name")); |
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2801 "FROM metas WHERE unique_server_tag = 'google_chrome'")); | 2891 "FROM metas WHERE unique_server_tag = 'google_chrome'")); |
2802 ASSERT_TRUE(new_s.Step()); | 2892 ASSERT_TRUE(new_s.Step()); |
2803 ASSERT_EQ(sql::COLUMN_TYPE_BLOB, new_s.ColumnType(1)); | 2893 ASSERT_EQ(sql::COLUMN_TYPE_BLOB, new_s.ColumnType(1)); |
2804 | 2894 |
2805 std::string expected_ordinal = Int64ToNodeOrdinal(1048576).ToInternalValue(); | 2895 std::string expected_ordinal = Int64ToNodeOrdinal(1048576).ToInternalValue(); |
2806 std::string actual_ordinal; | 2896 std::string actual_ordinal; |
2807 new_s.ColumnBlobAsString(1, &actual_ordinal); | 2897 new_s.ColumnBlobAsString(1, &actual_ordinal); |
2808 ASSERT_EQ(expected_ordinal, actual_ordinal); | 2898 ASSERT_EQ(expected_ordinal, actual_ordinal); |
2809 } | 2899 } |
2810 | 2900 |
2811 TEST_F(DirectoryBackingStoreTest, DetectInvalidOrdinal) { | 2901 TEST_F(DirectoryBackingStoreTest, DetectInvalidPosition) { |
2812 sql::Connection connection; | 2902 sql::Connection connection; |
2813 ASSERT_TRUE(connection.OpenInMemory()); | 2903 ASSERT_TRUE(connection.OpenInMemory()); |
2814 SetUpVersion81Database(&connection); | 2904 SetUpVersion86Database(&connection); |
2815 | 2905 |
2816 scoped_ptr<TestDirectoryBackingStore> dbs( | 2906 scoped_ptr<TestDirectoryBackingStore> dbs( |
2817 new TestDirectoryBackingStore(GetUsername(), &connection)); | 2907 new TestDirectoryBackingStore(GetUsername(), &connection)); |
2818 ASSERT_EQ(81, dbs->GetVersion()); | 2908 ASSERT_EQ(86, dbs->GetVersion()); |
2819 | 2909 |
2820 // Insert row with bad ordinal. | 2910 // Insert row with bad position. |
2821 const int64 now = TimeToProtoTime(base::Time::Now()); | |
2822 sql::Statement s(connection.GetUniqueStatement( | 2911 sql::Statement s(connection.GetUniqueStatement( |
2823 "INSERT INTO metas " | 2912 "INSERT INTO metas " |
2824 "( id, metahandle, is_dir, ctime, mtime, server_ordinal_in_parent) " | 2913 "( id, metahandle, is_dir, ctime, mtime," |
2825 "VALUES( \"c-invalid\", 9999, 1, ?, ?, \" \")")); | 2914 " unique_position, server_unique_position) " |
2826 s.BindInt64(0, now); | 2915 "VALUES('c-invalid', 9999, 1, 0, 0, 'BAD_POS', 'BAD_POS')")); |
2827 s.BindInt64(1, now); | |
2828 ASSERT_TRUE(s.Run()); | 2916 ASSERT_TRUE(s.Run()); |
2829 | 2917 |
2830 // Trying to unpack this entry should signal that the DB is corrupted. | 2918 // Trying to unpack this entry should signal that the DB is corrupted. |
2831 MetahandlesIndex entry_bucket; | 2919 MetahandlesIndex entry_bucket; |
2832 STLElementDeleter<MetahandlesIndex> deleter(&entry_bucket); | 2920 STLElementDeleter<MetahandlesIndex> deleter(&entry_bucket); |
2833 Directory::KernelLoadInfo kernel_load_info; | 2921 Directory::KernelLoadInfo kernel_load_info; |
2834 ASSERT_EQ(FAILED_DATABASE_CORRUPT, | 2922 ASSERT_EQ(FAILED_DATABASE_CORRUPT, |
2835 dbs->Load(&entry_bucket, &kernel_load_info)); | 2923 dbs->Load(&entry_bucket, &kernel_load_info)); |
2836 } | 2924 } |
2837 | 2925 |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2885 SetUpVersion84Database(&connection); | 2973 SetUpVersion84Database(&connection); |
2886 ASSERT_TRUE(connection.DoesColumnExist("models", "initial_sync_ended")); | 2974 ASSERT_TRUE(connection.DoesColumnExist("models", "initial_sync_ended")); |
2887 | 2975 |
2888 scoped_ptr<TestDirectoryBackingStore> dbs( | 2976 scoped_ptr<TestDirectoryBackingStore> dbs( |
2889 new TestDirectoryBackingStore(GetUsername(), &connection)); | 2977 new TestDirectoryBackingStore(GetUsername(), &connection)); |
2890 ASSERT_TRUE(dbs->MigrateVersion84To85()); | 2978 ASSERT_TRUE(dbs->MigrateVersion84To85()); |
2891 ASSERT_EQ(85, dbs->GetVersion()); | 2979 ASSERT_EQ(85, dbs->GetVersion()); |
2892 ASSERT_FALSE(connection.DoesColumnExist("models", "initial_sync_ended")); | 2980 ASSERT_FALSE(connection.DoesColumnExist("models", "initial_sync_ended")); |
2893 } | 2981 } |
2894 | 2982 |
| 2983 TEST_F(DirectoryBackingStoreTest, MigrateVersion85To86) { |
| 2984 sql::Connection connection; |
| 2985 ASSERT_TRUE(connection.OpenInMemory()); |
| 2986 SetUpVersion85Database(&connection); |
| 2987 EXPECT_TRUE(connection.DoesColumnExist("metas", "next_id")); |
| 2988 EXPECT_TRUE(connection.DoesColumnExist("metas", "prev_id")); |
| 2989 EXPECT_TRUE(connection.DoesColumnExist("metas", "server_ordinal_in_parent")); |
| 2990 EXPECT_FALSE(connection.DoesColumnExist("metas", "unique_position")); |
| 2991 EXPECT_FALSE(connection.DoesColumnExist("metas", "server_unique_position")); |
| 2992 EXPECT_FALSE(connection.DoesColumnExist("metas", "unique_bookmark_tag")); |
| 2993 |
| 2994 scoped_ptr<TestDirectoryBackingStore> dbs( |
| 2995 new TestDirectoryBackingStore(GetUsername(), &connection)); |
| 2996 ASSERT_TRUE(dbs->MigrateVersion85To86()); |
| 2997 EXPECT_EQ(86, dbs->GetVersion()); |
| 2998 EXPECT_TRUE(connection.DoesColumnExist("metas", "unique_position")); |
| 2999 EXPECT_TRUE(connection.DoesColumnExist("metas", "server_unique_position")); |
| 3000 EXPECT_TRUE(connection.DoesColumnExist("metas", "unique_bookmark_tag")); |
| 3001 ASSERT_TRUE(dbs->needs_column_refresh_); |
| 3002 ASSERT_TRUE(dbs->RefreshColumns()); |
| 3003 EXPECT_FALSE(connection.DoesColumnExist("metas", "next_id")); |
| 3004 EXPECT_FALSE(connection.DoesColumnExist("metas", "prev_id")); |
| 3005 EXPECT_FALSE(connection.DoesColumnExist("metas", "server_ordinal_in_parent")); |
| 3006 } |
| 3007 |
2895 TEST_P(MigrationTest, ToCurrentVersion) { | 3008 TEST_P(MigrationTest, ToCurrentVersion) { |
2896 sql::Connection connection; | 3009 sql::Connection connection; |
2897 ASSERT_TRUE(connection.OpenInMemory()); | 3010 ASSERT_TRUE(connection.OpenInMemory()); |
2898 switch (GetParam()) { | 3011 switch (GetParam()) { |
2899 case 67: | 3012 case 67: |
2900 SetUpVersion67Database(&connection); | 3013 SetUpVersion67Database(&connection); |
2901 break; | 3014 break; |
2902 case 68: | 3015 case 68: |
2903 SetUpVersion68Database(&connection); | 3016 SetUpVersion68Database(&connection); |
2904 break; | 3017 break; |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2943 break; | 3056 break; |
2944 case 82: | 3057 case 82: |
2945 SetUpVersion82Database(&connection); | 3058 SetUpVersion82Database(&connection); |
2946 break; | 3059 break; |
2947 case 83: | 3060 case 83: |
2948 SetUpVersion83Database(&connection); | 3061 SetUpVersion83Database(&connection); |
2949 break; | 3062 break; |
2950 case 84: | 3063 case 84: |
2951 SetUpVersion84Database(&connection); | 3064 SetUpVersion84Database(&connection); |
2952 break; | 3065 break; |
| 3066 case 85: |
| 3067 SetUpVersion85Database(&connection); |
| 3068 break; |
| 3069 case 86: |
| 3070 SetUpVersion86Database(&connection); |
| 3071 break; |
2953 default: | 3072 default: |
2954 // If you see this error, it may mean that you've increased the | 3073 // If you see this error, it may mean that you've increased the |
2955 // database version number but you haven't finished adding unit tests | 3074 // database version number but you haven't finished adding unit tests |
2956 // for the database migration code. You need to need to supply a | 3075 // for the database migration code. You need to need to supply a |
2957 // SetUpVersionXXDatabase function with a dump of the test database | 3076 // SetUpVersionXXDatabase function with a dump of the test database |
2958 // at the old schema. Here's one way to do that: | 3077 // at the old schema. Here's one way to do that: |
2959 // 1. Start on a clean tree (with none of your pending schema changes). | 3078 // 1. Start on a clean tree (with none of your pending schema changes). |
2960 // 2. Set a breakpoint in this function and run the unit test. | 3079 // 2. Set a breakpoint in this function and run the unit test. |
2961 // 3. Allow this test to run to completion (step out of the call), | 3080 // 3. Allow this test to run to completion (step out of the call), |
2962 // without allowing ~MigrationTest to execute. | 3081 // without allowing ~MigrationTest to execute. |
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3156 ASSERT_TRUE(++it != index.end()); | 3275 ASSERT_TRUE(++it != index.end()); |
3157 ASSERT_EQ(13, (*it)->ref(META_HANDLE)); | 3276 ASSERT_EQ(13, (*it)->ref(META_HANDLE)); |
3158 | 3277 |
3159 ASSERT_TRUE(++it != index.end()); | 3278 ASSERT_TRUE(++it != index.end()); |
3160 ASSERT_EQ(14, (*it)->ref(META_HANDLE)); | 3279 ASSERT_EQ(14, (*it)->ref(META_HANDLE)); |
3161 | 3280 |
3162 ASSERT_TRUE(++it == index.end()); | 3281 ASSERT_TRUE(++it == index.end()); |
3163 } | 3282 } |
3164 | 3283 |
3165 INSTANTIATE_TEST_CASE_P(DirectoryBackingStore, MigrationTest, | 3284 INSTANTIATE_TEST_CASE_P(DirectoryBackingStore, MigrationTest, |
3166 testing::Range(67, kCurrentDBVersion)); | 3285 testing::Range(67, kCurrentDBVersion+1)); |
3167 | 3286 |
3168 TEST_F(DirectoryBackingStoreTest, ModelTypeIds) { | 3287 TEST_F(DirectoryBackingStoreTest, ModelTypeIds) { |
3169 for (int i = FIRST_REAL_MODEL_TYPE; i < MODEL_TYPE_COUNT; ++i) { | 3288 for (int i = FIRST_REAL_MODEL_TYPE; i < MODEL_TYPE_COUNT; ++i) { |
3170 std::string model_id = | 3289 std::string model_id = |
3171 TestDirectoryBackingStore::ModelTypeEnumToModelId(ModelTypeFromInt(i)); | 3290 TestDirectoryBackingStore::ModelTypeEnumToModelId(ModelTypeFromInt(i)); |
3172 EXPECT_EQ(i, | 3291 EXPECT_EQ(i, |
3173 TestDirectoryBackingStore::ModelIdToModelTypeEnum(model_id.data(), | 3292 TestDirectoryBackingStore::ModelIdToModelTypeEnum(model_id.data(), |
3174 model_id.size())); | 3293 model_id.size())); |
3175 } | 3294 } |
3176 } | 3295 } |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3292 const std::string& guid2 = TestDirectoryBackingStore::GenerateCacheGUID(); | 3411 const std::string& guid2 = TestDirectoryBackingStore::GenerateCacheGUID(); |
3293 EXPECT_EQ(24U, guid1.size()); | 3412 EXPECT_EQ(24U, guid1.size()); |
3294 EXPECT_EQ(24U, guid2.size()); | 3413 EXPECT_EQ(24U, guid2.size()); |
3295 // In theory this test can fail, but it won't before the universe | 3414 // In theory this test can fail, but it won't before the universe |
3296 // dies of heat death. | 3415 // dies of heat death. |
3297 EXPECT_NE(guid1, guid2); | 3416 EXPECT_NE(guid1, guid2); |
3298 } | 3417 } |
3299 | 3418 |
3300 } // namespace syncable | 3419 } // namespace syncable |
3301 } // namespace syncer | 3420 } // namespace syncer |
OLD | NEW |