Index: chrome/browser/chromeos/gdata/gdata_file_system_unittest.cc |
diff --git a/chrome/browser/chromeos/gdata/gdata_file_system_unittest.cc b/chrome/browser/chromeos/gdata/gdata_file_system_unittest.cc |
index 073a61e890a60e5e858d2cd7f140b4b1a2763ad2..db4afa1e679259acaec084f10277d4bdac83adae 100644 |
--- a/chrome/browser/chromeos/gdata/gdata_file_system_unittest.cc |
+++ b/chrome/browser/chromeos/gdata/gdata_file_system_unittest.cc |
@@ -275,6 +275,31 @@ class GDataFileSystemTest : public testing::Test { |
return search_delegate.entry(); |
} |
+ // Gets the entry info for |file_path| and compares the contents against |
+ // |entry|. Returns true if the entry info matches |entry|. |
+ bool GetEntryInfoAndCompare(const FilePath& file_path, |
+ GDataEntry* entry) { |
+ file_system_->GetEntryInfoByPathAsync( |
+ file_path, |
+ base::Bind(&CallbackHelper::GetEntryInfoCallback, |
+ callback_helper_.get())); |
+ message_loop_.RunAllPending(); |
+ |
+ if (entry == NULL) { |
+ // Entry info is expected not to be found. |
+ return (callback_helper_->last_error_ == |
+ base::PLATFORM_FILE_ERROR_NOT_FOUND && |
+ callback_helper_->entry_proto_ == NULL); |
+ } |
+ |
+ if (callback_helper_->last_error_ != base::PLATFORM_FILE_OK) |
+ return false; |
+ |
+ scoped_ptr<GDataEntryProto> entry_proto = |
+ callback_helper_->entry_proto_.Pass(); |
+ return (entry->resource_id() == entry_proto->resource_id()); |
+ } |
+ |
// Gets the file info for |file_path| and compares the contents against |
// |file|. Returns true if the file info matches |file|. |
bool GetFileInfoAndCompare(const FilePath& file_path, |
@@ -1029,6 +1054,13 @@ class GDataFileSystemTest : public testing::Test { |
quota_bytes_used_ = bytes_used; |
} |
+ virtual void GetEntryInfoCallback( |
+ base::PlatformFileError error, |
+ scoped_ptr<GDataEntryProto> entry_proto) { |
+ last_error_ = error; |
+ entry_proto_ = entry_proto.Pass(); |
+ } |
+ |
virtual void GetFileInfoCallback( |
base::PlatformFileError error, |
scoped_ptr<GDataFileProto> file_proto) { |
@@ -1049,6 +1081,7 @@ class GDataFileSystemTest : public testing::Test { |
GDataFileType file_type_; |
int64 quota_bytes_total_; |
int64 quota_bytes_used_; |
+ scoped_ptr<GDataEntryProto> entry_proto_; |
scoped_ptr<GDataFileProto> file_proto_; |
scoped_ptr<GDataDirectoryProto> directory_proto_; |
}; |
@@ -1119,6 +1152,7 @@ TEST_F(GDataFileSystemTest, SearchRootDirectory) { |
GDataEntry* entry = FindEntry(FilePath(FILE_PATH_LITERAL(kFilePath))); |
ASSERT_TRUE(entry); |
EXPECT_EQ(kFilePath, entry->GetFilePath()); |
+ EXPECT_TRUE(GetEntryInfoAndCompare(kFilePath, entry)); |
EXPECT_TRUE(ReadDirectoryAndCompare(kFilePath, entry->AsGDataDirectory())); |
} |
@@ -1130,6 +1164,7 @@ TEST_F(GDataFileSystemTest, SearchExistingFile) { |
GDataEntry* entry = FindEntry(kFilePath); |
ASSERT_TRUE(entry); |
EXPECT_EQ(kFilePath, entry->GetFilePath()); |
+ EXPECT_TRUE(GetEntryInfoAndCompare(kFilePath, entry)); |
EXPECT_TRUE(GetFileInfoAndCompare(kFilePath, entry->AsGDataFile())); |
} |
@@ -1141,6 +1176,7 @@ TEST_F(GDataFileSystemTest, SearchExistingDocument) { |
GDataEntry* entry = FindEntry(kFilePath); |
ASSERT_TRUE(entry); |
EXPECT_EQ(kFilePath, entry->GetFilePath()); |
+ EXPECT_TRUE(GetEntryInfoAndCompare(kFilePath, entry)); |
EXPECT_TRUE(GetFileInfoAndCompare(kFilePath, entry->AsGDataFile())); |
} |
@@ -1151,6 +1187,7 @@ TEST_F(GDataFileSystemTest, SearchNonExistingFile) { |
FILE_PATH_LITERAL("gdata/nonexisting.file")); |
GDataEntry* entry = FindEntry(kFilePath); |
ASSERT_FALSE(entry); |
+ EXPECT_TRUE(GetEntryInfoAndCompare(kFilePath, entry)); |
EXPECT_TRUE(GetFileInfoAndCompare(kFilePath, NULL)); |
} |
@@ -1161,12 +1198,15 @@ TEST_F(GDataFileSystemTest, SearchEncodedFileNames) { |
FILE_PATH_LITERAL("gdata/Slash / in file 1.txt")); |
GDataEntry* entry = FindEntry(kFilePath1); |
ASSERT_FALSE(entry); |
+ EXPECT_TRUE(GetEntryInfoAndCompare(kFilePath1, NULL)); |
+ EXPECT_TRUE(GetFileInfoAndCompare(kFilePath1, NULL)); |
const FilePath kFilePath2 = FilePath::FromUTF8Unsafe( |
"gdata/Slash \xE2\x88\x95 in file 1.txt"); |
entry = FindEntry(kFilePath2); |
ASSERT_TRUE(entry); |
EXPECT_EQ(kFilePath2, entry->GetFilePath()); |
+ EXPECT_TRUE(GetEntryInfoAndCompare(kFilePath2, entry)); |
EXPECT_TRUE(GetFileInfoAndCompare(kFilePath2, entry->AsGDataFile())); |
const FilePath kFilePath3 = FilePath::FromUTF8Unsafe( |
@@ -1174,6 +1214,7 @@ TEST_F(GDataFileSystemTest, SearchEncodedFileNames) { |
entry = FindEntry(kFilePath3); |
ASSERT_TRUE(entry); |
EXPECT_EQ(kFilePath3, entry->GetFilePath()); |
+ EXPECT_TRUE(GetEntryInfoAndCompare(kFilePath3, entry)); |
EXPECT_TRUE(GetFileInfoAndCompare(kFilePath3, entry->AsGDataFile())); |
} |
@@ -1184,12 +1225,15 @@ TEST_F(GDataFileSystemTest, SearchEncodedFileNamesLoadingRoot) { |
FILE_PATH_LITERAL("gdata/Slash / in file 1.txt")); |
GDataEntry* entry = FindEntry(kFilePath1); |
ASSERT_FALSE(entry); |
+ EXPECT_TRUE(GetEntryInfoAndCompare(kFilePath1, NULL)); |
+ EXPECT_TRUE(GetFileInfoAndCompare(kFilePath1, NULL)); |
const FilePath kFilePath2 = FilePath::FromUTF8Unsafe( |
"gdata/Slash \xE2\x88\x95 in file 1.txt"); |
entry = FindEntry(kFilePath2); |
ASSERT_TRUE(entry); |
EXPECT_EQ(kFilePath2, entry->GetFilePath()); |
+ EXPECT_TRUE(GetEntryInfoAndCompare(kFilePath2, entry)); |
EXPECT_TRUE(GetFileInfoAndCompare(kFilePath2, entry->AsGDataFile())); |
const FilePath kFilePath3 = FilePath::FromUTF8Unsafe( |
@@ -1197,6 +1241,7 @@ TEST_F(GDataFileSystemTest, SearchEncodedFileNamesLoadingRoot) { |
entry = FindEntry(kFilePath3); |
ASSERT_TRUE(entry); |
EXPECT_EQ(kFilePath3, entry->GetFilePath()); |
+ EXPECT_TRUE(GetEntryInfoAndCompare(kFilePath3, entry)); |
EXPECT_TRUE(GetFileInfoAndCompare(kFilePath3, entry->AsGDataFile())); |
} |
@@ -1208,6 +1253,7 @@ TEST_F(GDataFileSystemTest, SearchDuplicateNames) { |
GDataEntry* entry = FindEntry(kFilePath1); |
ASSERT_TRUE(entry); |
EXPECT_EQ(kFilePath1, entry->GetFilePath()); |
+ EXPECT_TRUE(GetEntryInfoAndCompare(kFilePath1, entry)); |
EXPECT_TRUE(GetFileInfoAndCompare(kFilePath1, entry->AsGDataFile())); |
const FilePath kFilePath2 = FilePath( |
@@ -1215,6 +1261,7 @@ TEST_F(GDataFileSystemTest, SearchDuplicateNames) { |
entry = FindEntry(kFilePath2); |
ASSERT_TRUE(entry); |
EXPECT_EQ(kFilePath2, entry->GetFilePath()); |
+ EXPECT_TRUE(GetEntryInfoAndCompare(kFilePath2, entry)); |
EXPECT_TRUE(GetFileInfoAndCompare(kFilePath2, entry->AsGDataFile())); |
} |
@@ -1226,6 +1273,7 @@ TEST_F(GDataFileSystemTest, SearchExistingDirectory) { |
GDataEntry* entry = FindEntry(kFilePath); |
ASSERT_TRUE(entry); |
EXPECT_EQ(kFilePath, entry->GetFilePath()); |
+ EXPECT_TRUE(GetEntryInfoAndCompare(kFilePath, entry)); |
EXPECT_TRUE(ReadDirectoryAndCompare(kFilePath, entry->AsGDataDirectory())); |
} |
@@ -1237,6 +1285,7 @@ TEST_F(GDataFileSystemTest, SearchInSubdir) { |
GDataEntry* entry = FindEntry(kFilePath); |
ASSERT_TRUE(entry); |
EXPECT_EQ(kFilePath, entry->GetFilePath()); |
+ EXPECT_TRUE(GetEntryInfoAndCompare(kFilePath, entry)); |
EXPECT_TRUE(GetFileInfoAndCompare(kFilePath, entry->AsGDataFile())); |
} |
@@ -1250,6 +1299,7 @@ TEST_F(GDataFileSystemTest, SearchInSubSubdir) { |
GDataEntry* entry = FindEntry(kFilePath); |
ASSERT_TRUE(entry); |
EXPECT_EQ(kFilePath, entry->GetFilePath()); |
+ EXPECT_TRUE(GetEntryInfoAndCompare(kFilePath, entry)); |
EXPECT_TRUE(ReadDirectoryAndCompare(kFilePath, entry->AsGDataDirectory())); |
} |