OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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_util.h" | 9 #include "base/file_util.h" |
10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
67 void SetUpVersion77Database(sql::Connection* connection); | 67 void SetUpVersion77Database(sql::Connection* connection); |
68 void SetUpVersion78Database(sql::Connection* connection); | 68 void SetUpVersion78Database(sql::Connection* connection); |
69 void SetUpVersion79Database(sql::Connection* connection); | 69 void SetUpVersion79Database(sql::Connection* connection); |
70 void SetUpVersion80Database(sql::Connection* connection); | 70 void SetUpVersion80Database(sql::Connection* connection); |
71 void SetUpVersion81Database(sql::Connection* connection); | 71 void SetUpVersion81Database(sql::Connection* connection); |
72 void SetUpVersion82Database(sql::Connection* connection); | 72 void SetUpVersion82Database(sql::Connection* connection); |
73 void SetUpVersion83Database(sql::Connection* connection); | 73 void SetUpVersion83Database(sql::Connection* connection); |
74 void SetUpVersion84Database(sql::Connection* connection); | 74 void SetUpVersion84Database(sql::Connection* connection); |
75 void SetUpVersion85Database(sql::Connection* connection); | 75 void SetUpVersion85Database(sql::Connection* connection); |
76 void SetUpVersion86Database(sql::Connection* connection); | 76 void SetUpVersion86Database(sql::Connection* connection); |
| 77 void SetUpVersion87Database(sql::Connection* connection); |
77 | 78 |
78 void SetUpCurrentDatabaseAndCheckVersion(sql::Connection* connection) { | 79 void SetUpCurrentDatabaseAndCheckVersion(sql::Connection* connection) { |
79 SetUpVersion86Database(connection); // Prepopulates data. | 80 SetUpVersion87Database(connection); // Prepopulates data. |
80 scoped_ptr<TestDirectoryBackingStore> dbs( | 81 scoped_ptr<TestDirectoryBackingStore> dbs( |
81 new TestDirectoryBackingStore(GetUsername(), connection)); | 82 new TestDirectoryBackingStore(GetUsername(), connection)); |
82 ASSERT_EQ(kCurrentDBVersion, dbs->GetVersion()); | 83 ASSERT_EQ(kCurrentDBVersion, dbs->GetVersion()); |
83 | 84 |
84 ASSERT_TRUE(LoadAndIgnoreReturnedData(dbs.get())); | 85 ASSERT_TRUE(LoadAndIgnoreReturnedData(dbs.get())); |
85 ASSERT_FALSE(dbs->needs_column_refresh_); | 86 ASSERT_FALSE(dbs->needs_column_refresh_); |
86 } | 87 } |
87 | 88 |
88 private: | 89 private: |
89 base::ScopedTempDir temp_dir_; | 90 base::ScopedTempDir temp_dir_; |
(...skipping 2437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2527 "CREATE TABLE 'share_info' (id TEXT primary key, name TEXT, store_birt" | 2528 "CREATE TABLE 'share_info' (id TEXT primary key, name TEXT, store_birt" |
2528 "hday TEXT, db_create_version TEXT, db_create_time INT, next_id INT de" | 2529 "hday TEXT, db_create_version TEXT, db_create_time INT, next_id INT de" |
2529 "fault -2, cache_guid TEXT, notification_state BLOB, bag_of_chips BLOB" | 2530 "fault -2, cache_guid TEXT, notification_state BLOB, bag_of_chips BLOB" |
2530 ");" | 2531 ");" |
2531 "INSERT INTO 'share_info' VALUES('nick@chromium.org','nick@chromium.or" | 2532 "INSERT INTO 'share_info' VALUES('nick@chromium.org','nick@chromium.or" |
2532 "g','c27e9f59-08ca-46f8-b0cc-f16a2ed778bb','Unknown',1263522064,-13107" | 2533 "g','c27e9f59-08ca-46f8-b0cc-f16a2ed778bb','Unknown',1263522064,-13107" |
2533 "8,'9010788312004066376x-6609234393368420856x',NULL,NULL);")); | 2534 "8,'9010788312004066376x-6609234393368420856x',NULL,NULL);")); |
2534 ASSERT_TRUE(connection->CommitTransaction()); | 2535 ASSERT_TRUE(connection->CommitTransaction()); |
2535 } | 2536 } |
2536 | 2537 |
| 2538 void MigrationTest::SetUpVersion87Database(sql::Connection* connection) { |
| 2539 ASSERT_TRUE(connection->is_open()); |
| 2540 ASSERT_TRUE(connection->BeginTransaction()); |
| 2541 ASSERT_TRUE(connection->Execute( |
| 2542 "CREATE TABLE share_version (id VARCHAR(128) primary key, data INT);" |
| 2543 "INSERT INTO 'share_version' VALUES('nick@chromium.org',87);" |
| 2544 "CREATE TABLE models (model_id BLOB primary key, progress_marker BLOB, tr" |
| 2545 "ansaction_version BIGINT default 0);" |
| 2546 "INSERT INTO 'models' VALUES(X'C2881000',X'0888810218B605',1);" |
| 2547 "CREATE TABLE 'metas'(metahandle bigint primary key ON CONFLICT FAIL,base" |
| 2548 "_version bigint default -1,server_version bigint default 0,local_exte" |
| 2549 "rnal_id bigint default 0,transaction_version bigint default 0,mtime b" |
| 2550 "igint default 0,server_mtime bigint default 0,ctime bigint default 0," |
| 2551 "server_ctime bigint default 0,id varchar(255) default 'r',parent_id v" |
| 2552 "archar(255) default 'r',server_parent_id varchar(255) default 'r',is_" |
| 2553 "unsynced bit default 0,is_unapplied_update bit default 0,is_del bit d" |
| 2554 "efault 0,is_dir bit default 0,server_is_dir bit default 0,server_is_d" |
| 2555 "el bit default 0,non_unique_name varchar,server_non_unique_name varch" |
| 2556 "ar(255),unique_server_tag varchar,unique_client_tag varchar,unique_bo" |
| 2557 "okmark_tag varchar,specifics blob,server_specifics blob,base_server_s" |
| 2558 "pecifics blob,server_unique_position blob,unique_position blob,attach" |
| 2559 "ment_metadata blob);" |
| 2560 "INSERT INTO 'metas' VALUES(1,-1,0,0,0,1263522064000,1263522064000,126352" |
| 2561 "2064000,1263522064000,'r','r','r',0,0,0,1,0,0,NULL,NULL,NULL,NULL,X''" |
| 2562 ",X'',X'',NULL,X'2200',X'2200',NULL);" |
| 2563 "INSERT INTO 'metas' VALUES(6,694,694,6,0,1260924017000,1260924017000,126" |
| 2564 "0924017000,1260924017000,'s_ID_6','s_ID_9','s_ID_9',0,0,0,1,1,0,'The " |
| 2565 "Internet','The Internet',NULL,NULL,X'6754307476346749735A5734654D6532" |
| 2566 "73625336557753582F77673D',X'C2881000',X'C2881000',NULL,X'22247FFFFFFF" |
| 2567 "FFC000006754307476346749735A5734654D653273625336557753582F77673D',X'2" |
| 2568 "2247FFFFFFFFFC000006754307476346749735A5734654D653273625336557753582F" |
| 2569 "77673D',NULL);" |
| 2570 "INSERT INTO 'metas' VALUES(7,663,663,0,0,1253212875000,1253212875000,125" |
| 2571 "3212875000,1253212875000,'s_ID_7','r','r',0,0,0,1,1,0,'Google Chrome'" |
| 2572 ",'Google Chrome','google_chrome',NULL,X'',NULL,NULL,NULL,X'2200',X'22" |
| 2573 "00',NULL);" |
| 2574 "INSERT INTO 'metas' VALUES(8,664,664,0,0,1253212875000,1253212875000,125" |
| 2575 "3212875000,1253212875000,'s_ID_8','s_ID_7','s_ID_7',0,0,0,1,1,0,'Book" |
| 2576 "marks','Bookmarks','google_chrome_bookmarks',NULL,X'',X'C2881000',X'C" |
| 2577 "2881000',NULL,X'2200',X'2200',NULL);" |
| 2578 "INSERT INTO 'metas' VALUES(9,665,665,1,0,1253212875000,1253212875000,125" |
| 2579 "3212875000,1253212875000,'s_ID_9','s_ID_8','s_ID_8',0,0,0,1,1,0,'Book" |
| 2580 "mark Bar','Bookmark Bar','bookmark_bar',NULL,X'',X'C2881000',X'C28810" |
| 2581 "00',NULL,X'2200',X'2200',NULL);" |
| 2582 "INSERT INTO 'metas' VALUES(10,666,666,2,0,1253212875000,1253212875000,12" |
| 2583 "53212875000,1253212875000,'s_ID_10','s_ID_8','s_ID_8',0,0,0,1,1,0,'Ot" |
| 2584 "her Bookmarks','Other Bookmarks','other_bookmarks',NULL,X'',X'C288100" |
| 2585 "0',X'C2881000',NULL,X'2200',X'2200',NULL);" |
| 2586 "INSERT INTO 'metas' VALUES(11,683,683,8,0,1263522094000,1263522094000,12" |
| 2587 "63522094000,1263522094000,'s_ID_11','s_ID_6','s_ID_6',0,0,0,0,0,0,'Ho" |
| 2588 "me (The Chromium Projects)','Home (The Chromium Projects)',NULL,NULL," |
| 2589 "X'50514C784A456D623579366267644237646A7A2B62314130346E493D',X'C288102" |
| 2590 "20A18687474703A2F2F6465762E6368726F6D69756D2E6F72672F1206414741545741" |
| 2591 "',X'C28810290A1D687474703A2F2F6465762E6368726F6D69756D2E6F72672F6F746" |
| 2592 "8657212084146414756415346',NULL,X'22247FFFFFFFFFF0000050514C784A456D6" |
| 2593 "23579366267644237646A7A2B62314130346E493D',X'22247FFFFFFFFFF000005051" |
| 2594 "4C784A456D623579366267644237646A7A2B62314130346E493D',NULL);" |
| 2595 "INSERT INTO 'metas' VALUES(12,685,685,9,0,1263522151000,1263522151000,12" |
| 2596 "63522151000,1263522151000,'s_ID_12','s_ID_6','s_ID_6',0,0,0,1,1,0,'Ex" |
| 2597 "tra Bookmarks','Extra Bookmarks',NULL,NULL,X'7867626A704A646134635A6F" |
| 2598 "616C376A49513338734B46324837773D',X'C2881000',X'C2881000',NULL,X'2224" |
| 2599 "80000000000000007867626A704A646134635A6F616C376A49513338734B463248377" |
| 2600 "73D',X'222480000000000000007867626A704A646134635A6F616C376A4951333873" |
| 2601 "4B46324837773D',NULL);" |
| 2602 "INSERT INTO 'metas' VALUES(13,687,687,10,0,1263522198000,1263522198000,1" |
| 2603 "263522198000,1263522198000,'s_ID_13','s_ID_6','s_ID_6',0,0,0,0,0,0,'I" |
| 2604 "CANN | Internet Corporation for Assigned Names and Numbers','ICANN | " |
| 2605 "Internet Corporation for Assigned Names and Numbers',NULL,NULL,X'3142" |
| 2606 "756B572F7741766956504179672B304A614A514B3452384A413D',X'C28810240A156" |
| 2607 "87474703A2F2F7777772E6963616E6E2E636F6D2F120B504E474158463041414646'," |
| 2608 "X'C28810200A15687474703A2F2F7777772E6963616E6E2E636F6D2F1207444141464" |
| 2609 "15346',NULL,X'22247FFFFFFFFFF200003142756B572F7741766956504179672B304" |
| 2610 "A614A514B3452384A413D',X'22247FFFFFFFFFF200003142756B572F774176695650" |
| 2611 "4179672B304A614A514B3452384A413D',NULL);" |
| 2612 "INSERT INTO 'metas' VALUES(14,692,692,11,0,1263522238000,1263522238000,1" |
| 2613 "263522238000,1263522238000,'s_ID_14','s_ID_6','s_ID_6',0,0,0,0,0,0,'T" |
| 2614 "he WebKit Open Source Project','The WebKit Open Source Project',NULL," |
| 2615 "NULL,X'5A5678314E7976364579524D3177494F7236563159552F6E644C553D',X'C2" |
| 2616 "88101A0A12687474703A2F2F7765626B69742E6F72672F1204504E4758',X'C288101" |
| 2617 "C0A13687474703A2F2F7765626B69742E6F72672F781205504E473259',NULL,X'222" |
| 2618 "480000000001000005A5678314E7976364579524D3177494F7236563159552F6E644C" |
| 2619 "553D',X'222480000000001000005A5678314E7976364579524D3177494F723656315" |
| 2620 "9552F6E644C553D',NULL);" |
| 2621 "CREATE TABLE deleted_metas (metahandle bigint primary key ON CONFLICT FA" |
| 2622 "IL,base_version bigint default -1,server_version bigint default 0,loc" |
| 2623 "al_external_id bigint default 0,transaction_version bigint default 0," |
| 2624 "mtime bigint default 0,server_mtime bigint default 0,ctime bigint def" |
| 2625 "ault 0,server_ctime bigint default 0,id varchar(255) default 'r',pare" |
| 2626 "nt_id varchar(255) default 'r',server_parent_id varchar(255) default " |
| 2627 "'r',is_unsynced bit default 0,is_unapplied_update bit default 0,is_de" |
| 2628 "l bit default 0,is_dir bit default 0,server_is_dir bit default 0,serv" |
| 2629 "er_is_del bit default 0,non_unique_name varchar,server_non_unique_nam" |
| 2630 "e varchar(255),unique_server_tag varchar,unique_client_tag varchar,un" |
| 2631 "ique_bookmark_tag varchar,specifics blob,server_specifics blob,base_s" |
| 2632 "erver_specifics blob,server_unique_position blob,unique_position blob" |
| 2633 ",attachment_metadata blob);" |
| 2634 "CREATE TABLE 'share_info' (id TEXT primary key, name TEXT, store_birthda" |
| 2635 "y TEXT, db_create_version TEXT, db_create_time INT, next_id INT defau" |
| 2636 "lt -2, cache_guid TEXT, notification_state BLOB, bag_of_chips BLOB);" |
| 2637 "INSERT INTO 'share_info' VALUES('nick@chromium.org','nick@chromium.org'," |
| 2638 "'c27e9f59-08ca-46f8-b0cc-f16a2ed778bb','Unknown',1263522064,-131078,'" |
| 2639 "9010788312004066376x-6609234393368420856x',NULL,NULL);")); |
| 2640 ASSERT_TRUE(connection->CommitTransaction()); |
| 2641 } |
| 2642 |
2537 TEST_F(DirectoryBackingStoreTest, MigrateVersion67To68) { | 2643 TEST_F(DirectoryBackingStoreTest, MigrateVersion67To68) { |
2538 sql::Connection connection; | 2644 sql::Connection connection; |
2539 ASSERT_TRUE(connection.OpenInMemory()); | 2645 ASSERT_TRUE(connection.OpenInMemory()); |
2540 | 2646 |
2541 SetUpVersion67Database(&connection); | 2647 SetUpVersion67Database(&connection); |
2542 | 2648 |
2543 // Columns existing before version 67. | 2649 // Columns existing before version 67. |
2544 ASSERT_TRUE(connection.DoesColumnExist("metas", "name")); | 2650 ASSERT_TRUE(connection.DoesColumnExist("metas", "name")); |
2545 ASSERT_TRUE(connection.DoesColumnExist("metas", "unsanitized_name")); | 2651 ASSERT_TRUE(connection.DoesColumnExist("metas", "unsanitized_name")); |
2546 ASSERT_TRUE(connection.DoesColumnExist("metas", "server_name")); | 2652 ASSERT_TRUE(connection.DoesColumnExist("metas", "server_name")); |
(...skipping 444 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2991 scoped_ptr<TestDirectoryBackingStore> dbs( | 3097 scoped_ptr<TestDirectoryBackingStore> dbs( |
2992 new TestDirectoryBackingStore(GetUsername(), &connection)); | 3098 new TestDirectoryBackingStore(GetUsername(), &connection)); |
2993 ASSERT_TRUE(dbs->MigrateVersion85To86()); | 3099 ASSERT_TRUE(dbs->MigrateVersion85To86()); |
2994 EXPECT_EQ(86, dbs->GetVersion()); | 3100 EXPECT_EQ(86, dbs->GetVersion()); |
2995 EXPECT_TRUE(connection.DoesColumnExist("metas", "unique_position")); | 3101 EXPECT_TRUE(connection.DoesColumnExist("metas", "unique_position")); |
2996 EXPECT_TRUE(connection.DoesColumnExist("metas", "server_unique_position")); | 3102 EXPECT_TRUE(connection.DoesColumnExist("metas", "server_unique_position")); |
2997 EXPECT_TRUE(connection.DoesColumnExist("metas", "unique_bookmark_tag")); | 3103 EXPECT_TRUE(connection.DoesColumnExist("metas", "unique_bookmark_tag")); |
2998 ASSERT_TRUE(dbs->needs_column_refresh_); | 3104 ASSERT_TRUE(dbs->needs_column_refresh_); |
2999 } | 3105 } |
3000 | 3106 |
| 3107 TEST_F(DirectoryBackingStoreTest, MigrateVersion86To87) { |
| 3108 sql::Connection connection; |
| 3109 EXPECT_TRUE(connection.OpenInMemory()); |
| 3110 SetUpVersion86Database(&connection); |
| 3111 EXPECT_FALSE(connection.DoesColumnExist("metas", "attachment_metadata")); |
| 3112 |
| 3113 scoped_ptr<TestDirectoryBackingStore> dbs( |
| 3114 new TestDirectoryBackingStore(GetUsername(), &connection)); |
| 3115 EXPECT_TRUE(dbs->MigrateVersion86To87()); |
| 3116 EXPECT_EQ(87, dbs->GetVersion()); |
| 3117 EXPECT_TRUE(connection.DoesColumnExist("metas", "attachment_metadata")); |
| 3118 EXPECT_TRUE(dbs->needs_column_refresh_); |
| 3119 } |
| 3120 |
3001 // The purpose of this test case is to make it easier to get a dump of the | 3121 // The purpose of this test case is to make it easier to get a dump of the |
3002 // database so you can implement a SetUpVersionYDatabase method. Here's what | 3122 // database so you can implement a SetUpVersionYDatabase method. Here's what |
3003 // you should do: | 3123 // you should do: |
3004 // | 3124 // |
3005 // 1. Say you're going from version X to version Y. Write the migration | 3125 // 1. Say you're going from version X to version Y. Write the migration |
3006 // method MigrateVersionXToY. | 3126 // method MigrateVersionXToY. |
3007 // 2. Update the test below to call SetUpVersionXDatabase and then | 3127 // 2. Update the test below to call SetUpVersionXDatabase and then |
3008 // MigrateVersionXToY. You now have a database at version Y. Let's dump it. | 3128 // MigrateVersionXToY. You now have a database at version Y. Let's dump it. |
3009 // 3. Set a breakpoint to stop execution just after the connection is | 3129 // 3. Set a breakpoint to stop execution just after the connection is |
3010 // destroyed. Examine temp_dir_ to find the version Y database that was | 3130 // destroyed. Examine temp_dir_ to find the version Y database that was |
3011 // created on disk. E.g. (gdb) p temp_dir_.path().value().c_str() | 3131 // created on disk. E.g. (gdb) p temp_dir_.path().value().c_str() |
3012 // 4. Dump the database using the sqlite3 command line tool: | 3132 // 4. Dump the database using the sqlite3 command line tool: |
3013 // > .output foo_dump.sql | 3133 // > .output foo_dump.sql |
3014 // > .dump | 3134 // > .dump |
3015 // 5. Replace the timestamp columns with META_PROTO_TIMES(x) (or | 3135 // 5. Replace the timestamp columns with META_PROTO_TIMES(x) (or |
3016 // LEGACY_META_PROTO_TIMES(x) if before Version 77). Use this dump to write | 3136 // LEGACY_META_PROTO_TIMES(x) if before Version 77). Use this dump to write |
3017 // a SetupVersionYDatabase method. | 3137 // a SetupVersionYDatabase method. |
3018 TEST_F(DirectoryBackingStoreTest, MigrateToLatestAndDump) { | 3138 TEST_F(DirectoryBackingStoreTest, MigrateToLatestAndDump) { |
3019 { | 3139 { |
3020 sql::Connection connection; | 3140 sql::Connection connection; |
3021 ASSERT_TRUE(connection.Open(GetDatabasePath())); | 3141 ASSERT_TRUE(connection.Open(GetDatabasePath())); |
3022 SetUpVersion85Database(&connection); // Update this. | 3142 SetUpVersion86Database(&connection); // Update this. |
3023 | 3143 |
3024 scoped_ptr<TestDirectoryBackingStore> dbs( | 3144 scoped_ptr<TestDirectoryBackingStore> dbs( |
3025 new TestDirectoryBackingStore(GetUsername(), &connection)); | 3145 new TestDirectoryBackingStore(GetUsername(), &connection)); |
3026 ASSERT_TRUE(dbs->MigrateVersion85To86()); // Update this. | 3146 ASSERT_TRUE(dbs->MigrateVersion86To87()); // Update this. |
3027 ASSERT_TRUE(LoadAndIgnoreReturnedData(dbs.get())); | 3147 ASSERT_TRUE(LoadAndIgnoreReturnedData(dbs.get())); |
3028 EXPECT_EQ(86, dbs->GetVersion()); // Update this. | 3148 EXPECT_EQ(87, dbs->GetVersion()); // Update this. |
3029 ASSERT_FALSE(dbs->needs_column_refresh_); | 3149 ASSERT_FALSE(dbs->needs_column_refresh_); |
3030 } | 3150 } |
3031 // Set breakpoint here. | 3151 // Set breakpoint here. |
3032 } | 3152 } |
3033 | 3153 |
3034 TEST_F(DirectoryBackingStoreTest, DetectInvalidPosition) { | 3154 TEST_F(DirectoryBackingStoreTest, DetectInvalidPosition) { |
3035 sql::Connection connection; | 3155 sql::Connection connection; |
3036 ASSERT_TRUE(connection.OpenInMemory()); | 3156 ASSERT_TRUE(connection.OpenInMemory()); |
3037 SetUpVersion86Database(&connection); | 3157 SetUpVersion86Database(&connection); |
3038 | 3158 |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3114 break; | 3234 break; |
3115 case 84: | 3235 case 84: |
3116 SetUpVersion84Database(&connection); | 3236 SetUpVersion84Database(&connection); |
3117 break; | 3237 break; |
3118 case 85: | 3238 case 85: |
3119 SetUpVersion85Database(&connection); | 3239 SetUpVersion85Database(&connection); |
3120 break; | 3240 break; |
3121 case 86: | 3241 case 86: |
3122 SetUpVersion86Database(&connection); | 3242 SetUpVersion86Database(&connection); |
3123 break; | 3243 break; |
| 3244 case 87: |
| 3245 SetUpVersion87Database(&connection); |
| 3246 break; |
3124 default: | 3247 default: |
3125 // If you see this error, it may mean that you've increased the | 3248 // If you see this error, it may mean that you've increased the |
3126 // database version number but you haven't finished adding unit tests | 3249 // database version number but you haven't finished adding unit tests |
3127 // for the database migration code. You need to need to supply a | 3250 // for the database migration code. You need to need to supply a |
3128 // SetUpVersionYDatabase function with a dump of the test database | 3251 // SetUpVersionYDatabase function with a dump of the test database |
3129 // at the new schema. See the MigrateToLatestAndDump test case. | 3252 // at the new schema. See the MigrateToLatestAndDump test case. |
3130 FAIL() << "Need to supply database dump for version " << GetParam(); | 3253 FAIL() << "Need to supply database dump for version " << GetParam(); |
3131 } | 3254 } |
3132 | 3255 |
3133 syncable::Directory::KernelLoadInfo dir_info; | 3256 syncable::Directory::KernelLoadInfo dir_info; |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3200 ASSERT_TRUE(connection.DoesTableExist("deleted_metas")); | 3323 ASSERT_TRUE(connection.DoesTableExist("deleted_metas")); |
3201 | 3324 |
3202 // Column removed in version 85. | 3325 // Column removed in version 85. |
3203 ASSERT_FALSE(connection.DoesColumnExist("models", "initial_sync_ended")); | 3326 ASSERT_FALSE(connection.DoesColumnExist("models", "initial_sync_ended")); |
3204 | 3327 |
3205 // Columns removed in version 86. | 3328 // Columns removed in version 86. |
3206 ASSERT_FALSE(connection.DoesColumnExist("metas", "next_id")); | 3329 ASSERT_FALSE(connection.DoesColumnExist("metas", "next_id")); |
3207 ASSERT_FALSE(connection.DoesColumnExist("metas", "prev_id")); | 3330 ASSERT_FALSE(connection.DoesColumnExist("metas", "prev_id")); |
3208 ASSERT_FALSE(connection.DoesColumnExist("metas", "server_ordinal_in_parent")); | 3331 ASSERT_FALSE(connection.DoesColumnExist("metas", "server_ordinal_in_parent")); |
3209 | 3332 |
| 3333 // Column added in version 87. |
| 3334 ASSERT_TRUE(connection.DoesColumnExist("metas", "attachment_metadata")); |
| 3335 |
3210 // Check download_progress state (v75 migration) | 3336 // Check download_progress state (v75 migration) |
3211 ASSERT_EQ(694, | 3337 ASSERT_EQ(694, |
3212 dir_info.kernel_info.download_progress[BOOKMARKS] | 3338 dir_info.kernel_info.download_progress[BOOKMARKS] |
3213 .timestamp_token_for_migration()); | 3339 .timestamp_token_for_migration()); |
3214 ASSERT_FALSE( | 3340 ASSERT_FALSE( |
3215 dir_info.kernel_info.download_progress[BOOKMARKS] | 3341 dir_info.kernel_info.download_progress[BOOKMARKS] |
3216 .has_token()); | 3342 .has_token()); |
3217 ASSERT_EQ(32904, | 3343 ASSERT_EQ(32904, |
3218 dir_info.kernel_info.download_progress[BOOKMARKS] | 3344 dir_info.kernel_info.download_progress[BOOKMARKS] |
3219 .data_type_id()); | 3345 .data_type_id()); |
(...skipping 15 matching lines...) Expand all Loading... |
3235 GetMetaProtoTimes(&connection)); | 3361 GetMetaProtoTimes(&connection)); |
3236 ExpectTimes(handles_map, GetExpectedMetaTimes()); | 3362 ExpectTimes(handles_map, GetExpectedMetaTimes()); |
3237 | 3363 |
3238 Directory::MetahandlesMap::iterator it = handles_map.find(1); | 3364 Directory::MetahandlesMap::iterator it = handles_map.find(1); |
3239 ASSERT_TRUE(it != handles_map.end()); | 3365 ASSERT_TRUE(it != handles_map.end()); |
3240 ASSERT_EQ(1, it->second->ref(META_HANDLE)); | 3366 ASSERT_EQ(1, it->second->ref(META_HANDLE)); |
3241 EXPECT_TRUE(it->second->ref(ID).IsRoot()); | 3367 EXPECT_TRUE(it->second->ref(ID).IsRoot()); |
3242 EXPECT_FALSE(it->second->ref(UNIQUE_POSITION).IsValid()); | 3368 EXPECT_FALSE(it->second->ref(UNIQUE_POSITION).IsValid()); |
3243 EXPECT_FALSE(it->second->ref(SERVER_UNIQUE_POSITION).IsValid()); | 3369 EXPECT_FALSE(it->second->ref(SERVER_UNIQUE_POSITION).IsValid()); |
3244 EXPECT_TRUE(it->second->ref(UNIQUE_BOOKMARK_TAG).empty()); | 3370 EXPECT_TRUE(it->second->ref(UNIQUE_BOOKMARK_TAG).empty()); |
| 3371 EXPECT_TRUE(it->second->ref(ATTACHMENT_METADATA).IsInitialized()); |
3245 | 3372 |
3246 // Items 2, 4, and 5 were deleted. | 3373 // Items 2, 4, and 5 were deleted. |
3247 it = handles_map.find(2); | 3374 it = handles_map.find(2); |
3248 ASSERT_TRUE(it == handles_map.end()); | 3375 ASSERT_TRUE(it == handles_map.end()); |
3249 it = handles_map.find(4); | 3376 it = handles_map.find(4); |
3250 ASSERT_TRUE(it == handles_map.end()); | 3377 ASSERT_TRUE(it == handles_map.end()); |
3251 it = handles_map.find(5); | 3378 it = handles_map.find(5); |
3252 ASSERT_TRUE(it == handles_map.end()); | 3379 ASSERT_TRUE(it == handles_map.end()); |
3253 | 3380 |
3254 it = handles_map.find(6); | 3381 it = handles_map.find(6); |
3255 ASSERT_EQ(6, it->second->ref(META_HANDLE)); | 3382 ASSERT_EQ(6, it->second->ref(META_HANDLE)); |
3256 EXPECT_TRUE(it->second->ref(IS_DIR)); | 3383 EXPECT_TRUE(it->second->ref(IS_DIR)); |
3257 EXPECT_TRUE(it->second->ref(SERVER_IS_DIR)); | 3384 EXPECT_TRUE(it->second->ref(SERVER_IS_DIR)); |
3258 EXPECT_FALSE(it->second->ref(SPECIFICS).bookmark().has_url()); | 3385 EXPECT_FALSE(it->second->ref(SPECIFICS).bookmark().has_url()); |
3259 EXPECT_FALSE(it->second->ref(SERVER_SPECIFICS).bookmark().has_url()); | 3386 EXPECT_FALSE(it->second->ref(SERVER_SPECIFICS).bookmark().has_url()); |
3260 EXPECT_FALSE(it->second->ref(SPECIFICS).bookmark().has_favicon()); | 3387 EXPECT_FALSE(it->second->ref(SPECIFICS).bookmark().has_favicon()); |
3261 EXPECT_FALSE(it->second->ref(SERVER_SPECIFICS).bookmark().has_favicon()); | 3388 EXPECT_FALSE(it->second->ref(SERVER_SPECIFICS).bookmark().has_favicon()); |
3262 EXPECT_TRUE(it->second->ref(UNIQUE_POSITION).IsValid()); | 3389 EXPECT_TRUE(it->second->ref(UNIQUE_POSITION).IsValid()); |
3263 EXPECT_TRUE(it->second->ref(SERVER_UNIQUE_POSITION).IsValid()); | 3390 EXPECT_TRUE(it->second->ref(SERVER_UNIQUE_POSITION).IsValid()); |
3264 EXPECT_EQ(UniquePosition::kSuffixLength, | 3391 EXPECT_EQ(UniquePosition::kSuffixLength, |
3265 it->second->ref(UNIQUE_BOOKMARK_TAG).length()); | 3392 it->second->ref(UNIQUE_BOOKMARK_TAG).length()); |
| 3393 EXPECT_TRUE(it->second->ref(ATTACHMENT_METADATA).IsInitialized()); |
3266 | 3394 |
3267 it = handles_map.find(7); | 3395 it = handles_map.find(7); |
3268 ASSERT_EQ(7, it->second->ref(META_HANDLE)); | 3396 ASSERT_EQ(7, it->second->ref(META_HANDLE)); |
3269 EXPECT_EQ("google_chrome", it->second->ref(UNIQUE_SERVER_TAG)); | 3397 EXPECT_EQ("google_chrome", it->second->ref(UNIQUE_SERVER_TAG)); |
3270 EXPECT_FALSE(it->second->ref(SPECIFICS).has_bookmark()); | 3398 EXPECT_FALSE(it->second->ref(SPECIFICS).has_bookmark()); |
3271 EXPECT_FALSE(it->second->ref(SERVER_SPECIFICS).has_bookmark()); | 3399 EXPECT_FALSE(it->second->ref(SERVER_SPECIFICS).has_bookmark()); |
3272 // Make sure we didn't assign positions to google_chrome. | 3400 // Make sure we didn't assign positions to google_chrome. |
3273 EXPECT_FALSE(it->second->ref(UNIQUE_POSITION).IsValid()); | 3401 EXPECT_FALSE(it->second->ref(UNIQUE_POSITION).IsValid()); |
3274 EXPECT_FALSE(it->second->ref(SERVER_UNIQUE_POSITION).IsValid()); | 3402 EXPECT_FALSE(it->second->ref(SERVER_UNIQUE_POSITION).IsValid()); |
3275 EXPECT_TRUE(it->second->ref(UNIQUE_BOOKMARK_TAG).empty()); | 3403 EXPECT_TRUE(it->second->ref(UNIQUE_BOOKMARK_TAG).empty()); |
| 3404 EXPECT_TRUE(it->second->ref(ATTACHMENT_METADATA).IsInitialized()); |
3276 | 3405 |
3277 it = handles_map.find(8); | 3406 it = handles_map.find(8); |
3278 ASSERT_EQ(8, it->second->ref(META_HANDLE)); | 3407 ASSERT_EQ(8, it->second->ref(META_HANDLE)); |
3279 EXPECT_EQ("google_chrome_bookmarks", it->second->ref(UNIQUE_SERVER_TAG)); | 3408 EXPECT_EQ("google_chrome_bookmarks", it->second->ref(UNIQUE_SERVER_TAG)); |
3280 EXPECT_TRUE(it->second->ref(SPECIFICS).has_bookmark()); | 3409 EXPECT_TRUE(it->second->ref(SPECIFICS).has_bookmark()); |
3281 EXPECT_TRUE(it->second->ref(SERVER_SPECIFICS).has_bookmark()); | 3410 EXPECT_TRUE(it->second->ref(SERVER_SPECIFICS).has_bookmark()); |
3282 ASSERT_EQ(it->second->ref(ID).value(), "s_ID_8"); | 3411 ASSERT_EQ(it->second->ref(ID).value(), "s_ID_8"); |
3283 // Make sure we didn't mistake the bookmark root node for a real bookmark. | 3412 // Make sure we didn't mistake the bookmark root node for a real bookmark. |
3284 EXPECT_FALSE(it->second->ref(UNIQUE_POSITION).IsValid()); | 3413 EXPECT_FALSE(it->second->ref(UNIQUE_POSITION).IsValid()); |
3285 EXPECT_FALSE(it->second->ref(SERVER_UNIQUE_POSITION).IsValid()); | 3414 EXPECT_FALSE(it->second->ref(SERVER_UNIQUE_POSITION).IsValid()); |
3286 EXPECT_TRUE(it->second->ref(UNIQUE_BOOKMARK_TAG).empty()); | 3415 EXPECT_TRUE(it->second->ref(UNIQUE_BOOKMARK_TAG).empty()); |
| 3416 EXPECT_TRUE(it->second->ref(ATTACHMENT_METADATA).IsInitialized()); |
3287 | 3417 |
3288 it = handles_map.find(9); | 3418 it = handles_map.find(9); |
3289 ASSERT_EQ(9, it->second->ref(META_HANDLE)); | 3419 ASSERT_EQ(9, it->second->ref(META_HANDLE)); |
3290 EXPECT_EQ("bookmark_bar", it->second->ref(UNIQUE_SERVER_TAG)); | 3420 EXPECT_EQ("bookmark_bar", it->second->ref(UNIQUE_SERVER_TAG)); |
3291 EXPECT_TRUE(it->second->ref(SPECIFICS).has_bookmark()); | 3421 EXPECT_TRUE(it->second->ref(SPECIFICS).has_bookmark()); |
3292 EXPECT_TRUE(it->second->ref(SERVER_SPECIFICS).has_bookmark()); | 3422 EXPECT_TRUE(it->second->ref(SERVER_SPECIFICS).has_bookmark()); |
3293 // Make sure we didn't assign positions to bookmark_bar. | 3423 // Make sure we didn't assign positions to bookmark_bar. |
3294 EXPECT_FALSE(it->second->ref(UNIQUE_POSITION).IsValid()); | 3424 EXPECT_FALSE(it->second->ref(UNIQUE_POSITION).IsValid()); |
3295 EXPECT_FALSE(it->second->ref(SERVER_UNIQUE_POSITION).IsValid()); | 3425 EXPECT_FALSE(it->second->ref(SERVER_UNIQUE_POSITION).IsValid()); |
3296 EXPECT_TRUE(it->second->ref(UNIQUE_BOOKMARK_TAG).empty()); | 3426 EXPECT_TRUE(it->second->ref(UNIQUE_BOOKMARK_TAG).empty()); |
| 3427 EXPECT_TRUE(it->second->ref(ATTACHMENT_METADATA).IsInitialized()); |
3297 | 3428 |
3298 it = handles_map.find(10); | 3429 it = handles_map.find(10); |
3299 ASSERT_EQ(10, it->second->ref(META_HANDLE)); | 3430 ASSERT_EQ(10, it->second->ref(META_HANDLE)); |
3300 EXPECT_FALSE(it->second->ref(IS_DEL)); | 3431 EXPECT_FALSE(it->second->ref(IS_DEL)); |
3301 EXPECT_TRUE(it->second->ref(SPECIFICS).has_bookmark()); | 3432 EXPECT_TRUE(it->second->ref(SPECIFICS).has_bookmark()); |
3302 EXPECT_TRUE(it->second->ref(SERVER_SPECIFICS).has_bookmark()); | 3433 EXPECT_TRUE(it->second->ref(SERVER_SPECIFICS).has_bookmark()); |
3303 EXPECT_FALSE(it->second->ref(SPECIFICS).bookmark().has_url()); | 3434 EXPECT_FALSE(it->second->ref(SPECIFICS).bookmark().has_url()); |
3304 EXPECT_FALSE(it->second->ref(SPECIFICS).bookmark().has_favicon()); | 3435 EXPECT_FALSE(it->second->ref(SPECIFICS).bookmark().has_favicon()); |
3305 EXPECT_FALSE(it->second->ref(SERVER_SPECIFICS).bookmark().has_url()); | 3436 EXPECT_FALSE(it->second->ref(SERVER_SPECIFICS).bookmark().has_url()); |
3306 EXPECT_FALSE(it->second->ref(SERVER_SPECIFICS).bookmark().has_favicon()); | 3437 EXPECT_FALSE(it->second->ref(SERVER_SPECIFICS).bookmark().has_favicon()); |
3307 EXPECT_EQ("other_bookmarks", it->second->ref(UNIQUE_SERVER_TAG)); | 3438 EXPECT_EQ("other_bookmarks", it->second->ref(UNIQUE_SERVER_TAG)); |
3308 EXPECT_EQ("Other Bookmarks", it->second->ref(NON_UNIQUE_NAME)); | 3439 EXPECT_EQ("Other Bookmarks", it->second->ref(NON_UNIQUE_NAME)); |
3309 EXPECT_EQ("Other Bookmarks", it->second->ref(SERVER_NON_UNIQUE_NAME)); | 3440 EXPECT_EQ("Other Bookmarks", it->second->ref(SERVER_NON_UNIQUE_NAME)); |
3310 ASSERT_EQ(it->second->ref(ID).value(), "s_ID_10"); | 3441 ASSERT_EQ(it->second->ref(ID).value(), "s_ID_10"); |
| 3442 EXPECT_TRUE(it->second->ref(ATTACHMENT_METADATA).IsInitialized()); |
3311 // Make sure we didn't assign positions to server-created folders, either. | 3443 // Make sure we didn't assign positions to server-created folders, either. |
3312 EXPECT_FALSE(it->second->ref(UNIQUE_POSITION).IsValid()); | 3444 EXPECT_FALSE(it->second->ref(UNIQUE_POSITION).IsValid()); |
3313 EXPECT_FALSE(it->second->ref(SERVER_UNIQUE_POSITION).IsValid()); | 3445 EXPECT_FALSE(it->second->ref(SERVER_UNIQUE_POSITION).IsValid()); |
3314 EXPECT_TRUE(it->second->ref(UNIQUE_BOOKMARK_TAG).empty()); | 3446 EXPECT_TRUE(it->second->ref(UNIQUE_BOOKMARK_TAG).empty()); |
| 3447 EXPECT_TRUE(it->second->ref(ATTACHMENT_METADATA).IsInitialized()); |
3315 | 3448 |
3316 it = handles_map.find(11); | 3449 it = handles_map.find(11); |
3317 ASSERT_EQ(11, it->second->ref(META_HANDLE)); | 3450 ASSERT_EQ(11, it->second->ref(META_HANDLE)); |
3318 EXPECT_FALSE(it->second->ref(IS_DEL)); | 3451 EXPECT_FALSE(it->second->ref(IS_DEL)); |
3319 EXPECT_FALSE(it->second->ref(IS_DIR)); | 3452 EXPECT_FALSE(it->second->ref(IS_DIR)); |
3320 EXPECT_TRUE(it->second->ref(SPECIFICS).has_bookmark()); | 3453 EXPECT_TRUE(it->second->ref(SPECIFICS).has_bookmark()); |
3321 EXPECT_TRUE(it->second->ref(SERVER_SPECIFICS).has_bookmark()); | 3454 EXPECT_TRUE(it->second->ref(SERVER_SPECIFICS).has_bookmark()); |
3322 EXPECT_EQ("http://dev.chromium.org/", | 3455 EXPECT_EQ("http://dev.chromium.org/", |
3323 it->second->ref(SPECIFICS).bookmark().url()); | 3456 it->second->ref(SPECIFICS).bookmark().url()); |
3324 EXPECT_EQ("AGATWA", it->second->ref(SPECIFICS).bookmark().favicon()); | 3457 EXPECT_EQ("AGATWA", it->second->ref(SPECIFICS).bookmark().favicon()); |
3325 EXPECT_EQ("http://dev.chromium.org/other", | 3458 EXPECT_EQ("http://dev.chromium.org/other", |
3326 it->second->ref(SERVER_SPECIFICS).bookmark().url()); | 3459 it->second->ref(SERVER_SPECIFICS).bookmark().url()); |
3327 EXPECT_EQ("AFAGVASF", it->second->ref(SERVER_SPECIFICS).bookmark().favicon()); | 3460 EXPECT_EQ("AFAGVASF", it->second->ref(SERVER_SPECIFICS).bookmark().favicon()); |
3328 EXPECT_EQ("", it->second->ref(UNIQUE_SERVER_TAG)); | 3461 EXPECT_EQ("", it->second->ref(UNIQUE_SERVER_TAG)); |
3329 EXPECT_EQ("Home (The Chromium Projects)", it->second->ref(NON_UNIQUE_NAME)); | 3462 EXPECT_EQ("Home (The Chromium Projects)", it->second->ref(NON_UNIQUE_NAME)); |
3330 EXPECT_EQ("Home (The Chromium Projects)", | 3463 EXPECT_EQ("Home (The Chromium Projects)", |
3331 it->second->ref(SERVER_NON_UNIQUE_NAME)); | 3464 it->second->ref(SERVER_NON_UNIQUE_NAME)); |
3332 EXPECT_TRUE(it->second->ref(UNIQUE_POSITION).IsValid()); | 3465 EXPECT_TRUE(it->second->ref(UNIQUE_POSITION).IsValid()); |
3333 EXPECT_TRUE(it->second->ref(SERVER_UNIQUE_POSITION).IsValid()); | 3466 EXPECT_TRUE(it->second->ref(SERVER_UNIQUE_POSITION).IsValid()); |
3334 EXPECT_EQ(UniquePosition::kSuffixLength, | 3467 EXPECT_EQ(UniquePosition::kSuffixLength, |
3335 it->second->ref(UNIQUE_BOOKMARK_TAG).length()); | 3468 it->second->ref(UNIQUE_BOOKMARK_TAG).length()); |
| 3469 EXPECT_TRUE(it->second->ref(ATTACHMENT_METADATA).IsInitialized()); |
3336 | 3470 |
3337 it = handles_map.find(12); | 3471 it = handles_map.find(12); |
3338 ASSERT_EQ(12, it->second->ref(META_HANDLE)); | 3472 ASSERT_EQ(12, it->second->ref(META_HANDLE)); |
3339 EXPECT_FALSE(it->second->ref(IS_DEL)); | 3473 EXPECT_FALSE(it->second->ref(IS_DEL)); |
3340 EXPECT_TRUE(it->second->ref(IS_DIR)); | 3474 EXPECT_TRUE(it->second->ref(IS_DIR)); |
3341 EXPECT_EQ("Extra Bookmarks", it->second->ref(NON_UNIQUE_NAME)); | 3475 EXPECT_EQ("Extra Bookmarks", it->second->ref(NON_UNIQUE_NAME)); |
3342 EXPECT_EQ("Extra Bookmarks", it->second->ref(SERVER_NON_UNIQUE_NAME)); | 3476 EXPECT_EQ("Extra Bookmarks", it->second->ref(SERVER_NON_UNIQUE_NAME)); |
3343 EXPECT_TRUE(it->second->ref(SPECIFICS).has_bookmark()); | 3477 EXPECT_TRUE(it->second->ref(SPECIFICS).has_bookmark()); |
3344 EXPECT_TRUE(it->second->ref(SERVER_SPECIFICS).has_bookmark()); | 3478 EXPECT_TRUE(it->second->ref(SERVER_SPECIFICS).has_bookmark()); |
3345 EXPECT_FALSE(it->second->ref(SPECIFICS).bookmark().has_url()); | 3479 EXPECT_FALSE(it->second->ref(SPECIFICS).bookmark().has_url()); |
3346 EXPECT_FALSE(it->second->ref(SERVER_SPECIFICS).bookmark().has_url()); | 3480 EXPECT_FALSE(it->second->ref(SERVER_SPECIFICS).bookmark().has_url()); |
3347 EXPECT_FALSE(it->second->ref(SPECIFICS).bookmark().has_favicon()); | 3481 EXPECT_FALSE(it->second->ref(SPECIFICS).bookmark().has_favicon()); |
3348 EXPECT_FALSE(it->second->ref(SERVER_SPECIFICS).bookmark().has_favicon()); | 3482 EXPECT_FALSE(it->second->ref(SERVER_SPECIFICS).bookmark().has_favicon()); |
3349 EXPECT_TRUE(it->second->ref(UNIQUE_POSITION).IsValid()); | 3483 EXPECT_TRUE(it->second->ref(UNIQUE_POSITION).IsValid()); |
3350 EXPECT_TRUE(it->second->ref(SERVER_UNIQUE_POSITION).IsValid()); | 3484 EXPECT_TRUE(it->second->ref(SERVER_UNIQUE_POSITION).IsValid()); |
3351 EXPECT_EQ(UniquePosition::kSuffixLength, | 3485 EXPECT_EQ(UniquePosition::kSuffixLength, |
3352 it->second->ref(UNIQUE_BOOKMARK_TAG).length()); | 3486 it->second->ref(UNIQUE_BOOKMARK_TAG).length()); |
| 3487 EXPECT_TRUE(it->second->ref(ATTACHMENT_METADATA).IsInitialized()); |
3353 | 3488 |
3354 it = handles_map.find(13); | 3489 it = handles_map.find(13); |
3355 ASSERT_EQ(13, it->second->ref(META_HANDLE)); | 3490 ASSERT_EQ(13, it->second->ref(META_HANDLE)); |
3356 EXPECT_TRUE(it->second->ref(UNIQUE_POSITION).IsValid()); | 3491 EXPECT_TRUE(it->second->ref(UNIQUE_POSITION).IsValid()); |
3357 EXPECT_TRUE(it->second->ref(SERVER_UNIQUE_POSITION).IsValid()); | 3492 EXPECT_TRUE(it->second->ref(SERVER_UNIQUE_POSITION).IsValid()); |
3358 EXPECT_EQ(UniquePosition::kSuffixLength, | 3493 EXPECT_EQ(UniquePosition::kSuffixLength, |
3359 it->second->ref(UNIQUE_BOOKMARK_TAG).length()); | 3494 it->second->ref(UNIQUE_BOOKMARK_TAG).length()); |
| 3495 EXPECT_TRUE(it->second->ref(ATTACHMENT_METADATA).IsInitialized()); |
3360 | 3496 |
3361 it = handles_map.find(14); | 3497 it = handles_map.find(14); |
3362 ASSERT_EQ(14, it->second->ref(META_HANDLE)); | 3498 ASSERT_EQ(14, it->second->ref(META_HANDLE)); |
3363 EXPECT_TRUE(it->second->ref(UNIQUE_POSITION).IsValid()); | 3499 EXPECT_TRUE(it->second->ref(UNIQUE_POSITION).IsValid()); |
3364 EXPECT_TRUE(it->second->ref(SERVER_UNIQUE_POSITION).IsValid()); | 3500 EXPECT_TRUE(it->second->ref(SERVER_UNIQUE_POSITION).IsValid()); |
3365 EXPECT_EQ(UniquePosition::kSuffixLength, | 3501 EXPECT_EQ(UniquePosition::kSuffixLength, |
3366 it->second->ref(UNIQUE_BOOKMARK_TAG).length()); | 3502 it->second->ref(UNIQUE_BOOKMARK_TAG).length()); |
| 3503 EXPECT_TRUE(it->second->ref(ATTACHMENT_METADATA).IsInitialized()); |
3367 | 3504 |
3368 ASSERT_EQ(static_cast<size_t>(10), handles_map.size()); | 3505 ASSERT_EQ(static_cast<size_t>(10), handles_map.size()); |
3369 | 3506 |
3370 // Make sure that the syncable::Directory and the migration code agree on | 3507 // Make sure that the syncable::Directory and the migration code agree on |
3371 // which items should or should not have unique position values. This test | 3508 // which items should or should not have unique position values. This test |
3372 // may become obsolete if the directory's definition of that function | 3509 // may become obsolete if the directory's definition of that function |
3373 // changes, but, until then, this is a useful test. | 3510 // changes, but, until then, this is a useful test. |
3374 for (it = handles_map.begin(); it != handles_map.end(); it++) { | 3511 for (it = handles_map.begin(); it != handles_map.end(); it++) { |
3375 SCOPED_TRACE(it->second->ref(ID)); | 3512 SCOPED_TRACE(it->second->ref(ID)); |
3376 if (it->second->ShouldMaintainPosition()) { | 3513 if (it->second->ShouldMaintainPosition()) { |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3520 const std::string& guid2 = TestDirectoryBackingStore::GenerateCacheGUID(); | 3657 const std::string& guid2 = TestDirectoryBackingStore::GenerateCacheGUID(); |
3521 EXPECT_EQ(24U, guid1.size()); | 3658 EXPECT_EQ(24U, guid1.size()); |
3522 EXPECT_EQ(24U, guid2.size()); | 3659 EXPECT_EQ(24U, guid2.size()); |
3523 // In theory this test can fail, but it won't before the universe | 3660 // In theory this test can fail, but it won't before the universe |
3524 // dies of heat death. | 3661 // dies of heat death. |
3525 EXPECT_NE(guid1, guid2); | 3662 EXPECT_NE(guid1, guid2); |
3526 } | 3663 } |
3527 | 3664 |
3528 } // namespace syncable | 3665 } // namespace syncable |
3529 } // namespace syncer | 3666 } // namespace syncer |
OLD | NEW |