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 |
old mode 100644 |
new mode 100755 |
index d5bcd8c9ce27d459eccbfb635a929d3cba468967..2911a46c811542d37a87d32df20d195b3179be96 |
--- a/chrome/browser/sync/syncable/syncable_unittest.cc |
+++ b/chrome/browser/sync/syncable/syncable_unittest.cc |
@@ -42,6 +42,7 @@ |
#include "chrome/browser/sync/util/path_helpers.h" |
#include "chrome/browser/sync/util/query_helpers.h" |
#include "chrome/test/sync/engine/test_id_factory.h" |
+#include "chrome/test/sync/engine/test_syncable_utils.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "third_party/sqlite/preprocessed/sqlite3.h" |
@@ -52,6 +53,7 @@ using std::string; |
namespace syncable { |
+namespace { |
// A lot of these tests were written expecting to be able to read and write |
// object data on entries. However, the design has changed. |
void PutDataAsExtendedAttribute(WriteTransaction* wtrans, |
@@ -68,106 +70,96 @@ void ExpectDataFromExtendedAttributeEquals(BaseTransaction* trans, |
Entry* e, |
const char* bytes, |
size_t bytes_length) { |
+ ASSERT_TRUE(e->good()); |
Blob expected_value(bytes, bytes + bytes_length); |
ExtendedAttributeKey key(e->Get(META_HANDLE), PSTR("DATA")); |
ExtendedAttribute attr(trans, GET_BY_HANDLE, key); |
EXPECT_FALSE(attr.is_deleted()); |
EXPECT_EQ(expected_value, attr.value()); |
} |
- |
+} // namespace |
TEST(Syncable, General) { |
remove("SimpleTest.sqlite3"); |
Directory dir; |
FilePath test_db(FILE_PATH_LITERAL("SimpleTest.sqlite3")); |
dir.Open(test_db, PSTR("SimpleTest")); |
- bool entry_exists = false; |
- int64 metahandle; |
+ |
+ int64 written_metahandle; |
const Id id = TestIdFactory::FromNumber(99); |
- // Test simple read operations. |
+ PathString name = PSTR("Jeff"); |
+ // Test simple read operations on an empty DB. |
{ |
ReadTransaction rtrans(&dir, __FILE__, __LINE__); |
Entry e(&rtrans, GET_BY_ID, id); |
- if (e.good()) { |
- entry_exists = true; |
- metahandle = e.Get(META_HANDLE); |
- } |
+ ASSERT_FALSE(e.good()); // Hasn't been written yet. |
+ |
Directory::ChildHandles child_handles; |
dir.GetChildHandles(&rtrans, rtrans.root_id(), &child_handles); |
- for (Directory::ChildHandles::iterator i = child_handles.begin(); |
- i != child_handles.end(); ++i) |
- cout << *i << endl; |
- |
- Entry e2(&rtrans, GET_BY_PATH, PSTR("/Hello\\World/")); |
+ EXPECT_TRUE(child_handles.empty()); |
} |
// Test creating a new meta entry. |
{ |
WriteTransaction wtrans(&dir, UNITTEST, __FILE__, __LINE__); |
- MutableEntry me(&wtrans, CREATE, wtrans.root_id(), PSTR("Jeff")); |
- ASSERT_TRUE(entry_exists ? !me.good() : me.good()); |
- if (me.good()) { |
- me.Put(ID, id); |
- me.Put(BASE_VERSION, 1); |
- metahandle = me.Get(META_HANDLE); |
+ 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 GetChildHandles after something is now in the DB. |
+ // Also check that GET_BY_ID works. |
+ { |
+ ReadTransaction rtrans(&dir, __FILE__, __LINE__); |
+ Entry e(&rtrans, GET_BY_ID, id); |
+ ASSERT_TRUE(e.good()); |
+ |
+ Directory::ChildHandles child_handles; |
+ dir.GetChildHandles(&rtrans, rtrans.root_id(), &child_handles); |
+ EXPECT_EQ(1u, child_handles.size()); |
+ |
+ for (Directory::ChildHandles::iterator i = child_handles.begin(); |
+ i != child_handles.end(); ++i) { |
+ EXPECT_EQ(*i, written_metahandle); |
} |
} |
- // Test writing data to an entity. |
+ // Test writing data to an entity. Also check that GET_BY_HANDLE works. |
static const char s[] = "Hello World."; |
{ |
WriteTransaction trans(&dir, UNITTEST, __FILE__, __LINE__); |
- MutableEntry e(&trans, GET_BY_PATH, |
- PathString(kPathSeparator) + PSTR("Jeff")); |
+ MutableEntry e(&trans, GET_BY_HANDLE, written_metahandle); |
ASSERT_TRUE(e.good()); |
PutDataAsExtendedAttribute(&trans, &e, s, sizeof(s)); |
} |
- // Test reading back the name contents that we just wrote. |
+ // Test reading back the contents that we just wrote. |
{ |
WriteTransaction trans(&dir, UNITTEST, __FILE__, __LINE__); |
- MutableEntry e(&trans, GET_BY_PATH, |
- PathString(kPathSeparator) + PSTR("Jeff")); |
+ MutableEntry e(&trans, GET_BY_HANDLE, written_metahandle); |
ASSERT_TRUE(e.good()); |
ExpectDataFromExtendedAttributeEquals(&trans, &e, s, sizeof(s)); |
} |
+ // Verify it exists in the folder. |
+ { |
+ ReadTransaction rtrans(&dir, __FILE__, __LINE__); |
+ EXPECT_EQ(1, CountEntriesWithName(&rtrans, rtrans.root_id(), name)); |
+ } |
+ |
// Now delete it. |
{ |
WriteTransaction trans(&dir, UNITTEST, __FILE__, __LINE__); |
- MutableEntry e(&trans, CREATE, trans.root_id(), PSTR("New File")); |
+ MutableEntry e(&trans, GET_BY_HANDLE, written_metahandle); |
e.Put(IS_DEL, true); |
+ |
+ EXPECT_EQ(0, CountEntriesWithName(&trans, trans.root_id(), name)); |
} |
dir.SaveChanges(); |
-} |
- |
-TEST(Syncable, NameClassTest) { |
- const PathString foo(PSTR("foo")); |
- const PathString bar(PSTR("bar")); |
- |
- Name name1(foo); |
- EXPECT_EQ(name1.value(), foo); |
- EXPECT_EQ(name1.db_value(), foo); |
- EXPECT_FALSE(name1.HasBeenSanitized()); |
- EXPECT_TRUE(name1.GetUnsanitizedName().empty()); |
- |
- Name name2(foo, foo); |
- EXPECT_EQ(name2.value(), foo); |
- EXPECT_EQ(name2.db_value(), foo); |
- EXPECT_FALSE(name2.HasBeenSanitized()); |
- EXPECT_TRUE(name2.GetUnsanitizedName().empty()); |
- |
- Name name3(foo, bar); |
- EXPECT_EQ(name3.value(), bar); |
- EXPECT_EQ(name3.db_value(), foo); |
- EXPECT_TRUE(name3.HasBeenSanitized()); |
- EXPECT_EQ(name3.GetUnsanitizedName(), bar); |
- |
- EXPECT_TRUE(name1 == name2); |
- EXPECT_FALSE(name1 != name2); |
- EXPECT_FALSE(name2 == name3); |
- EXPECT_TRUE(name2 != name3); |
+ remove("SimpleTest.sqlite3"); |
} |
namespace { |
@@ -260,16 +252,6 @@ TEST_F(SyncableDirectoryTest, TestBasicLookupValidID) { |
ASSERT_TRUE(e.good()); |
} |
-TEST_F(SyncableDirectoryTest, TestBasicCaseSensitivity) { |
- PathString name = PSTR("RYAN"); |
- PathString conflicting_name = PSTR("ryan"); |
- CreateEntry(name); |
- |
- WriteTransaction wtrans(dir_.get(), UNITTEST, __FILE__, __LINE__); |
- MutableEntry me(&wtrans, CREATE, wtrans.root_id(), conflicting_name); |
- ASSERT_FALSE(me.good()); |
-} |
- |
TEST_F(SyncableDirectoryTest, TestDelete) { |
PathString name = PSTR("peanut butter jelly time"); |
WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__); |
@@ -283,15 +265,13 @@ TEST_F(SyncableDirectoryTest, TestDelete) { |
ASSERT_TRUE(e3.good()); |
ASSERT_TRUE(e3.Put(IS_DEL, true)); |
+ ASSERT_TRUE(e1.Put(IS_DEL, false)); |
+ ASSERT_TRUE(e2.Put(IS_DEL, false)); |
ASSERT_TRUE(e3.Put(IS_DEL, false)); |
- ASSERT_FALSE(e1.Put(IS_DEL, false)); |
- ASSERT_FALSE(e2.Put(IS_DEL, false)); |
- ASSERT_TRUE(e3.Put(IS_DEL, true)); |
- ASSERT_TRUE(e1.Put(IS_DEL, false)); |
- ASSERT_FALSE(e2.Put(IS_DEL, false)); |
- ASSERT_FALSE(e3.Put(IS_DEL, false)); |
ASSERT_TRUE(e1.Put(IS_DEL, true)); |
+ ASSERT_TRUE(e2.Put(IS_DEL, true)); |
+ ASSERT_TRUE(e3.Put(IS_DEL, true)); |
} |
TEST_F(SyncableDirectoryTest, TestGetUnsynced) { |
@@ -462,7 +442,7 @@ TEST_F(SyncableDirectoryTest, DeleteBug_531383) { |
ASSERT_TRUE(twin.good()); |
ASSERT_TRUE(twin.Put(IS_DEL, true)); |
ASSERT_TRUE(grandchild.Put(IS_DEL, false)); |
- ASSERT_FALSE(twin.Put(IS_DEL, false)); |
+ |
grandchild_handle = grandchild.Get(META_HANDLE); |
twin_handle = twin.Get(META_HANDLE); |
} |
@@ -531,86 +511,98 @@ TEST_F(SyncableDirectoryTest, TestIsLegalNewParent) { |
ASSERT_FALSE(IsLegalNewParent(parent, grandchild)); |
} |
-TEST_F(SyncableDirectoryTest, TestFindEntryInFolder) { |
+TEST_F(SyncableDirectoryTest, TestEntryIsInFolder) { |
// Create a subdir and an entry. |
int64 entry_handle; |
+ syncable::Id folder_id; |
+ syncable::Id entry_id; |
+ PathString entry_name = PSTR("entry"); |
+ |
{ |
WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__); |
MutableEntry folder(&trans, CREATE, trans.root_id(), PSTR("folder")); |
ASSERT_TRUE(folder.good()); |
EXPECT_TRUE(folder.Put(IS_DIR, true)); |
EXPECT_TRUE(folder.Put(IS_UNSYNCED, true)); |
- MutableEntry entry(&trans, CREATE, folder.Get(ID), PSTR("entry")); |
+ folder_id = folder.Get(ID); |
+ |
+ MutableEntry entry(&trans, CREATE, folder.Get(ID), entry_name); |
ASSERT_TRUE(entry.good()); |
entry_handle = entry.Get(META_HANDLE); |
entry.Put(IS_UNSYNCED, true); |
+ entry_id = entry.Get(ID); |
} |
// Make sure we can find the entry in the folder. |
{ |
ReadTransaction trans(dir_.get(), __FILE__, __LINE__); |
- Entry entry(&trans, GET_BY_PATH, PathString(kPathSeparator) + |
- PSTR("folder") + |
- kPathSeparator + PSTR("entry")); |
- ASSERT_TRUE(entry.good()); |
- ASSERT_TRUE(entry.Get(META_HANDLE) == entry_handle); |
- } |
-} |
+ EXPECT_EQ(0, CountEntriesWithName(&trans, trans.root_id(), entry_name)); |
+ EXPECT_EQ(1, CountEntriesWithName(&trans, folder_id, entry_name)); |
-TEST_F(SyncableDirectoryTest, TestGetByParentIdAndName) { |
- PathString name = PSTR("Bob"); |
- Id id = TestIdFactory::MakeServer("ID for Bob"); |
- { |
- WriteTransaction wtrans(dir_.get(), UNITTEST, __FILE__, __LINE__); |
- MutableEntry entry(&wtrans, CREATE, wtrans.root_id() /*entry id*/, name); |
+ Entry entry(&trans, GET_BY_ID, entry_id); |
ASSERT_TRUE(entry.good()); |
- entry.Put(IS_DIR, true); |
- entry.Put(ID, id); |
- entry.Put(BASE_VERSION, 1); |
- entry.Put(IS_UNSYNCED, true); |
- } |
- { |
- WriteTransaction wtrans(dir_.get(), UNITTEST, __FILE__, __LINE__); |
- MutableEntry entry(&wtrans, GET_BY_PARENTID_AND_NAME, wtrans.root_id(), |
- name); |
- ASSERT_TRUE(entry.good()); |
- ASSERT_TRUE(id == entry.Get(ID)); |
- } |
- { |
- ReadTransaction trans(dir_.get(), __FILE__, __LINE__); |
- Entry entry(&trans, GET_BY_PARENTID_AND_NAME, trans.root_id(), name); |
- ASSERT_TRUE(entry.good()); |
- ASSERT_TRUE(id == entry.Get(ID)); |
+ EXPECT_EQ(entry_handle, entry.Get(META_HANDLE)); |
+ EXPECT_TRUE(entry.Get(NON_UNIQUE_NAME) == entry_name); |
+ EXPECT_TRUE(entry.Get(PARENT_ID) == folder_id); |
} |
} |
-TEST_F(SyncableDirectoryTest, TestParentIDIndexUpdate) { |
+TEST_F(SyncableDirectoryTest, TestParentIdIndexUpdate) { |
+ PathString child_name = PSTR("child"); |
+ |
WriteTransaction wt(dir_.get(), UNITTEST, __FILE__, __LINE__); |
- MutableEntry folder(&wt, CREATE, wt.root_id(), PSTR("oldname")); |
- folder.Put(NAME, PSTR("newname")); |
- folder.Put(IS_UNSYNCED, true); |
- Entry entry(&wt, GET_BY_PATH, PSTR("newname")); |
- ASSERT_TRUE(entry.good()); |
+ MutableEntry parent_folder(&wt, CREATE, wt.root_id(), PSTR("folder1")); |
+ parent_folder.Put(IS_UNSYNCED, true); |
+ EXPECT_TRUE(parent_folder.Put(IS_DIR, true)); |
+ |
+ MutableEntry parent_folder2(&wt, CREATE, wt.root_id(), PSTR("folder2")); |
+ parent_folder2.Put(IS_UNSYNCED, true); |
+ EXPECT_TRUE(parent_folder2.Put(IS_DIR, true)); |
+ |
+ MutableEntry child(&wt, CREATE, parent_folder.Get(ID), child_name); |
+ EXPECT_TRUE(child.Put(IS_DIR, true)); |
+ child.Put(IS_UNSYNCED, true); |
+ |
+ ASSERT_TRUE(child.good()); |
+ |
+ EXPECT_EQ(0, CountEntriesWithName(&wt, wt.root_id(), child_name)); |
+ EXPECT_EQ(parent_folder.Get(ID), child.Get(PARENT_ID)); |
+ EXPECT_EQ(1, CountEntriesWithName(&wt, parent_folder.Get(ID), child_name)); |
+ EXPECT_EQ(0, CountEntriesWithName(&wt, parent_folder2.Get(ID), child_name)); |
+ child.Put(PARENT_ID, parent_folder2.Get(ID)); |
+ EXPECT_EQ(parent_folder2.Get(ID), child.Get(PARENT_ID)); |
+ EXPECT_EQ(0, CountEntriesWithName(&wt, parent_folder.Get(ID), child_name)); |
+ EXPECT_EQ(1, CountEntriesWithName(&wt, parent_folder2.Get(ID), child_name)); |
+ |
} |
TEST_F(SyncableDirectoryTest, TestNoReindexDeletedItems) { |
+ PathString folder_name = PSTR("folder"); |
+ PathString new_name = PSTR("new_name"); |
+ |
WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__); |
- MutableEntry folder(&trans, CREATE, trans.root_id(), PSTR("folder")); |
+ MutableEntry folder(&trans, CREATE, trans.root_id(), folder_name); |
ASSERT_TRUE(folder.good()); |
ASSERT_TRUE(folder.Put(IS_DIR, true)); |
ASSERT_TRUE(folder.Put(IS_DEL, true)); |
- Entry gone(&trans, GET_BY_PARENTID_AND_NAME, trans.root_id(), PSTR("folder")); |
- ASSERT_FALSE(gone.good()); |
- ASSERT_TRUE(folder.PutParentIdAndName(trans.root_id(), |
- Name(PSTR("new_name")))); |
+ |
+ EXPECT_EQ(0, CountEntriesWithName(&trans, trans.root_id(), folder_name)); |
+ |
+ MutableEntry deleted(&trans, GET_BY_ID, folder.Get(ID)); |
+ ASSERT_TRUE(deleted.good()); |
+ ASSERT_TRUE(deleted.Put(PARENT_ID, trans.root_id())); |
+ ASSERT_TRUE(deleted.Put(NON_UNIQUE_NAME, new_name)); |
+ |
+ EXPECT_EQ(0, CountEntriesWithName(&trans, trans.root_id(), folder_name)); |
+ EXPECT_EQ(0, CountEntriesWithName(&trans, trans.root_id(), new_name)); |
} |
TEST_F(SyncableDirectoryTest, TestCaseChangeRename) { |
WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__); |
MutableEntry folder(&trans, CREATE, trans.root_id(), PSTR("CaseChange")); |
ASSERT_TRUE(folder.good()); |
- EXPECT_TRUE(folder.PutParentIdAndName(trans.root_id(), |
- Name(PSTR("CASECHANGE")))); |
+ EXPECT_TRUE(folder.Put(PARENT_ID, trans.root_id())); |
+ EXPECT_TRUE(folder.Put(NON_UNIQUE_NAME, PSTR("CASECHANGE"))); |
EXPECT_TRUE(folder.Put(IS_DEL, true)); |
} |
@@ -633,24 +625,29 @@ TEST_F(SyncableDirectoryTest, TestShareInfo) { |
} |
TEST_F(SyncableDirectoryTest, TestSimpleFieldsPreservedDuringSaveChanges) { |
- Id id = TestIdFactory::FromNumber(1); |
+ Id update_id = TestIdFactory::FromNumber(1); |
+ Id create_id; |
EntryKernel create_pre_save, update_pre_save; |
EntryKernel create_post_save, update_post_save; |
+ PathString create_name = PSTR("Create"); |
+ |
{ |
WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__); |
- MutableEntry create(&trans, CREATE, trans.root_id(), PSTR("Create")); |
- MutableEntry update(&trans, CREATE_NEW_UPDATE_ITEM, id); |
+ MutableEntry create(&trans, CREATE, trans.root_id(), create_name); |
+ MutableEntry update(&trans, CREATE_NEW_UPDATE_ITEM, update_id); |
create.Put(IS_UNSYNCED, true); |
update.Put(IS_UNAPPLIED_UPDATE, true); |
create_pre_save = create.GetKernelCopy(); |
update_pre_save = update.GetKernelCopy(); |
+ create_id = create.Get(ID); |
} |
dir_->SaveChanges(); |
+ |
{ |
ReadTransaction trans(dir_.get(), __FILE__, __LINE__); |
- Entry create(&trans, GET_BY_PARENTID_AND_NAME, trans.root_id(), |
- PSTR("Create")); |
- Entry update(&trans, GET_BY_ID, id); |
+ Entry create(&trans, GET_BY_ID, create_id); |
+ EXPECT_EQ(1, CountEntriesWithName(&trans, trans.root_id(), create_name)); |
+ Entry update(&trans, GET_BY_ID, update_id); |
create_post_save = create.GetKernelCopy(); |
update_post_save = update.GetKernelCopy(); |
} |
@@ -713,8 +710,8 @@ TEST_F(SyncableDirectoryTest, TestSaveChangesFailure) { |
MutableEntry aguilera(&trans, GET_BY_HANDLE, handle1); |
ASSERT_TRUE(aguilera.good()); |
- aguilera.Put(NAME, PSTR("christina")); |
- ASSERT_TRUE(aguilera.GetKernelCopy().dirty[NAME]); |
+ aguilera.Put(NON_UNIQUE_NAME, PSTR("christina")); |
+ ASSERT_TRUE(aguilera.GetKernelCopy().dirty[NON_UNIQUE_NAME]); |
MutableEntry kids_on_block(&trans, CREATE, trans.root_id(), PSTR("kids")); |
ASSERT_TRUE(kids_on_block.good()); |
@@ -738,7 +735,7 @@ TEST_F(SyncableDirectoryTest, TestSaveChangesFailure) { |
Entry kids_on_block(&trans, GET_BY_HANDLE, handle2); |
ASSERT_TRUE(kids_on_block.good()); |
- EXPECT_TRUE(aguilera.dirty[NAME]); |
+ EXPECT_TRUE(aguilera.dirty[NON_UNIQUE_NAME]); |
EXPECT_TRUE(kids_on_block.Get(IS_NEW)); |
} |
} |
@@ -749,8 +746,9 @@ void SyncableDirectoryTest::ValidateEntry(BaseTransaction* trans, int64 id, |
bool is_del) { |
Entry e(trans, GET_BY_ID, TestIdFactory::FromNumber(id)); |
ASSERT_TRUE(e.good()); |
- if (check_name) |
- ASSERT_TRUE(name == e.Get(NAME)); |
+ if (check_name) { |
+ ASSERT_TRUE(name == e.Get(NON_UNIQUE_NAME)); |
+ } |
ASSERT_TRUE(base_version == e.Get(BASE_VERSION)); |
ASSERT_TRUE(server_version == e.Get(SERVER_VERSION)); |
ASSERT_TRUE(is_del == e.Get(IS_DEL)); |
@@ -891,6 +889,7 @@ class DirectoryKernelStalenessBugDelegate : public ThreadBugDelegate { |
const char test_bytes[] = "test data"; |
const PathString dirname = PSTR("DirectoryKernelStalenessBug"); |
AutoLock scoped_lock(step_->mutex); |
+ const Id jeff_id = TestIdFactory::FromNumber(100); |
while (step_->number < 4) { |
while (step_->number % 2 != role_) { |
@@ -909,7 +908,7 @@ class DirectoryKernelStalenessBugDelegate : public ThreadBugDelegate { |
WriteTransaction trans(dir, UNITTEST, __FILE__, __LINE__); |
MutableEntry me(&trans, CREATE, trans.root_id(), PSTR("Jeff")); |
me.Put(BASE_VERSION, 1); |
- me.Put(ID, TestIdFactory::FromNumber(100)); |
+ me.Put(ID, jeff_id); |
PutDataAsExtendedAttribute(&trans, &me, test_bytes, |
sizeof(test_bytes)); |
} |
@@ -938,7 +937,7 @@ class DirectoryKernelStalenessBugDelegate : public ThreadBugDelegate { |
ScopedDirLookup dir(directory_manager_, dirname); |
CHECK(dir.good()); |
ReadTransaction trans(dir, __FILE__, __LINE__); |
- Entry e(&trans, GET_BY_PATH, PSTR("Jeff")); |
+ Entry e(&trans, GET_BY_ID, jeff_id); |
ExpectDataFromExtendedAttributeEquals(&trans, &e, test_bytes, |
sizeof(test_bytes)); |
} |
@@ -994,9 +993,8 @@ class StressTransactionsDelegate : public PlatformThread::Delegate { |
const int rand_action = rand() % 10; |
if (rand_action < 4 && !path_name.empty()) { |
ReadTransaction trans(dir, __FILE__, __LINE__); |
- Entry e(&trans, GET_BY_PARENTID_AND_NAME, trans.root_id(), path_name); |
+ CHECK(1 == CountEntriesWithName(&trans, trans.root_id(), path_name)); |
PlatformThread::Sleep(rand() % 10); |
- CHECK(e.good()); |
} else { |
string unique_name = StringPrintf("%d.%d", thread_number_, |
entry_count++); |
@@ -1071,31 +1069,6 @@ TEST(Syncable, ComparePathNames) { |
} |
} |
-#if defined(OS_WIN) |
-TEST(Syncable, PathNameMatch) { |
- // basic stuff, not too many otherwise we're testing the os. |
- EXPECT_TRUE(PathNameMatch(PSTR("bob"), PSTR("bob"))); |
- EXPECT_FALSE(PathNameMatch(PSTR("bob"), PSTR("fred"))); |
- // Test our ; extension. |
- EXPECT_TRUE(PathNameMatch(PSTR("bo;b"), PSTR("bo;b"))); |
- EXPECT_TRUE(PathNameMatch(PSTR("bo;b"), PSTR("bo*"))); |
- EXPECT_FALSE(PathNameMatch(PSTR("bo;b"), PSTR("co;b"))); |
- EXPECT_FALSE(PathNameMatch(PSTR("bo;b"), PSTR("co*"))); |
- // Test our fixes for prepended spaces. |
- EXPECT_TRUE(PathNameMatch(PSTR(" bob"), PSTR(" bo*"))); |
- EXPECT_TRUE(PathNameMatch(PSTR(" bob"), PSTR(" bob"))); |
- EXPECT_FALSE(PathNameMatch(PSTR("bob"), PSTR(" bob"))); |
- EXPECT_FALSE(PathNameMatch(PSTR(" bob"), PSTR("bob"))); |
- // Combo test. |
- EXPECT_TRUE(PathNameMatch(PSTR(" b;ob"), PSTR(" b;o*"))); |
- EXPECT_TRUE(PathNameMatch(PSTR(" b;ob"), PSTR(" b;ob"))); |
- EXPECT_FALSE(PathNameMatch(PSTR("b;ob"), PSTR(" b;ob"))); |
- EXPECT_FALSE(PathNameMatch(PSTR(" b;ob"), PSTR("b;ob"))); |
- // other whitespace should give no matches. |
- EXPECT_FALSE(PathNameMatch(PSTR("bob"), PSTR("\tbob"))); |
-} |
-#endif // defined(OS_WIN) |
- |
void FakeSync(MutableEntry* e, const char* fake_id) { |
e->Put(IS_UNSYNCED, false); |
e->Put(BASE_VERSION, 2); |
@@ -1104,11 +1077,11 @@ void FakeSync(MutableEntry* e, const char* fake_id) { |
TEST_F(SyncableDirectoryTest, Bug1509232) { |
const PathString a = PSTR("alpha"); |
- |
- CreateEntry(a, dir_.get()->NextId()); |
+ const Id entry_id = dir_.get()->NextId(); |
+ CreateEntry(a, entry_id); |
{ |
WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__); |
- MutableEntry e(&trans, GET_BY_PATH, a); |
+ MutableEntry e(&trans, GET_BY_ID, entry_id); |
ASSERT_TRUE(e.good()); |
ExtendedAttributeKey key(e.Get(META_HANDLE), PSTR("resourcefork")); |
MutableExtendedAttribute ext(&trans, CREATE, key); |