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

Side by Side Diff: sync/internal_api/sync_manager_impl_unittest.cc

Issue 11571092: sync: Move unique_client_tag hashing code (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Undo some changes and move a test to syncable_util_unittest Created 7 years, 12 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 | Annotate | Revision Log
« no previous file with comments | « sync/internal_api/read_node.cc ('k') | sync/internal_api/write_node.cc » ('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 // Unit tests for the SyncApi. Note that a lot of the underlying 5 // Unit tests for the SyncApi. Note that a lot of the underlying
6 // functionality is provided by the Syncable layer, which has its own 6 // functionality is provided by the Syncable layer, which has its own
7 // unit tests. We'll test SyncApi specific things in this harness. 7 // unit tests. We'll test SyncApi specific things in this harness.
8 8
9 #include <cstddef> 9 #include <cstddef>
10 #include <map> 10 #include <map>
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 #include "sync/protocol/preference_specifics.pb.h" 56 #include "sync/protocol/preference_specifics.pb.h"
57 #include "sync/protocol/proto_value_conversions.h" 57 #include "sync/protocol/proto_value_conversions.h"
58 #include "sync/protocol/sync.pb.h" 58 #include "sync/protocol/sync.pb.h"
59 #include "sync/sessions/sync_session.h" 59 #include "sync/sessions/sync_session.h"
60 #include "sync/syncable/directory.h" 60 #include "sync/syncable/directory.h"
61 #include "sync/syncable/entry.h" 61 #include "sync/syncable/entry.h"
62 #include "sync/syncable/mutable_entry.h" 62 #include "sync/syncable/mutable_entry.h"
63 #include "sync/syncable/nigori_util.h" 63 #include "sync/syncable/nigori_util.h"
64 #include "sync/syncable/syncable_id.h" 64 #include "sync/syncable/syncable_id.h"
65 #include "sync/syncable/syncable_read_transaction.h" 65 #include "sync/syncable/syncable_read_transaction.h"
66 #include "sync/syncable/syncable_util.h"
66 #include "sync/syncable/syncable_write_transaction.h" 67 #include "sync/syncable/syncable_write_transaction.h"
67 #include "sync/test/callback_counter.h" 68 #include "sync/test/callback_counter.h"
68 #include "sync/test/engine/fake_sync_scheduler.h" 69 #include "sync/test/engine/fake_sync_scheduler.h"
69 #include "sync/test/fake_encryptor.h" 70 #include "sync/test/fake_encryptor.h"
70 #include "sync/test/fake_extensions_activity_monitor.h" 71 #include "sync/test/fake_extensions_activity_monitor.h"
71 #include "sync/util/cryptographer.h" 72 #include "sync/util/cryptographer.h"
72 #include "sync/util/extensions_activity_monitor.h" 73 #include "sync/util/extensions_activity_monitor.h"
73 #include "sync/util/test_unrecoverable_error_handler.h" 74 #include "sync/util/test_unrecoverable_error_handler.h"
74 #include "sync/util/time.h" 75 #include "sync/util/time.h"
75 #include "testing/gmock/include/gmock/gmock.h" 76 #include "testing/gmock/include/gmock/gmock.h"
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 EXPECT_EQ(BaseNode::INIT_OK, 273 EXPECT_EQ(BaseNode::INIT_OK,
273 node.InitByClientTagLookup(BOOKMARKS, "testtag")); 274 node.InitByClientTagLookup(BOOKMARKS, "testtag"));
274 275
275 ReadNode root_node(&trans); 276 ReadNode root_node(&trans);
276 root_node.InitByRootLookup(); 277 root_node.InitByRootLookup();
277 EXPECT_NE(node.GetId(), 0); 278 EXPECT_NE(node.GetId(), 0);
278 EXPECT_EQ(node.GetId(), root_node.GetFirstChildId()); 279 EXPECT_EQ(node.GetId(), root_node.GetFirstChildId());
279 } 280 }
280 } 281 }
281 282
282 TEST_F(SyncApiTest, GenerateSyncableHash) {
283 EXPECT_EQ("OyaXV5mEzrPS4wbogmtKvRfekAI=",
284 BaseNode::GenerateSyncableHash(BOOKMARKS, "tag1"));
285 EXPECT_EQ("iNFQtRFQb+IZcn1kKUJEZDDkLs4=",
286 BaseNode::GenerateSyncableHash(PREFERENCES, "tag1"));
287 EXPECT_EQ("gO1cPZQXaM73sHOvSA+tKCKFs58=",
288 BaseNode::GenerateSyncableHash(AUTOFILL, "tag1"));
289
290 EXPECT_EQ("A0eYIHXM1/jVwKDDp12Up20IkKY=",
291 BaseNode::GenerateSyncableHash(BOOKMARKS, "tag2"));
292 EXPECT_EQ("XYxkF7bhS4eItStFgiOIAU23swI=",
293 BaseNode::GenerateSyncableHash(PREFERENCES, "tag2"));
294 EXPECT_EQ("GFiWzo5NGhjLlN+OyCfhy28DJTQ=",
295 BaseNode::GenerateSyncableHash(AUTOFILL, "tag2"));
296 }
297
298 TEST_F(SyncApiTest, ModelTypesSiloed) { 283 TEST_F(SyncApiTest, ModelTypesSiloed) {
299 { 284 {
300 WriteTransaction trans(FROM_HERE, test_user_share_.user_share()); 285 WriteTransaction trans(FROM_HERE, test_user_share_.user_share());
301 ReadNode root_node(&trans); 286 ReadNode root_node(&trans);
302 root_node.InitByRootLookup(); 287 root_node.InitByRootLookup();
303 EXPECT_EQ(root_node.GetFirstChildId(), 0); 288 EXPECT_EQ(root_node.GetFirstChildId(), 0);
304 } 289 }
305 290
306 ignore_result(MakeNode(test_user_share_.user_share(), 291 ignore_result(MakeNode(test_user_share_.user_share(),
307 BOOKMARKS, "collideme")); 292 BOOKMARKS, "collideme"));
(...skipping 641 matching lines...) Expand 10 before | Expand all | Expand 10 after
949 } 934 }
950 935
951 // Looks up an entry by client tag and resets IS_UNSYNCED value to false. 936 // Looks up an entry by client tag and resets IS_UNSYNCED value to false.
952 // Returns true if entry was previously unsynced, false if IS_UNSYNCED was 937 // Returns true if entry was previously unsynced, false if IS_UNSYNCED was
953 // already false. 938 // already false.
954 bool ResetUnsyncedEntry(ModelType type, 939 bool ResetUnsyncedEntry(ModelType type,
955 const std::string& client_tag) { 940 const std::string& client_tag) {
956 UserShare* share = sync_manager_.GetUserShare(); 941 UserShare* share = sync_manager_.GetUserShare();
957 syncable::WriteTransaction trans( 942 syncable::WriteTransaction trans(
958 FROM_HERE, syncable::UNITTEST, share->directory.get()); 943 FROM_HERE, syncable::UNITTEST, share->directory.get());
959 const std::string hash = BaseNode::GenerateSyncableHash(type, client_tag); 944 const std::string hash = syncable::GenerateSyncableHash(type, client_tag);
960 syncable::MutableEntry entry(&trans, syncable::GET_BY_CLIENT_TAG, 945 syncable::MutableEntry entry(&trans, syncable::GET_BY_CLIENT_TAG,
961 hash); 946 hash);
962 EXPECT_TRUE(entry.good()); 947 EXPECT_TRUE(entry.good());
963 if (!entry.Get(IS_UNSYNCED)) 948 if (!entry.Get(IS_UNSYNCED))
964 return false; 949 return false;
965 entry.Put(IS_UNSYNCED, false); 950 entry.Put(IS_UNSYNCED, false);
966 return true; 951 return true;
967 } 952 }
968 953
969 virtual InternalComponentsFactory* GetFactory() { 954 virtual InternalComponentsFactory* GetFactory() {
(...skipping 1220 matching lines...) Expand 10 before | Expand all | Expand 10 after
2190 } 2175 }
2191 2176
2192 // Verifies WriteNode::UpdateEntryWithEncryption does not make unnecessary 2177 // Verifies WriteNode::UpdateEntryWithEncryption does not make unnecessary
2193 // changes. 2178 // changes.
2194 TEST_F(SyncManagerTest, UpdateEntryWithEncryption) { 2179 TEST_F(SyncManagerTest, UpdateEntryWithEncryption) {
2195 std::string client_tag = "title"; 2180 std::string client_tag = "title";
2196 sync_pb::EntitySpecifics entity_specifics; 2181 sync_pb::EntitySpecifics entity_specifics;
2197 entity_specifics.mutable_bookmark()->set_url("url"); 2182 entity_specifics.mutable_bookmark()->set_url("url");
2198 entity_specifics.mutable_bookmark()->set_title("title"); 2183 entity_specifics.mutable_bookmark()->set_title("title");
2199 MakeServerNode(sync_manager_.GetUserShare(), BOOKMARKS, client_tag, 2184 MakeServerNode(sync_manager_.GetUserShare(), BOOKMARKS, client_tag,
2200 BaseNode::GenerateSyncableHash(BOOKMARKS, 2185 syncable::GenerateSyncableHash(BOOKMARKS,
2201 client_tag), 2186 client_tag),
2202 entity_specifics); 2187 entity_specifics);
2203 // New node shouldn't start off unsynced. 2188 // New node shouldn't start off unsynced.
2204 EXPECT_FALSE(ResetUnsyncedEntry(BOOKMARKS, client_tag)); 2189 EXPECT_FALSE(ResetUnsyncedEntry(BOOKMARKS, client_tag));
2205 // Manually change to the same data. Should not set is_unsynced. 2190 // Manually change to the same data. Should not set is_unsynced.
2206 { 2191 {
2207 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 2192 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
2208 WriteNode node(&trans); 2193 WriteNode node(&trans);
2209 EXPECT_EQ(BaseNode::INIT_OK, 2194 EXPECT_EQ(BaseNode::INIT_OK,
2210 node.InitByClientTagLookup(BOOKMARKS, client_tag)); 2195 node.InitByClientTagLookup(BOOKMARKS, client_tag));
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
2339 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 2324 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
2340 Cryptographer* cryptographer = trans.GetCryptographer(); 2325 Cryptographer* cryptographer = trans.GetCryptographer();
2341 sync_pb::PasswordSpecificsData data; 2326 sync_pb::PasswordSpecificsData data;
2342 data.set_password_value("secret"); 2327 data.set_password_value("secret");
2343 cryptographer->Encrypt( 2328 cryptographer->Encrypt(
2344 data, 2329 data,
2345 entity_specifics.mutable_password()-> 2330 entity_specifics.mutable_password()->
2346 mutable_encrypted()); 2331 mutable_encrypted());
2347 } 2332 }
2348 MakeServerNode(sync_manager_.GetUserShare(), PASSWORDS, client_tag, 2333 MakeServerNode(sync_manager_.GetUserShare(), PASSWORDS, client_tag,
2349 BaseNode::GenerateSyncableHash(PASSWORDS, 2334 syncable::GenerateSyncableHash(PASSWORDS,
2350 client_tag), 2335 client_tag),
2351 entity_specifics); 2336 entity_specifics);
2352 // New node shouldn't start off unsynced. 2337 // New node shouldn't start off unsynced.
2353 EXPECT_FALSE(ResetUnsyncedEntry(PASSWORDS, client_tag)); 2338 EXPECT_FALSE(ResetUnsyncedEntry(PASSWORDS, client_tag));
2354 2339
2355 // Manually change to the same data via SetEntitySpecifics. Should not set 2340 // Manually change to the same data via SetEntitySpecifics. Should not set
2356 // is_unsynced. 2341 // is_unsynced.
2357 { 2342 {
2358 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 2343 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
2359 WriteNode node(&trans); 2344 WriteNode node(&trans);
(...skipping 14 matching lines...) Expand all
2374 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 2359 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
2375 Cryptographer* cryptographer = trans.GetCryptographer(); 2360 Cryptographer* cryptographer = trans.GetCryptographer();
2376 sync_pb::PasswordSpecificsData data; 2361 sync_pb::PasswordSpecificsData data;
2377 data.set_password_value("secret"); 2362 data.set_password_value("secret");
2378 cryptographer->Encrypt( 2363 cryptographer->Encrypt(
2379 data, 2364 data,
2380 entity_specifics.mutable_password()-> 2365 entity_specifics.mutable_password()->
2381 mutable_encrypted()); 2366 mutable_encrypted());
2382 } 2367 }
2383 MakeServerNode(sync_manager_.GetUserShare(), PASSWORDS, client_tag, 2368 MakeServerNode(sync_manager_.GetUserShare(), PASSWORDS, client_tag,
2384 BaseNode::GenerateSyncableHash(PASSWORDS, 2369 syncable::GenerateSyncableHash(PASSWORDS,
2385 client_tag), 2370 client_tag),
2386 entity_specifics); 2371 entity_specifics);
2387 // New node shouldn't start off unsynced. 2372 // New node shouldn't start off unsynced.
2388 EXPECT_FALSE(ResetUnsyncedEntry(PASSWORDS, client_tag)); 2373 EXPECT_FALSE(ResetUnsyncedEntry(PASSWORDS, client_tag));
2389 2374
2390 // Manually change to the same data via SetPasswordSpecifics. Should not set 2375 // Manually change to the same data via SetPasswordSpecifics. Should not set
2391 // is_unsynced. 2376 // is_unsynced.
2392 { 2377 {
2393 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 2378 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
2394 WriteNode node(&trans); 2379 WriteNode node(&trans);
(...skipping 30 matching lines...) Expand all
2425 { 2410 {
2426 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 2411 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
2427 Cryptographer* cryptographer = trans.GetCryptographer(); 2412 Cryptographer* cryptographer = trans.GetCryptographer();
2428 sync_pb::PasswordSpecificsData data; 2413 sync_pb::PasswordSpecificsData data;
2429 data.set_password_value("secret"); 2414 data.set_password_value("secret");
2430 cryptographer->Encrypt( 2415 cryptographer->Encrypt(
2431 data, 2416 data,
2432 entity_specifics.mutable_password()->mutable_encrypted()); 2417 entity_specifics.mutable_password()->mutable_encrypted());
2433 } 2418 }
2434 MakeServerNode(sync_manager_.GetUserShare(), PASSWORDS, client_tag, 2419 MakeServerNode(sync_manager_.GetUserShare(), PASSWORDS, client_tag,
2435 BaseNode::GenerateSyncableHash(PASSWORDS, 2420 syncable::GenerateSyncableHash(PASSWORDS,
2436 client_tag), 2421 client_tag),
2437 entity_specifics); 2422 entity_specifics);
2438 // New node shouldn't start off unsynced. 2423 // New node shouldn't start off unsynced.
2439 EXPECT_FALSE(ResetUnsyncedEntry(PASSWORDS, client_tag)); 2424 EXPECT_FALSE(ResetUnsyncedEntry(PASSWORDS, client_tag));
2440 2425
2441 // Set a new passphrase. Should set is_unsynced. 2426 // Set a new passphrase. Should set is_unsynced.
2442 testing::Mock::VerifyAndClearExpectations(&encryption_observer_); 2427 testing::Mock::VerifyAndClearExpectations(&encryption_observer_);
2443 EXPECT_CALL(encryption_observer_, 2428 EXPECT_CALL(encryption_observer_,
2444 OnBootstrapTokenUpdated(_, PASSPHRASE_BOOTSTRAP_TOKEN)); 2429 OnBootstrapTokenUpdated(_, PASSPHRASE_BOOTSTRAP_TOKEN));
2445 EXPECT_CALL(encryption_observer_, OnPassphraseAccepted()); 2430 EXPECT_CALL(encryption_observer_, OnPassphraseAccepted());
(...skipping 18 matching lines...) Expand all
2464 { 2449 {
2465 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 2450 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
2466 Cryptographer* cryptographer = trans.GetCryptographer(); 2451 Cryptographer* cryptographer = trans.GetCryptographer();
2467 sync_pb::PasswordSpecificsData data; 2452 sync_pb::PasswordSpecificsData data;
2468 data.set_password_value("secret"); 2453 data.set_password_value("secret");
2469 cryptographer->Encrypt( 2454 cryptographer->Encrypt(
2470 data, 2455 data,
2471 entity_specifics.mutable_password()->mutable_encrypted()); 2456 entity_specifics.mutable_password()->mutable_encrypted());
2472 } 2457 }
2473 MakeServerNode(sync_manager_.GetUserShare(), PASSWORDS, client_tag, 2458 MakeServerNode(sync_manager_.GetUserShare(), PASSWORDS, client_tag,
2474 BaseNode::GenerateSyncableHash(PASSWORDS, 2459 syncable::GenerateSyncableHash(PASSWORDS,
2475 client_tag), 2460 client_tag),
2476 entity_specifics); 2461 entity_specifics);
2477 // New node shouldn't start off unsynced. 2462 // New node shouldn't start off unsynced.
2478 EXPECT_FALSE(ResetUnsyncedEntry(PASSWORDS, client_tag)); 2463 EXPECT_FALSE(ResetUnsyncedEntry(PASSWORDS, client_tag));
2479 2464
2480 // Force a re-encrypt everything. Should not set is_unsynced. 2465 // Force a re-encrypt everything. Should not set is_unsynced.
2481 testing::Mock::VerifyAndClearExpectations(&encryption_observer_); 2466 testing::Mock::VerifyAndClearExpectations(&encryption_observer_);
2482 EXPECT_CALL(encryption_observer_, OnEncryptionComplete()); 2467 EXPECT_CALL(encryption_observer_, OnEncryptionComplete());
2483 EXPECT_CALL(encryption_observer_, OnCryptographerStateChanged(_)); 2468 EXPECT_CALL(encryption_observer_, OnCryptographerStateChanged(_));
2484 EXPECT_CALL(encryption_observer_, OnEncryptedTypesChanged(_, false)); 2469 EXPECT_CALL(encryption_observer_, OnEncryptedTypesChanged(_, false));
2485 sync_manager_.GetEncryptionHandler()->Init(); 2470 sync_manager_.GetEncryptionHandler()->Init();
2486 PumpLoop(); 2471 PumpLoop();
2487 EXPECT_FALSE(ResetUnsyncedEntry(PASSWORDS, client_tag)); 2472 EXPECT_FALSE(ResetUnsyncedEntry(PASSWORDS, client_tag));
2488 } 2473 }
2489 2474
2490 // Verify SetTitle(..) doesn't unnecessarily set IS_UNSYNCED for bookmarks 2475 // Verify SetTitle(..) doesn't unnecessarily set IS_UNSYNCED for bookmarks
2491 // when we write the same data, but does set it when we write new data. 2476 // when we write the same data, but does set it when we write new data.
2492 TEST_F(SyncManagerTest, SetBookmarkTitle) { 2477 TEST_F(SyncManagerTest, SetBookmarkTitle) {
2493 std::string client_tag = "title"; 2478 std::string client_tag = "title";
2494 sync_pb::EntitySpecifics entity_specifics; 2479 sync_pb::EntitySpecifics entity_specifics;
2495 entity_specifics.mutable_bookmark()->set_url("url"); 2480 entity_specifics.mutable_bookmark()->set_url("url");
2496 entity_specifics.mutable_bookmark()->set_title("title"); 2481 entity_specifics.mutable_bookmark()->set_title("title");
2497 MakeServerNode(sync_manager_.GetUserShare(), BOOKMARKS, client_tag, 2482 MakeServerNode(sync_manager_.GetUserShare(), BOOKMARKS, client_tag,
2498 BaseNode::GenerateSyncableHash(BOOKMARKS, 2483 syncable::GenerateSyncableHash(BOOKMARKS,
2499 client_tag), 2484 client_tag),
2500 entity_specifics); 2485 entity_specifics);
2501 // New node shouldn't start off unsynced. 2486 // New node shouldn't start off unsynced.
2502 EXPECT_FALSE(ResetUnsyncedEntry(BOOKMARKS, client_tag)); 2487 EXPECT_FALSE(ResetUnsyncedEntry(BOOKMARKS, client_tag));
2503 2488
2504 // Manually change to the same title. Should not set is_unsynced. 2489 // Manually change to the same title. Should not set is_unsynced.
2505 { 2490 {
2506 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 2491 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
2507 WriteNode node(&trans); 2492 WriteNode node(&trans);
2508 EXPECT_EQ(BaseNode::INIT_OK, 2493 EXPECT_EQ(BaseNode::INIT_OK,
(...skipping 15 matching lines...) Expand all
2524 2509
2525 // Verify SetTitle(..) doesn't unnecessarily set IS_UNSYNCED for encrypted 2510 // Verify SetTitle(..) doesn't unnecessarily set IS_UNSYNCED for encrypted
2526 // bookmarks when we write the same data, but does set it when we write new 2511 // bookmarks when we write the same data, but does set it when we write new
2527 // data. 2512 // data.
2528 TEST_F(SyncManagerTest, SetBookmarkTitleWithEncryption) { 2513 TEST_F(SyncManagerTest, SetBookmarkTitleWithEncryption) {
2529 std::string client_tag = "title"; 2514 std::string client_tag = "title";
2530 sync_pb::EntitySpecifics entity_specifics; 2515 sync_pb::EntitySpecifics entity_specifics;
2531 entity_specifics.mutable_bookmark()->set_url("url"); 2516 entity_specifics.mutable_bookmark()->set_url("url");
2532 entity_specifics.mutable_bookmark()->set_title("title"); 2517 entity_specifics.mutable_bookmark()->set_title("title");
2533 MakeServerNode(sync_manager_.GetUserShare(), BOOKMARKS, client_tag, 2518 MakeServerNode(sync_manager_.GetUserShare(), BOOKMARKS, client_tag,
2534 BaseNode::GenerateSyncableHash(BOOKMARKS, 2519 syncable::GenerateSyncableHash(BOOKMARKS,
2535 client_tag), 2520 client_tag),
2536 entity_specifics); 2521 entity_specifics);
2537 // New node shouldn't start off unsynced. 2522 // New node shouldn't start off unsynced.
2538 EXPECT_FALSE(ResetUnsyncedEntry(BOOKMARKS, client_tag)); 2523 EXPECT_FALSE(ResetUnsyncedEntry(BOOKMARKS, client_tag));
2539 2524
2540 // Encrypt the datatatype, should set is_unsynced. 2525 // Encrypt the datatatype, should set is_unsynced.
2541 EXPECT_CALL(encryption_observer_, 2526 EXPECT_CALL(encryption_observer_,
2542 OnEncryptedTypesChanged( 2527 OnEncryptedTypesChanged(
2543 HasModelTypes(EncryptableUserTypes()), true)); 2528 HasModelTypes(EncryptableUserTypes()), true));
2544 EXPECT_CALL(encryption_observer_, OnEncryptionComplete()); 2529 EXPECT_CALL(encryption_observer_, OnEncryptionComplete());
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
2583 // Verify SetTitle(..) doesn't unnecessarily set IS_UNSYNCED for non-bookmarks 2568 // Verify SetTitle(..) doesn't unnecessarily set IS_UNSYNCED for non-bookmarks
2584 // when we write the same data, but does set it when we write new data. 2569 // when we write the same data, but does set it when we write new data.
2585 TEST_F(SyncManagerTest, SetNonBookmarkTitle) { 2570 TEST_F(SyncManagerTest, SetNonBookmarkTitle) {
2586 std::string client_tag = "title"; 2571 std::string client_tag = "title";
2587 sync_pb::EntitySpecifics entity_specifics; 2572 sync_pb::EntitySpecifics entity_specifics;
2588 entity_specifics.mutable_preference()->set_name("name"); 2573 entity_specifics.mutable_preference()->set_name("name");
2589 entity_specifics.mutable_preference()->set_value("value"); 2574 entity_specifics.mutable_preference()->set_value("value");
2590 MakeServerNode(sync_manager_.GetUserShare(), 2575 MakeServerNode(sync_manager_.GetUserShare(),
2591 PREFERENCES, 2576 PREFERENCES,
2592 client_tag, 2577 client_tag,
2593 BaseNode::GenerateSyncableHash(PREFERENCES, 2578 syncable::GenerateSyncableHash(PREFERENCES,
2594 client_tag), 2579 client_tag),
2595 entity_specifics); 2580 entity_specifics);
2596 // New node shouldn't start off unsynced. 2581 // New node shouldn't start off unsynced.
2597 EXPECT_FALSE(ResetUnsyncedEntry(PREFERENCES, client_tag)); 2582 EXPECT_FALSE(ResetUnsyncedEntry(PREFERENCES, client_tag));
2598 2583
2599 // Manually change to the same title. Should not set is_unsynced. 2584 // Manually change to the same title. Should not set is_unsynced.
2600 { 2585 {
2601 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 2586 WriteTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
2602 WriteNode node(&trans); 2587 WriteNode node(&trans);
2603 EXPECT_EQ(BaseNode::INIT_OK, 2588 EXPECT_EQ(BaseNode::INIT_OK,
(...skipping 17 matching lines...) Expand all
2621 // non-bookmarks when we write the same data or when we write new data 2606 // non-bookmarks when we write the same data or when we write new data
2622 // data (should remained kEncryptedString). 2607 // data (should remained kEncryptedString).
2623 TEST_F(SyncManagerTest, SetNonBookmarkTitleWithEncryption) { 2608 TEST_F(SyncManagerTest, SetNonBookmarkTitleWithEncryption) {
2624 std::string client_tag = "title"; 2609 std::string client_tag = "title";
2625 sync_pb::EntitySpecifics entity_specifics; 2610 sync_pb::EntitySpecifics entity_specifics;
2626 entity_specifics.mutable_preference()->set_name("name"); 2611 entity_specifics.mutable_preference()->set_name("name");
2627 entity_specifics.mutable_preference()->set_value("value"); 2612 entity_specifics.mutable_preference()->set_value("value");
2628 MakeServerNode(sync_manager_.GetUserShare(), 2613 MakeServerNode(sync_manager_.GetUserShare(),
2629 PREFERENCES, 2614 PREFERENCES,
2630 client_tag, 2615 client_tag,
2631 BaseNode::GenerateSyncableHash(PREFERENCES, 2616 syncable::GenerateSyncableHash(PREFERENCES,
2632 client_tag), 2617 client_tag),
2633 entity_specifics); 2618 entity_specifics);
2634 // New node shouldn't start off unsynced. 2619 // New node shouldn't start off unsynced.
2635 EXPECT_FALSE(ResetUnsyncedEntry(PREFERENCES, client_tag)); 2620 EXPECT_FALSE(ResetUnsyncedEntry(PREFERENCES, client_tag));
2636 2621
2637 // Encrypt the datatatype, should set is_unsynced. 2622 // Encrypt the datatatype, should set is_unsynced.
2638 EXPECT_CALL(encryption_observer_, 2623 EXPECT_CALL(encryption_observer_,
2639 OnEncryptedTypesChanged( 2624 OnEncryptedTypesChanged(
2640 HasModelTypes(EncryptableUserTypes()), true)); 2625 HasModelTypes(EncryptableUserTypes()), true));
2641 EXPECT_CALL(encryption_observer_, OnEncryptionComplete()); 2626 EXPECT_CALL(encryption_observer_, OnEncryptionComplete());
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
2692 Cryptographer* crypto = trans.GetCryptographer(); 2677 Cryptographer* crypto = trans.GetCryptographer();
2693 sync_pb::EntitySpecifics bm_specifics; 2678 sync_pb::EntitySpecifics bm_specifics;
2694 bm_specifics.mutable_bookmark()->set_title("title"); 2679 bm_specifics.mutable_bookmark()->set_title("title");
2695 bm_specifics.mutable_bookmark()->set_url("url"); 2680 bm_specifics.mutable_bookmark()->set_url("url");
2696 sync_pb::EncryptedData encrypted; 2681 sync_pb::EncryptedData encrypted;
2697 crypto->Encrypt(bm_specifics, &encrypted); 2682 crypto->Encrypt(bm_specifics, &encrypted);
2698 entity_specifics.mutable_encrypted()->CopyFrom(encrypted); 2683 entity_specifics.mutable_encrypted()->CopyFrom(encrypted);
2699 AddDefaultFieldValue(BOOKMARKS, &entity_specifics); 2684 AddDefaultFieldValue(BOOKMARKS, &entity_specifics);
2700 } 2685 }
2701 MakeServerNode(sync_manager_.GetUserShare(), BOOKMARKS, client_tag, 2686 MakeServerNode(sync_manager_.GetUserShare(), BOOKMARKS, client_tag,
2702 BaseNode::GenerateSyncableHash(BOOKMARKS, 2687 syncable::GenerateSyncableHash(BOOKMARKS,
2703 client_tag), 2688 client_tag),
2704 entity_specifics); 2689 entity_specifics);
2705 2690
2706 { 2691 {
2707 // Verify the data. 2692 // Verify the data.
2708 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare()); 2693 ReadTransaction trans(FROM_HERE, sync_manager_.GetUserShare());
2709 ReadNode node(&trans); 2694 ReadNode node(&trans);
2710 EXPECT_EQ(BaseNode::INIT_OK, 2695 EXPECT_EQ(BaseNode::INIT_OK,
2711 node.InitByClientTagLookup(BOOKMARKS, client_tag)); 2696 node.InitByClientTagLookup(BOOKMARKS, client_tag));
2712 EXPECT_EQ(title, node.GetTitle()); 2697 EXPECT_EQ(title, node.GetTitle());
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
2757 GetTransactionVersion(i->first)); 2742 GetTransactionVersion(i->first));
2758 } 2743 }
2759 } 2744 }
2760 2745
2761 // Create bookmark node to increment transaction version of bookmark model. 2746 // Create bookmark node to increment transaction version of bookmark model.
2762 std::string client_tag = "title"; 2747 std::string client_tag = "title";
2763 sync_pb::EntitySpecifics entity_specifics; 2748 sync_pb::EntitySpecifics entity_specifics;
2764 entity_specifics.mutable_bookmark()->set_url("url"); 2749 entity_specifics.mutable_bookmark()->set_url("url");
2765 entity_specifics.mutable_bookmark()->set_title("title"); 2750 entity_specifics.mutable_bookmark()->set_title("title");
2766 MakeServerNode(sync_manager_.GetUserShare(), BOOKMARKS, client_tag, 2751 MakeServerNode(sync_manager_.GetUserShare(), BOOKMARKS, client_tag,
2767 BaseNode::GenerateSyncableHash(BOOKMARKS, 2752 syncable::GenerateSyncableHash(BOOKMARKS,
2768 client_tag), 2753 client_tag),
2769 entity_specifics); 2754 entity_specifics);
2770 2755
2771 { 2756 {
2772 ReadTransaction read_trans(FROM_HERE, sync_manager_.GetUserShare()); 2757 ReadTransaction read_trans(FROM_HERE, sync_manager_.GetUserShare());
2773 for (ModelSafeRoutingInfo::iterator i = routing_info.begin(); 2758 for (ModelSafeRoutingInfo::iterator i = routing_info.begin();
2774 i != routing_info.end(); ++i) { 2759 i != routing_info.end(); ++i) {
2775 EXPECT_EQ(i->first == BOOKMARKS ? 2 : 1, 2760 EXPECT_EQ(i->first == BOOKMARKS ? 2 : 1,
2776 sync_manager_.GetUserShare()->directory-> 2761 sync_manager_.GetUserShare()->directory->
2777 GetTransactionVersion(i->first)); 2762 GetTransactionVersion(i->first));
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
3072 Difference(ModelTypeSet::All(), disabled_types); 3057 Difference(ModelTypeSet::All(), disabled_types);
3073 3058
3074 // Verify only the non-disabled types remain after cleanup. 3059 // Verify only the non-disabled types remain after cleanup.
3075 sync_manager_.PurgeDisabledTypes(enabled_types, new_enabled_types); 3060 sync_manager_.PurgeDisabledTypes(enabled_types, new_enabled_types);
3076 EXPECT_TRUE(new_enabled_types.Equals(sync_manager_.InitialSyncEndedTypes())); 3061 EXPECT_TRUE(new_enabled_types.Equals(sync_manager_.InitialSyncEndedTypes()));
3077 EXPECT_TRUE(disabled_types.Equals( 3062 EXPECT_TRUE(disabled_types.Equals(
3078 sync_manager_.GetTypesWithEmptyProgressMarkerToken(ModelTypeSet::All()))); 3063 sync_manager_.GetTypesWithEmptyProgressMarkerToken(ModelTypeSet::All())));
3079 } 3064 }
3080 3065
3081 } // namespace 3066 } // namespace
OLDNEW
« no previous file with comments | « sync/internal_api/read_node.cc ('k') | sync/internal_api/write_node.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698