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

Unified Diff: chrome/browser/sync/syncable/syncable_unittest.cc

Issue 8396022: [Sync] Add HasChildren() function and use it instead of GetFirstChildId() (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments Created 9 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/sync/syncable/syncable.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/sync/syncable/syncable_unittest.cc
diff --git a/chrome/browser/sync/syncable/syncable_unittest.cc b/chrome/browser/sync/syncable/syncable_unittest.cc
index c0ce9bd1fce1f664647b3968825c9182ec81cf93..0950ada4462f45df1948981a423491f89ed14b8e 100644
--- a/chrome/browser/sync/syncable/syncable_unittest.cc
+++ b/chrome/browser/sync/syncable/syncable_unittest.cc
@@ -207,6 +207,72 @@ TEST_F(SyncableGeneralTest, General) {
dir.SaveChanges();
}
+TEST_F(SyncableGeneralTest, ChildrenOps) {
+ Directory dir;
+ dir.Open(db_path_, "SimpleTest", &delegate_);
+
+ int64 root_metahandle;
+ {
+ ReadTransaction rtrans(FROM_HERE, &dir);
+ Entry e(&rtrans, GET_BY_ID, rtrans.root_id());
+ ASSERT_TRUE(e.good());
+ root_metahandle = e.Get(META_HANDLE);
+ }
+
+ int64 written_metahandle;
+ const Id id = TestIdFactory::FromNumber(99);
+ std::string name = "Jeff";
+ {
+ ReadTransaction rtrans(FROM_HERE, &dir);
+ Entry e(&rtrans, GET_BY_ID, id);
+ ASSERT_FALSE(e.good()); // Hasn't been written yet.
+
+ EXPECT_FALSE(dir.HasChildren(&rtrans, rtrans.root_id()));
+ EXPECT_TRUE(dir.GetFirstChildId(&rtrans, rtrans.root_id()).IsRoot());
+ }
+
+ {
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, &dir);
+ MutableEntry me(&wtrans, CREATE, wtrans.root_id(), name);
+ ASSERT_TRUE(me.good());
+ me.Put(ID, id);
+ me.Put(BASE_VERSION, 1);
+ written_metahandle = me.Get(META_HANDLE);
+ }
+
+ // Test children ops after something is now in the DB.
+ {
+ ReadTransaction rtrans(FROM_HERE, &dir);
+ Entry e(&rtrans, GET_BY_ID, id);
+ ASSERT_TRUE(e.good());
+
+ Entry child(&rtrans, GET_BY_HANDLE, written_metahandle);
+ ASSERT_TRUE(child.good());
+
+ EXPECT_TRUE(dir.HasChildren(&rtrans, rtrans.root_id()));
+ EXPECT_EQ(e.Get(ID), dir.GetFirstChildId(&rtrans, rtrans.root_id()));
+ }
+
+ {
+ WriteTransaction wtrans(FROM_HERE, UNITTEST, &dir);
+ MutableEntry me(&wtrans, GET_BY_HANDLE, written_metahandle);
+ ASSERT_TRUE(me.good());
+ me.Put(IS_DEL, true);
+ }
+
+ // Test children ops after the children have been deleted.
+ {
+ ReadTransaction rtrans(FROM_HERE, &dir);
+ Entry e(&rtrans, GET_BY_ID, id);
+ ASSERT_TRUE(e.good());
+
+ EXPECT_FALSE(dir.HasChildren(&rtrans, rtrans.root_id()));
+ EXPECT_TRUE(dir.GetFirstChildId(&rtrans, rtrans.root_id()).IsRoot());
+ }
+
+ dir.SaveChanges();
+}
+
TEST_F(SyncableGeneralTest, ClientIndexRebuildsProperly) {
int64 written_metahandle;
TestIdFactory factory;
« no previous file with comments | « chrome/browser/sync/syncable/syncable.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698