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

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

Issue 1136953013: Sync: Change Local IDs to GUID based to avoid ID collision (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Changed comments for Directory::NextId() Created 5 years, 7 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "sync/syncable/directory_unittest.h" 5 #include "sync/syncable/directory_unittest.h"
6 6
7 #include "base/strings/stringprintf.h" 7 #include "base/strings/stringprintf.h"
8 #include "base/test/values_test_util.h" 8 #include "base/test/values_test_util.h"
9 #include "sync/internal_api/public/base/attachment_id_proto.h" 9 #include "sync/internal_api/public/base/attachment_id_proto.h"
10 #include "sync/syncable/syncable_proto_util.h" 10 #include "sync/syncable/syncable_proto_util.h"
(...skipping 1607 matching lines...) Expand 10 before | Expand all | Expand 10 after
1618 ExpectDictBooleanValue(true, *value, "good"); 1618 ExpectDictBooleanValue(true, *value, "good");
1619 EXPECT_TRUE(value->HasKey("kernel")); 1619 EXPECT_TRUE(value->HasKey("kernel"));
1620 ExpectDictStringValue("Bookmarks", *value, "modelType"); 1620 ExpectDictStringValue("Bookmarks", *value, "modelType");
1621 ExpectDictBooleanValue(true, *value, "existsOnClientBecauseNameIsNonEmpty"); 1621 ExpectDictBooleanValue(true, *value, "existsOnClientBecauseNameIsNonEmpty");
1622 ExpectDictBooleanValue(false, *value, "isRoot"); 1622 ExpectDictBooleanValue(false, *value, "isRoot");
1623 } 1623 }
1624 1624
1625 dir()->SaveChanges(); 1625 dir()->SaveChanges();
1626 } 1626 }
1627 1627
1628 // Test that the bookmark tag generation algorithm remains unchanged.
1629 TEST_F(SyncableDirectoryTest, BookmarkTagTest) {
1630 // This test needs its own InMemoryDirectoryBackingStore because it needs to
1631 // call request_consistent_cache_guid().
1632 InMemoryDirectoryBackingStore* store = new InMemoryDirectoryBackingStore("x");
1633
1634 // The two inputs that form the bookmark tag are the directory's cache_guid
1635 // and its next_id value. We don't need to take any action to ensure
1636 // consistent next_id values, but we do need to explicitly request that our
1637 // InMemoryDirectoryBackingStore always return the same cache_guid.
1638 store->request_consistent_cache_guid();
1639
1640 Directory dir(store, unrecoverable_error_handler(), NULL, NULL, NULL);
1641 ASSERT_EQ(
1642 OPENED,
1643 dir.Open("x", directory_change_delegate(), NullTransactionObserver()));
1644
1645 {
1646 WriteTransaction wtrans(FROM_HERE, UNITTEST, &dir);
1647 MutableEntry bm(&wtrans, CREATE, BOOKMARKS, wtrans.root_id(), "bm");
1648 bm.PutIsUnsynced(true);
1649
1650 // If this assertion fails, that might indicate that the algorithm used to
1651 // generate bookmark tags has been modified. This could have implications
1652 // for bookmark ordering. Please make sure you know what you're doing if
1653 // you intend to make such a change.
1654 ASSERT_EQ("6wHRAb3kbnXV5GHrejp4/c1y5tw=", bm.GetUniqueBookmarkTag());
1655 }
1656 }
1657
1658 // A thread that creates a bunch of directory entries. 1628 // A thread that creates a bunch of directory entries.
1659 class StressTransactionsDelegate : public base::PlatformThread::Delegate { 1629 class StressTransactionsDelegate : public base::PlatformThread::Delegate {
1660 public: 1630 public:
1661 StressTransactionsDelegate(Directory* dir, int thread_number) 1631 StressTransactionsDelegate(Directory* dir, int thread_number)
1662 : dir_(dir), thread_number_(thread_number) {} 1632 : dir_(dir), thread_number_(thread_number) {}
1663 1633
1664 private: 1634 private:
1665 Directory* const dir_; 1635 Directory* const dir_;
1666 const int thread_number_; 1636 const int thread_number_;
1667 1637
(...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after
2046 dir.OnCatastrophicError(); 2016 dir.OnCatastrophicError();
2047 dir.OnCatastrophicError(); 2017 dir.OnCatastrophicError();
2048 2018
2049 // See that the unrecoverable error handler has been invoked twice. 2019 // See that the unrecoverable error handler has been invoked twice.
2050 ASSERT_EQ(2, unrecoverable_error_handler.invocation_count()); 2020 ASSERT_EQ(2, unrecoverable_error_handler.invocation_count());
2051 } 2021 }
2052 2022
2053 } // namespace syncable 2023 } // namespace syncable
2054 2024
2055 } // namespace syncer 2025 } // namespace syncer
OLDNEW
« no previous file with comments | « sync/syncable/directory_backing_store_unittest.cc ('k') | sync/syncable/in_memory_directory_backing_store.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698