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

Side by Side Diff: sync/syncable/directory_backing_store_unittest.cc

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

Powered by Google App Engine
This is Rietveld 408576698