| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 #include "chrome/browser/chromeos/drive/drive_resource_metadata.h" | 5 #include "chrome/browser/chromeos/drive/drive_resource_metadata.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 | 45 |
| 46 // Copies result from GetChangestampCallback. | 46 // Copies result from GetChangestampCallback. |
| 47 void CopyResultFromGetChangestampCallback( | 47 void CopyResultFromGetChangestampCallback( |
| 48 int64* out_changestamp, int64 in_changestamp) { | 48 int64* out_changestamp, int64 in_changestamp) { |
| 49 *out_changestamp = in_changestamp; | 49 *out_changestamp = in_changestamp; |
| 50 } | 50 } |
| 51 | 51 |
| 52 } // namespace | 52 } // namespace |
| 53 | 53 |
| 54 class DriveResourceMetadataTest : public testing::Test { | 54 class DriveResourceMetadataTest : public testing::Test { |
| 55 public: | 55 protected: |
| 56 DriveResourceMetadataTest(); | 56 DriveResourceMetadataTest(); |
| 57 | 57 |
| 58 protected: | |
| 59 // Creates a DriveEntryProto. | |
| 60 DriveEntryProto CreateDriveEntryProto(int sequence_id, | |
| 61 bool is_directory, | |
| 62 const std::string& parent_resource_id); | |
| 63 | |
| 64 // Adds a DriveEntryProto to the metadata tree. Returns true on success. | |
| 65 bool AddDriveEntryProto(int sequence_id, | |
| 66 bool is_directory, | |
| 67 const std::string& parent_resource_id); | |
| 68 | |
| 69 DriveResourceMetadata resource_metadata_; | |
| 70 | |
| 71 private: | |
| 72 // Creates the following files/directories | 58 // Creates the following files/directories |
| 73 // drive/dir1/ | 59 // drive/dir1/ |
| 74 // drive/dir2/ | 60 // drive/dir2/ |
| 75 // drive/dir1/dir3/ | 61 // drive/dir1/dir3/ |
| 76 // drive/dir1/file4 | 62 // drive/dir1/file4 |
| 77 // drive/dir1/file5 | 63 // drive/dir1/file5 |
| 78 // drive/dir2/file6 | 64 // drive/dir2/file6 |
| 79 // drive/dir2/file7 | 65 // drive/dir2/file7 |
| 80 // drive/dir2/file8 | 66 // drive/dir2/file8 |
| 81 // drive/dir1/dir3/file9 | 67 // drive/dir1/dir3/file9 |
| 82 // drive/dir1/dir3/file10 | 68 // drive/dir1/dir3/file10 |
| 83 void Init(); | 69 static void Init(DriveResourceMetadataInterface* resource_metadata); |
| 84 | 70 |
| 71 // Creates a DriveEntryProto. |
| 72 static DriveEntryProto CreateDriveEntryProto( |
| 73 int sequence_id, |
| 74 bool is_directory, |
| 75 const std::string& parent_resource_id); |
| 76 |
| 77 // Adds a DriveEntryProto to the metadata tree. Returns true on success. |
| 78 static bool AddDriveEntryProto( |
| 79 DriveResourceMetadataInterface* resource_metadata, |
| 80 int sequence_id, |
| 81 bool is_directory, |
| 82 const std::string& parent_resource_id); |
| 83 |
| 84 scoped_ptr<DriveResourceMetadataInterface> resource_metadata_; |
| 85 |
| 86 private: |
| 85 MessageLoopForUI message_loop_; | 87 MessageLoopForUI message_loop_; |
| 86 content::TestBrowserThread ui_thread_; | 88 content::TestBrowserThread ui_thread_; |
| 87 }; | 89 }; |
| 88 | 90 |
| 89 DriveResourceMetadataTest::DriveResourceMetadataTest() | 91 DriveResourceMetadataTest::DriveResourceMetadataTest() |
| 90 : resource_metadata_(kTestRootResourceId), | 92 : ui_thread_(content::BrowserThread::UI, &message_loop_) { |
| 91 ui_thread_(content::BrowserThread::UI, &message_loop_) { | 93 resource_metadata_.reset(new DriveResourceMetadata(kTestRootResourceId)); |
| 92 Init(); | 94 |
| 95 Init(resource_metadata_.get()); |
| 93 } | 96 } |
| 94 | 97 |
| 95 void DriveResourceMetadataTest::Init() { | 98 // static |
| 99 void DriveResourceMetadataTest::Init( |
| 100 DriveResourceMetadataInterface* resource_metadata) { |
| 96 int sequence_id = 1; | 101 int sequence_id = 1; |
| 97 ASSERT_TRUE(AddDriveEntryProto( | 102 ASSERT_TRUE(AddDriveEntryProto( |
| 98 sequence_id++, true, kTestRootResourceId)); | 103 resource_metadata, sequence_id++, true, kTestRootResourceId)); |
| 99 ASSERT_TRUE(AddDriveEntryProto( | 104 ASSERT_TRUE(AddDriveEntryProto( |
| 100 sequence_id++, true, kTestRootResourceId)); | 105 resource_metadata, sequence_id++, true, kTestRootResourceId)); |
| 101 ASSERT_TRUE(AddDriveEntryProto(sequence_id++, true, "resource_id:dir1")); | 106 ASSERT_TRUE(AddDriveEntryProto( |
| 107 resource_metadata, sequence_id++, true, "resource_id:dir1")); |
| 102 | 108 |
| 103 ASSERT_TRUE(AddDriveEntryProto(sequence_id++, false, "resource_id:dir1")); | 109 ASSERT_TRUE(AddDriveEntryProto( |
| 104 ASSERT_TRUE(AddDriveEntryProto(sequence_id++, false, "resource_id:dir1")); | 110 resource_metadata, sequence_id++, false, "resource_id:dir1")); |
| 111 ASSERT_TRUE(AddDriveEntryProto( |
| 112 resource_metadata, sequence_id++, false, "resource_id:dir1")); |
| 105 | 113 |
| 106 ASSERT_TRUE(AddDriveEntryProto(sequence_id++, false, "resource_id:dir2")); | 114 ASSERT_TRUE(AddDriveEntryProto( |
| 107 ASSERT_TRUE(AddDriveEntryProto(sequence_id++, false, "resource_id:dir2")); | 115 resource_metadata, sequence_id++, false, "resource_id:dir2")); |
| 108 ASSERT_TRUE(AddDriveEntryProto(sequence_id++, false, "resource_id:dir2")); | 116 ASSERT_TRUE(AddDriveEntryProto( |
| 117 resource_metadata, sequence_id++, false, "resource_id:dir2")); |
| 118 ASSERT_TRUE(AddDriveEntryProto( |
| 119 resource_metadata, sequence_id++, false, "resource_id:dir2")); |
| 109 | 120 |
| 110 ASSERT_TRUE(AddDriveEntryProto(sequence_id++, false, "resource_id:dir3")); | 121 ASSERT_TRUE(AddDriveEntryProto( |
| 111 ASSERT_TRUE(AddDriveEntryProto(sequence_id++, false, "resource_id:dir3")); | 122 resource_metadata, sequence_id++, false, "resource_id:dir3")); |
| 123 ASSERT_TRUE(AddDriveEntryProto( |
| 124 resource_metadata, sequence_id++, false, "resource_id:dir3")); |
| 112 } | 125 } |
| 113 | 126 |
| 127 // static |
| 114 DriveEntryProto DriveResourceMetadataTest::CreateDriveEntryProto( | 128 DriveEntryProto DriveResourceMetadataTest::CreateDriveEntryProto( |
| 115 int sequence_id, | 129 int sequence_id, |
| 116 bool is_directory, | 130 bool is_directory, |
| 117 const std::string& parent_resource_id) { | 131 const std::string& parent_resource_id) { |
| 118 DriveEntryProto entry_proto; | 132 DriveEntryProto entry_proto; |
| 119 const std::string sequence_id_str = base::IntToString(sequence_id); | 133 const std::string sequence_id_str = base::IntToString(sequence_id); |
| 120 const std::string title = (is_directory ? "dir" : "file") + | 134 const std::string title = (is_directory ? "dir" : "file") + sequence_id_str; |
| 121 sequence_id_str; | |
| 122 const std::string resource_id = "resource_id:" + title; | 135 const std::string resource_id = "resource_id:" + title; |
| 123 entry_proto.set_title(title); | 136 entry_proto.set_title(title); |
| 124 entry_proto.set_resource_id(resource_id); | 137 entry_proto.set_resource_id(resource_id); |
| 125 entry_proto.set_parent_resource_id(parent_resource_id); | 138 entry_proto.set_parent_resource_id(parent_resource_id); |
| 126 | 139 |
| 127 PlatformFileInfoProto* file_info = entry_proto.mutable_file_info(); | 140 PlatformFileInfoProto* file_info = entry_proto.mutable_file_info(); |
| 128 file_info->set_is_directory(is_directory); | 141 file_info->set_is_directory(is_directory); |
| 129 | 142 |
| 130 if (!is_directory) { | 143 if (!is_directory) { |
| 131 DriveFileSpecificInfo* file_specific_info = | 144 DriveFileSpecificInfo* file_specific_info = |
| 132 entry_proto.mutable_file_specific_info(); | 145 entry_proto.mutable_file_specific_info(); |
| 133 file_info->set_size(sequence_id * 1024); | 146 file_info->set_size(sequence_id * 1024); |
| 134 file_specific_info->set_file_md5(std::string("md5:") + title); | 147 file_specific_info->set_file_md5(std::string("md5:") + title); |
| 135 } | 148 } |
| 136 return entry_proto; | 149 return entry_proto; |
| 137 } | 150 } |
| 138 | 151 |
| 139 bool DriveResourceMetadataTest::AddDriveEntryProto( | 152 bool DriveResourceMetadataTest::AddDriveEntryProto( |
| 153 DriveResourceMetadataInterface* resource_metadata, |
| 140 int sequence_id, | 154 int sequence_id, |
| 141 bool is_directory, | 155 bool is_directory, |
| 142 const std::string& parent_resource_id) { | 156 const std::string& parent_resource_id) { |
| 143 DriveEntryProto entry_proto = CreateDriveEntryProto(sequence_id, | 157 DriveEntryProto entry_proto = CreateDriveEntryProto(sequence_id, |
| 144 is_directory, | 158 is_directory, |
| 145 parent_resource_id); | 159 parent_resource_id); |
| 146 DriveFileError error = DRIVE_FILE_ERROR_FAILED; | 160 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
| 147 FilePath drive_file_path; | 161 FilePath drive_file_path; |
| 148 | 162 |
| 149 resource_metadata_.AddEntryToParent( | 163 resource_metadata->AddEntryToParent( |
| 150 entry_proto, | 164 entry_proto, |
| 151 base::Bind(&test_util::CopyResultsFromFileMoveCallback, | 165 base::Bind(&test_util::CopyResultsFromFileMoveCallback, |
| 152 &error, &drive_file_path)); | 166 &error, &drive_file_path)); |
| 153 google_apis::test_util::RunBlockingPoolTask(); | 167 google_apis::test_util::RunBlockingPoolTask(); |
| 154 return DRIVE_FILE_OK == error; | 168 return DRIVE_FILE_OK == error; |
| 155 } | 169 } |
| 156 | 170 |
| 157 TEST_F(DriveResourceMetadataTest, VersionCheck) { | 171 TEST_F(DriveResourceMetadataTest, VersionCheck) { |
| 158 // Set up the root directory. | 172 // Set up the root directory. |
| 159 DriveRootDirectoryProto proto; | 173 DriveRootDirectoryProto proto; |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 227 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive"), drive_file_path); | 241 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive"), drive_file_path); |
| 228 ASSERT_TRUE(entry_proto.get()); | 242 ASSERT_TRUE(entry_proto.get()); |
| 229 EXPECT_EQ("drive", entry_proto->base_name()); | 243 EXPECT_EQ("drive", entry_proto->base_name()); |
| 230 } | 244 } |
| 231 | 245 |
| 232 TEST_F(DriveResourceMetadataTest, GetEntryInfoByResourceId) { | 246 TEST_F(DriveResourceMetadataTest, GetEntryInfoByResourceId) { |
| 233 // Confirm that an existing file is found. | 247 // Confirm that an existing file is found. |
| 234 DriveFileError error = DRIVE_FILE_ERROR_FAILED; | 248 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
| 235 FilePath drive_file_path; | 249 FilePath drive_file_path; |
| 236 scoped_ptr<DriveEntryProto> entry_proto; | 250 scoped_ptr<DriveEntryProto> entry_proto; |
| 237 resource_metadata_.GetEntryInfoByResourceId( | 251 resource_metadata_->GetEntryInfoByResourceId( |
| 238 "resource_id:file4", | 252 "resource_id:file4", |
| 239 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, | 253 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, |
| 240 &error, &drive_file_path, &entry_proto)); | 254 &error, &drive_file_path, &entry_proto)); |
| 241 google_apis::test_util::RunBlockingPoolTask(); | 255 google_apis::test_util::RunBlockingPoolTask(); |
| 242 EXPECT_EQ(DRIVE_FILE_OK, error); | 256 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 243 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file4"), drive_file_path); | 257 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file4"), drive_file_path); |
| 244 ASSERT_TRUE(entry_proto.get()); | 258 ASSERT_TRUE(entry_proto.get()); |
| 245 EXPECT_EQ("file4", entry_proto->base_name()); | 259 EXPECT_EQ("file4", entry_proto->base_name()); |
| 246 | 260 |
| 247 // Confirm that a non existing file is not found. | 261 // Confirm that a non existing file is not found. |
| 248 error = DRIVE_FILE_ERROR_FAILED; | 262 error = DRIVE_FILE_ERROR_FAILED; |
| 249 entry_proto.reset(); | 263 entry_proto.reset(); |
| 250 resource_metadata_.GetEntryInfoByResourceId( | 264 resource_metadata_->GetEntryInfoByResourceId( |
| 251 "file:non_existing", | 265 "file:non_existing", |
| 252 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, | 266 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, |
| 253 &error, &drive_file_path, &entry_proto)); | 267 &error, &drive_file_path, &entry_proto)); |
| 254 google_apis::test_util::RunBlockingPoolTask(); | 268 google_apis::test_util::RunBlockingPoolTask(); |
| 255 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, error); | 269 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, error); |
| 256 EXPECT_FALSE(entry_proto.get()); | 270 EXPECT_FALSE(entry_proto.get()); |
| 257 } | 271 } |
| 258 | 272 |
| 259 TEST_F(DriveResourceMetadataTest, GetEntryInfoByPath) { | 273 TEST_F(DriveResourceMetadataTest, GetEntryInfoByPath) { |
| 260 // Confirm that an existing file is found. | 274 // Confirm that an existing file is found. |
| 261 DriveFileError error = DRIVE_FILE_ERROR_FAILED; | 275 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
| 262 scoped_ptr<DriveEntryProto> entry_proto; | 276 scoped_ptr<DriveEntryProto> entry_proto; |
| 263 resource_metadata_.GetEntryInfoByPath( | 277 resource_metadata_->GetEntryInfoByPath( |
| 264 FilePath::FromUTF8Unsafe("drive/dir1/file4"), | 278 FilePath::FromUTF8Unsafe("drive/dir1/file4"), |
| 265 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback, | 279 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback, |
| 266 &error, &entry_proto)); | 280 &error, &entry_proto)); |
| 267 google_apis::test_util::RunBlockingPoolTask(); | 281 google_apis::test_util::RunBlockingPoolTask(); |
| 268 EXPECT_EQ(DRIVE_FILE_OK, error); | 282 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 269 ASSERT_TRUE(entry_proto.get()); | 283 ASSERT_TRUE(entry_proto.get()); |
| 270 EXPECT_EQ("file4", entry_proto->base_name()); | 284 EXPECT_EQ("file4", entry_proto->base_name()); |
| 271 | 285 |
| 272 // Confirm that a non existing file is not found. | 286 // Confirm that a non existing file is not found. |
| 273 error = DRIVE_FILE_ERROR_FAILED; | 287 error = DRIVE_FILE_ERROR_FAILED; |
| 274 entry_proto.reset(); | 288 entry_proto.reset(); |
| 275 resource_metadata_.GetEntryInfoByPath( | 289 resource_metadata_->GetEntryInfoByPath( |
| 276 FilePath::FromUTF8Unsafe("drive/dir1/non_existing"), | 290 FilePath::FromUTF8Unsafe("drive/dir1/non_existing"), |
| 277 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback, | 291 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback, |
| 278 &error, &entry_proto)); | 292 &error, &entry_proto)); |
| 279 google_apis::test_util::RunBlockingPoolTask(); | 293 google_apis::test_util::RunBlockingPoolTask(); |
| 280 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, error); | 294 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, error); |
| 281 EXPECT_FALSE(entry_proto.get()); | 295 EXPECT_FALSE(entry_proto.get()); |
| 282 } | 296 } |
| 283 | 297 |
| 284 TEST_F(DriveResourceMetadataTest, ReadDirectoryByPath) { | 298 TEST_F(DriveResourceMetadataTest, ReadDirectoryByPath) { |
| 285 // Confirm that an existing directory is found. | 299 // Confirm that an existing directory is found. |
| 286 DriveFileError error = DRIVE_FILE_ERROR_FAILED; | 300 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
| 287 scoped_ptr<DriveEntryProtoVector> entries; | 301 scoped_ptr<DriveEntryProtoVector> entries; |
| 288 resource_metadata_.ReadDirectoryByPath( | 302 resource_metadata_->ReadDirectoryByPath( |
| 289 FilePath::FromUTF8Unsafe("drive/dir1"), | 303 FilePath::FromUTF8Unsafe("drive/dir1"), |
| 290 base::Bind(&test_util::CopyResultsFromReadDirectoryCallback, | 304 base::Bind(&test_util::CopyResultsFromReadDirectoryCallback, |
| 291 &error, &entries)); | 305 &error, &entries)); |
| 292 google_apis::test_util::RunBlockingPoolTask(); | 306 google_apis::test_util::RunBlockingPoolTask(); |
| 293 EXPECT_EQ(DRIVE_FILE_OK, error); | 307 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 294 ASSERT_TRUE(entries.get()); | 308 ASSERT_TRUE(entries.get()); |
| 295 ASSERT_EQ(3U, entries->size()); | 309 ASSERT_EQ(3U, entries->size()); |
| 296 | 310 |
| 297 // The order is not guaranteed so we should sort the base names. | 311 // The order is not guaranteed so we should sort the base names. |
| 298 std::vector<std::string> base_names; | 312 std::vector<std::string> base_names; |
| 299 for (size_t i = 0; i < 3; ++i) | 313 for (size_t i = 0; i < 3; ++i) |
| 300 base_names.push_back(entries->at(i).base_name()); | 314 base_names.push_back(entries->at(i).base_name()); |
| 301 std::sort(base_names.begin(), base_names.end()); | 315 std::sort(base_names.begin(), base_names.end()); |
| 302 | 316 |
| 303 EXPECT_EQ("dir3", base_names[0]); | 317 EXPECT_EQ("dir3", base_names[0]); |
| 304 EXPECT_EQ("file4", base_names[1]); | 318 EXPECT_EQ("file4", base_names[1]); |
| 305 EXPECT_EQ("file5", base_names[2]); | 319 EXPECT_EQ("file5", base_names[2]); |
| 306 | 320 |
| 307 // Confirm that a non existing directory is not found. | 321 // Confirm that a non existing directory is not found. |
| 308 error = DRIVE_FILE_ERROR_FAILED; | 322 error = DRIVE_FILE_ERROR_FAILED; |
| 309 entries.reset(); | 323 entries.reset(); |
| 310 resource_metadata_.ReadDirectoryByPath( | 324 resource_metadata_->ReadDirectoryByPath( |
| 311 FilePath::FromUTF8Unsafe("drive/non_existing"), | 325 FilePath::FromUTF8Unsafe("drive/non_existing"), |
| 312 base::Bind(&test_util::CopyResultsFromReadDirectoryCallback, | 326 base::Bind(&test_util::CopyResultsFromReadDirectoryCallback, |
| 313 &error, &entries)); | 327 &error, &entries)); |
| 314 google_apis::test_util::RunBlockingPoolTask(); | 328 google_apis::test_util::RunBlockingPoolTask(); |
| 315 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, error); | 329 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, error); |
| 316 EXPECT_FALSE(entries.get()); | 330 EXPECT_FALSE(entries.get()); |
| 317 | 331 |
| 318 // Confirm that reading a file results in DRIVE_FILE_ERROR_NOT_A_DIRECTORY. | 332 // Confirm that reading a file results in DRIVE_FILE_ERROR_NOT_A_DIRECTORY. |
| 319 error = DRIVE_FILE_ERROR_FAILED; | 333 error = DRIVE_FILE_ERROR_FAILED; |
| 320 entries.reset(); | 334 entries.reset(); |
| 321 resource_metadata_.ReadDirectoryByPath( | 335 resource_metadata_->ReadDirectoryByPath( |
| 322 FilePath::FromUTF8Unsafe("drive/dir1/file4"), | 336 FilePath::FromUTF8Unsafe("drive/dir1/file4"), |
| 323 base::Bind(&test_util::CopyResultsFromReadDirectoryCallback, | 337 base::Bind(&test_util::CopyResultsFromReadDirectoryCallback, |
| 324 &error, &entries)); | 338 &error, &entries)); |
| 325 google_apis::test_util::RunBlockingPoolTask(); | 339 google_apis::test_util::RunBlockingPoolTask(); |
| 326 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_A_DIRECTORY, error); | 340 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_A_DIRECTORY, error); |
| 327 EXPECT_FALSE(entries.get()); | 341 EXPECT_FALSE(entries.get()); |
| 328 } | 342 } |
| 329 | 343 |
| 330 TEST_F(DriveResourceMetadataTest, GetEntryInfoPairByPaths) { | 344 TEST_F(DriveResourceMetadataTest, GetEntryInfoPairByPaths) { |
| 331 // Confirm that existing two files are found. | 345 // Confirm that existing two files are found. |
| 332 scoped_ptr<EntryInfoPairResult> pair_result; | 346 scoped_ptr<EntryInfoPairResult> pair_result; |
| 333 resource_metadata_.GetEntryInfoPairByPaths( | 347 resource_metadata_->GetEntryInfoPairByPaths( |
| 334 FilePath::FromUTF8Unsafe("drive/dir1/file4"), | 348 FilePath::FromUTF8Unsafe("drive/dir1/file4"), |
| 335 FilePath::FromUTF8Unsafe("drive/dir1/file5"), | 349 FilePath::FromUTF8Unsafe("drive/dir1/file5"), |
| 336 base::Bind(&test_util::CopyResultsFromGetEntryInfoPairCallback, | 350 base::Bind(&test_util::CopyResultsFromGetEntryInfoPairCallback, |
| 337 &pair_result)); | 351 &pair_result)); |
| 338 google_apis::test_util::RunBlockingPoolTask(); | 352 google_apis::test_util::RunBlockingPoolTask(); |
| 339 // The first entry should be found. | 353 // The first entry should be found. |
| 340 EXPECT_EQ(DRIVE_FILE_OK, pair_result->first.error); | 354 EXPECT_EQ(DRIVE_FILE_OK, pair_result->first.error); |
| 341 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file4"), | 355 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file4"), |
| 342 pair_result->first.path); | 356 pair_result->first.path); |
| 343 ASSERT_TRUE(pair_result->first.proto.get()); | 357 ASSERT_TRUE(pair_result->first.proto.get()); |
| 344 EXPECT_EQ("file4", pair_result->first.proto->base_name()); | 358 EXPECT_EQ("file4", pair_result->first.proto->base_name()); |
| 345 // The second entry should be found. | 359 // The second entry should be found. |
| 346 EXPECT_EQ(DRIVE_FILE_OK, pair_result->second.error); | 360 EXPECT_EQ(DRIVE_FILE_OK, pair_result->second.error); |
| 347 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file5"), | 361 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file5"), |
| 348 pair_result->second.path); | 362 pair_result->second.path); |
| 349 ASSERT_TRUE(pair_result->second.proto.get()); | 363 ASSERT_TRUE(pair_result->second.proto.get()); |
| 350 EXPECT_EQ("file5", pair_result->second.proto->base_name()); | 364 EXPECT_EQ("file5", pair_result->second.proto->base_name()); |
| 351 | 365 |
| 352 // Confirm that the first non existent file is not found. | 366 // Confirm that the first non existent file is not found. |
| 353 pair_result.reset(); | 367 pair_result.reset(); |
| 354 resource_metadata_.GetEntryInfoPairByPaths( | 368 resource_metadata_->GetEntryInfoPairByPaths( |
| 355 FilePath::FromUTF8Unsafe("drive/dir1/non_existent"), | 369 FilePath::FromUTF8Unsafe("drive/dir1/non_existent"), |
| 356 FilePath::FromUTF8Unsafe("drive/dir1/file5"), | 370 FilePath::FromUTF8Unsafe("drive/dir1/file5"), |
| 357 base::Bind(&test_util::CopyResultsFromGetEntryInfoPairCallback, | 371 base::Bind(&test_util::CopyResultsFromGetEntryInfoPairCallback, |
| 358 &pair_result)); | 372 &pair_result)); |
| 359 google_apis::test_util::RunBlockingPoolTask(); | 373 google_apis::test_util::RunBlockingPoolTask(); |
| 360 // The first entry should not be found. | 374 // The first entry should not be found. |
| 361 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, pair_result->first.error); | 375 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, pair_result->first.error); |
| 362 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/non_existent"), | 376 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/non_existent"), |
| 363 pair_result->first.path); | 377 pair_result->first.path); |
| 364 ASSERT_FALSE(pair_result->first.proto.get()); | 378 ASSERT_FALSE(pair_result->first.proto.get()); |
| 365 // The second entry should not be found, because the first one failed. | 379 // The second entry should not be found, because the first one failed. |
| 366 EXPECT_EQ(DRIVE_FILE_ERROR_FAILED, pair_result->second.error); | 380 EXPECT_EQ(DRIVE_FILE_ERROR_FAILED, pair_result->second.error); |
| 367 EXPECT_EQ(FilePath(), pair_result->second.path); | 381 EXPECT_EQ(FilePath(), pair_result->second.path); |
| 368 ASSERT_FALSE(pair_result->second.proto.get()); | 382 ASSERT_FALSE(pair_result->second.proto.get()); |
| 369 | 383 |
| 370 // Confirm that the second non existent file is not found. | 384 // Confirm that the second non existent file is not found. |
| 371 pair_result.reset(); | 385 pair_result.reset(); |
| 372 resource_metadata_.GetEntryInfoPairByPaths( | 386 resource_metadata_->GetEntryInfoPairByPaths( |
| 373 FilePath::FromUTF8Unsafe("drive/dir1/file4"), | 387 FilePath::FromUTF8Unsafe("drive/dir1/file4"), |
| 374 FilePath::FromUTF8Unsafe("drive/dir1/non_existent"), | 388 FilePath::FromUTF8Unsafe("drive/dir1/non_existent"), |
| 375 base::Bind(&test_util::CopyResultsFromGetEntryInfoPairCallback, | 389 base::Bind(&test_util::CopyResultsFromGetEntryInfoPairCallback, |
| 376 &pair_result)); | 390 &pair_result)); |
| 377 google_apis::test_util::RunBlockingPoolTask(); | 391 google_apis::test_util::RunBlockingPoolTask(); |
| 378 // The first entry should be found. | 392 // The first entry should be found. |
| 379 EXPECT_EQ(DRIVE_FILE_OK, pair_result->first.error); | 393 EXPECT_EQ(DRIVE_FILE_OK, pair_result->first.error); |
| 380 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file4"), | 394 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file4"), |
| 381 pair_result->first.path); | 395 pair_result->first.path); |
| 382 ASSERT_TRUE(pair_result->first.proto.get()); | 396 ASSERT_TRUE(pair_result->first.proto.get()); |
| 383 EXPECT_EQ("file4", pair_result->first.proto->base_name()); | 397 EXPECT_EQ("file4", pair_result->first.proto->base_name()); |
| 384 // The second entry should not be found. | 398 // The second entry should not be found. |
| 385 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, pair_result->second.error); | 399 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, pair_result->second.error); |
| 386 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/non_existent"), | 400 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/non_existent"), |
| 387 pair_result->second.path); | 401 pair_result->second.path); |
| 388 ASSERT_FALSE(pair_result->second.proto.get()); | 402 ASSERT_FALSE(pair_result->second.proto.get()); |
| 389 } | 403 } |
| 390 | 404 |
| 391 TEST_F(DriveResourceMetadataTest, DBTest) { | 405 TEST_F(DriveResourceMetadataTest, DBTest) { |
| 392 TestingProfile profile; | 406 TestingProfile profile; |
| 393 scoped_refptr<base::SequencedWorkerPool> pool = | 407 scoped_refptr<base::SequencedWorkerPool> pool = |
| 394 content::BrowserThread::GetBlockingPool(); | 408 content::BrowserThread::GetBlockingPool(); |
| 395 scoped_refptr<base::SequencedTaskRunner> blocking_task_runner = | 409 scoped_refptr<base::SequencedTaskRunner> blocking_task_runner = |
| 396 pool->GetSequencedTaskRunner(pool->GetSequenceToken()); | 410 pool->GetSequencedTaskRunner(pool->GetSequenceToken()); |
| 397 | 411 |
| 412 DriveResourceMetadata resource_metadata(kTestRootResourceId); |
| 413 Init(&resource_metadata); |
| 414 |
| 398 FilePath db_path(DriveCache::GetCacheRootPath(&profile). | 415 FilePath db_path(DriveCache::GetCacheRootPath(&profile). |
| 399 AppendASCII("meta").AppendASCII("resource_metadata.db")); | 416 AppendASCII("meta").AppendASCII("resource_metadata.db")); |
| 400 // InitFromDB should fail with DRIVE_FILE_ERROR_NOT_FOUND since the db | 417 // InitFromDB should fail with DRIVE_FILE_ERROR_NOT_FOUND since the db |
| 401 // doesn't exist. | 418 // doesn't exist. |
| 402 DriveFileError db_error; | 419 DriveFileError db_error; |
| 403 resource_metadata_.InitFromDB( | 420 resource_metadata.InitFromDB( |
| 404 db_path, | 421 db_path, |
| 405 blocking_task_runner, | 422 blocking_task_runner, |
| 406 base::Bind(&CopyResultsFromInitFromDBCallback, &db_error)); | 423 base::Bind(&CopyResultsFromInitFromDBCallback, &db_error)); |
| 407 google_apis::test_util::RunBlockingPoolTask(); | 424 google_apis::test_util::RunBlockingPoolTask(); |
| 408 ASSERT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, db_error); | 425 ASSERT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, db_error); |
| 409 | 426 |
| 410 // Create a file system and write it to disk. | 427 // Create a file system and write it to disk. |
| 411 // We cannot call SaveToDB without first having called InitFromDB because | 428 // We cannot call SaveToDB without first having called InitFromDB because |
| 412 // InitFrom initializes the db_path and blocking_task_runner needed by | 429 // InitFrom initializes the db_path and blocking_task_runner needed by |
| 413 // SaveToDB. | 430 // SaveToDB. |
| 414 resource_metadata_.SaveToDB(); | 431 resource_metadata.SaveToDB(); |
| 415 google_apis::test_util::RunBlockingPoolTask(); | 432 google_apis::test_util::RunBlockingPoolTask(); |
| 416 | 433 |
| 417 // InitFromDB should fail with DRIVE_FILE_ERROR_IN_USE. | 434 // InitFromDB should fail with DRIVE_FILE_ERROR_IN_USE. |
| 418 resource_metadata_.InitFromDB( | 435 resource_metadata.InitFromDB( |
| 419 db_path, | 436 db_path, |
| 420 blocking_task_runner, | 437 blocking_task_runner, |
| 421 base::Bind(&CopyResultsFromInitFromDBCallback, &db_error)); | 438 base::Bind(&CopyResultsFromInitFromDBCallback, &db_error)); |
| 422 google_apis::test_util::RunBlockingPoolTask(); | 439 google_apis::test_util::RunBlockingPoolTask(); |
| 423 ASSERT_EQ(DRIVE_FILE_ERROR_IN_USE, db_error); | 440 ASSERT_EQ(DRIVE_FILE_ERROR_IN_USE, db_error); |
| 424 | 441 |
| 425 // InitFromDB should succeed. | 442 // InitFromDB should succeed. |
| 426 DriveResourceMetadata test_resource_metadata(kTestRootResourceId); | 443 DriveResourceMetadata test_resource_metadata(kTestRootResourceId); |
| 427 test_resource_metadata.InitFromDB( | 444 test_resource_metadata.InitFromDB( |
| 428 db_path, | 445 db_path, |
| (...skipping 14 matching lines...) Expand all Loading... |
| 443 ASSERT_TRUE(entries.get()); | 460 ASSERT_TRUE(entries.get()); |
| 444 ASSERT_EQ(3U, entries->size()); | 461 ASSERT_EQ(3U, entries->size()); |
| 445 } | 462 } |
| 446 | 463 |
| 447 TEST_F(DriveResourceMetadataTest, RemoveEntryFromParent) { | 464 TEST_F(DriveResourceMetadataTest, RemoveEntryFromParent) { |
| 448 // Make sure file9 is found. | 465 // Make sure file9 is found. |
| 449 DriveFileError error = DRIVE_FILE_ERROR_FAILED; | 466 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
| 450 FilePath drive_file_path; | 467 FilePath drive_file_path; |
| 451 const std::string file9_resource_id = "resource_id:file9"; | 468 const std::string file9_resource_id = "resource_id:file9"; |
| 452 scoped_ptr<DriveEntryProto> entry_proto; | 469 scoped_ptr<DriveEntryProto> entry_proto; |
| 453 resource_metadata_.GetEntryInfoByResourceId( | 470 resource_metadata_->GetEntryInfoByResourceId( |
| 454 file9_resource_id, | 471 file9_resource_id, |
| 455 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, | 472 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, |
| 456 &error, &drive_file_path, &entry_proto)); | 473 &error, &drive_file_path, &entry_proto)); |
| 457 google_apis::test_util::RunBlockingPoolTask(); | 474 google_apis::test_util::RunBlockingPoolTask(); |
| 458 EXPECT_EQ(DRIVE_FILE_OK, error); | 475 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 459 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/dir3/file9"), drive_file_path); | 476 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/dir3/file9"), drive_file_path); |
| 460 ASSERT_TRUE(entry_proto.get()); | 477 ASSERT_TRUE(entry_proto.get()); |
| 461 EXPECT_EQ("file9", entry_proto->base_name()); | 478 EXPECT_EQ("file9", entry_proto->base_name()); |
| 462 | 479 |
| 463 // Remove file9 using RemoveEntryFromParent. | 480 // Remove file9 using RemoveEntryFromParent. |
| 464 resource_metadata_.RemoveEntryFromParent( | 481 resource_metadata_->RemoveEntryFromParent( |
| 465 file9_resource_id, | 482 file9_resource_id, |
| 466 base::Bind(&test_util::CopyResultsFromFileMoveCallback, | 483 base::Bind(&test_util::CopyResultsFromFileMoveCallback, |
| 467 &error, &drive_file_path)); | 484 &error, &drive_file_path)); |
| 468 google_apis::test_util::RunBlockingPoolTask(); | 485 google_apis::test_util::RunBlockingPoolTask(); |
| 469 EXPECT_EQ(DRIVE_FILE_OK, error); | 486 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 470 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/dir3"), drive_file_path); | 487 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/dir3"), drive_file_path); |
| 471 | 488 |
| 472 // file9 should no longer exist. | 489 // file9 should no longer exist. |
| 473 resource_metadata_.GetEntryInfoByResourceId( | 490 resource_metadata_->GetEntryInfoByResourceId( |
| 474 file9_resource_id, | 491 file9_resource_id, |
| 475 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, | 492 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, |
| 476 &error, &drive_file_path, &entry_proto)); | 493 &error, &drive_file_path, &entry_proto)); |
| 477 google_apis::test_util::RunBlockingPoolTask(); | 494 google_apis::test_util::RunBlockingPoolTask(); |
| 478 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, error); | 495 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, error); |
| 479 EXPECT_FALSE(entry_proto.get()); | 496 EXPECT_FALSE(entry_proto.get()); |
| 480 | 497 |
| 481 // Look for dir3. | 498 // Look for dir3. |
| 482 const std::string dir3_resource_id = "resource_id:dir3"; | 499 const std::string dir3_resource_id = "resource_id:dir3"; |
| 483 resource_metadata_.GetEntryInfoByResourceId( | 500 resource_metadata_->GetEntryInfoByResourceId( |
| 484 dir3_resource_id, | 501 dir3_resource_id, |
| 485 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, | 502 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, |
| 486 &error, &drive_file_path, &entry_proto)); | 503 &error, &drive_file_path, &entry_proto)); |
| 487 google_apis::test_util::RunBlockingPoolTask(); | 504 google_apis::test_util::RunBlockingPoolTask(); |
| 488 EXPECT_EQ(DRIVE_FILE_OK, error); | 505 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 489 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/dir3"), drive_file_path); | 506 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/dir3"), drive_file_path); |
| 490 ASSERT_TRUE(entry_proto.get()); | 507 ASSERT_TRUE(entry_proto.get()); |
| 491 EXPECT_EQ("dir3", entry_proto->base_name()); | 508 EXPECT_EQ("dir3", entry_proto->base_name()); |
| 492 | 509 |
| 493 // Remove dir3 using RemoveEntryFromParent. | 510 // Remove dir3 using RemoveEntryFromParent. |
| 494 resource_metadata_.RemoveEntryFromParent( | 511 resource_metadata_->RemoveEntryFromParent( |
| 495 dir3_resource_id, | 512 dir3_resource_id, |
| 496 base::Bind(&test_util::CopyResultsFromFileMoveCallback, | 513 base::Bind(&test_util::CopyResultsFromFileMoveCallback, |
| 497 &error, &drive_file_path)); | 514 &error, &drive_file_path)); |
| 498 google_apis::test_util::RunBlockingPoolTask(); | 515 google_apis::test_util::RunBlockingPoolTask(); |
| 499 EXPECT_EQ(DRIVE_FILE_OK, error); | 516 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 500 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1"), drive_file_path); | 517 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1"), drive_file_path); |
| 501 | 518 |
| 502 // dir3 should no longer exist. | 519 // dir3 should no longer exist. |
| 503 resource_metadata_.GetEntryInfoByResourceId( | 520 resource_metadata_->GetEntryInfoByResourceId( |
| 504 dir3_resource_id, | 521 dir3_resource_id, |
| 505 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, | 522 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, |
| 506 &error, &drive_file_path, &entry_proto)); | 523 &error, &drive_file_path, &entry_proto)); |
| 507 google_apis::test_util::RunBlockingPoolTask(); | 524 google_apis::test_util::RunBlockingPoolTask(); |
| 508 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, error); | 525 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, error); |
| 509 EXPECT_FALSE(entry_proto.get()); | 526 EXPECT_FALSE(entry_proto.get()); |
| 510 | 527 |
| 511 // Remove unknown resource_id using RemoveEntryFromParent. | 528 // Remove unknown resource_id using RemoveEntryFromParent. |
| 512 resource_metadata_.RemoveEntryFromParent( | 529 resource_metadata_->RemoveEntryFromParent( |
| 513 "foo", | 530 "foo", |
| 514 base::Bind(&test_util::CopyResultsFromFileMoveCallback, | 531 base::Bind(&test_util::CopyResultsFromFileMoveCallback, |
| 515 &error, &drive_file_path)); | 532 &error, &drive_file_path)); |
| 516 google_apis::test_util::RunBlockingPoolTask(); | 533 google_apis::test_util::RunBlockingPoolTask(); |
| 517 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, error); | 534 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, error); |
| 518 | 535 |
| 519 // Try removing root. This should fail. | 536 // Try removing root. This should fail. |
| 520 resource_metadata_.RemoveEntryFromParent( | 537 resource_metadata_->RemoveEntryFromParent( |
| 521 kTestRootResourceId, | 538 kTestRootResourceId, |
| 522 base::Bind(&test_util::CopyResultsFromFileMoveCallback, | 539 base::Bind(&test_util::CopyResultsFromFileMoveCallback, |
| 523 &error, &drive_file_path)); | 540 &error, &drive_file_path)); |
| 524 google_apis::test_util::RunBlockingPoolTask(); | 541 google_apis::test_util::RunBlockingPoolTask(); |
| 525 EXPECT_EQ(DRIVE_FILE_ERROR_ACCESS_DENIED, error); | 542 EXPECT_EQ(DRIVE_FILE_ERROR_ACCESS_DENIED, error); |
| 526 } | 543 } |
| 527 | 544 |
| 528 TEST_F(DriveResourceMetadataTest, MoveEntryToDirectory) { | 545 TEST_F(DriveResourceMetadataTest, MoveEntryToDirectory) { |
| 529 DriveFileError error = DRIVE_FILE_ERROR_FAILED; | 546 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
| 530 FilePath drive_file_path; | 547 FilePath drive_file_path; |
| 531 scoped_ptr<DriveEntryProto> entry_proto; | 548 scoped_ptr<DriveEntryProto> entry_proto; |
| 532 | 549 |
| 533 // Move file8 to drive/dir1. | 550 // Move file8 to drive/dir1. |
| 534 resource_metadata_.MoveEntryToDirectory( | 551 resource_metadata_->MoveEntryToDirectory( |
| 535 FilePath::FromUTF8Unsafe("drive/dir2/file8"), | 552 FilePath::FromUTF8Unsafe("drive/dir2/file8"), |
| 536 FilePath::FromUTF8Unsafe("drive/dir1"), | 553 FilePath::FromUTF8Unsafe("drive/dir1"), |
| 537 base::Bind(&test_util::CopyResultsFromFileMoveCallback, | 554 base::Bind(&test_util::CopyResultsFromFileMoveCallback, |
| 538 &error, &drive_file_path)); | 555 &error, &drive_file_path)); |
| 539 google_apis::test_util::RunBlockingPoolTask(); | 556 google_apis::test_util::RunBlockingPoolTask(); |
| 540 EXPECT_EQ(DRIVE_FILE_OK, error); | 557 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 541 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file8"), drive_file_path); | 558 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file8"), drive_file_path); |
| 542 | 559 |
| 543 // Look up the entry by its resource id and make sure it really moved. | 560 // Look up the entry by its resource id and make sure it really moved. |
| 544 resource_metadata_.GetEntryInfoByResourceId( | 561 resource_metadata_->GetEntryInfoByResourceId( |
| 545 "resource_id:file8", | 562 "resource_id:file8", |
| 546 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, | 563 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, |
| 547 &error, &drive_file_path, &entry_proto)); | 564 &error, &drive_file_path, &entry_proto)); |
| 548 google_apis::test_util::RunBlockingPoolTask(); | 565 google_apis::test_util::RunBlockingPoolTask(); |
| 549 EXPECT_EQ(DRIVE_FILE_OK, error); | 566 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 550 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file8"), drive_file_path); | 567 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file8"), drive_file_path); |
| 551 | 568 |
| 552 // Move non-existent file to drive/dir1. This should fail. | 569 // Move non-existent file to drive/dir1. This should fail. |
| 553 resource_metadata_.MoveEntryToDirectory( | 570 resource_metadata_->MoveEntryToDirectory( |
| 554 FilePath::FromUTF8Unsafe("drive/dir2/file8"), | 571 FilePath::FromUTF8Unsafe("drive/dir2/file8"), |
| 555 FilePath::FromUTF8Unsafe("drive/dir1"), | 572 FilePath::FromUTF8Unsafe("drive/dir1"), |
| 556 base::Bind(&test_util::CopyResultsFromFileMoveCallback, | 573 base::Bind(&test_util::CopyResultsFromFileMoveCallback, |
| 557 &error, &drive_file_path)); | 574 &error, &drive_file_path)); |
| 558 google_apis::test_util::RunBlockingPoolTask(); | 575 google_apis::test_util::RunBlockingPoolTask(); |
| 559 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, error); | 576 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, error); |
| 560 EXPECT_EQ(FilePath(), drive_file_path); | 577 EXPECT_EQ(FilePath(), drive_file_path); |
| 561 | 578 |
| 562 // Move existing file to non-existent directory. This should fail. | 579 // Move existing file to non-existent directory. This should fail. |
| 563 resource_metadata_.MoveEntryToDirectory( | 580 resource_metadata_->MoveEntryToDirectory( |
| 564 FilePath::FromUTF8Unsafe("drive/dir1/file8"), | 581 FilePath::FromUTF8Unsafe("drive/dir1/file8"), |
| 565 FilePath::FromUTF8Unsafe("drive/dir4"), | 582 FilePath::FromUTF8Unsafe("drive/dir4"), |
| 566 base::Bind(&test_util::CopyResultsFromFileMoveCallback, | 583 base::Bind(&test_util::CopyResultsFromFileMoveCallback, |
| 567 &error, &drive_file_path)); | 584 &error, &drive_file_path)); |
| 568 google_apis::test_util::RunBlockingPoolTask(); | 585 google_apis::test_util::RunBlockingPoolTask(); |
| 569 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, error); | 586 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, error); |
| 570 EXPECT_EQ(FilePath(), drive_file_path); | 587 EXPECT_EQ(FilePath(), drive_file_path); |
| 571 | 588 |
| 572 // Move existing file to existing file (non-directory). This should fail. | 589 // Move existing file to existing file (non-directory). This should fail. |
| 573 resource_metadata_.MoveEntryToDirectory( | 590 resource_metadata_->MoveEntryToDirectory( |
| 574 FilePath::FromUTF8Unsafe("drive/dir1/file8"), | 591 FilePath::FromUTF8Unsafe("drive/dir1/file8"), |
| 575 FilePath::FromUTF8Unsafe("drive/dir1/file4"), | 592 FilePath::FromUTF8Unsafe("drive/dir1/file4"), |
| 576 base::Bind(&test_util::CopyResultsFromFileMoveCallback, | 593 base::Bind(&test_util::CopyResultsFromFileMoveCallback, |
| 577 &error, &drive_file_path)); | 594 &error, &drive_file_path)); |
| 578 google_apis::test_util::RunBlockingPoolTask(); | 595 google_apis::test_util::RunBlockingPoolTask(); |
| 579 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_A_DIRECTORY, error); | 596 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_A_DIRECTORY, error); |
| 580 EXPECT_EQ(FilePath(), drive_file_path); | 597 EXPECT_EQ(FilePath(), drive_file_path); |
| 581 | 598 |
| 582 // Move the file to root. | 599 // Move the file to root. |
| 583 resource_metadata_.MoveEntryToDirectory( | 600 resource_metadata_->MoveEntryToDirectory( |
| 584 FilePath::FromUTF8Unsafe("drive/dir1/file8"), | 601 FilePath::FromUTF8Unsafe("drive/dir1/file8"), |
| 585 FilePath::FromUTF8Unsafe("drive"), | 602 FilePath::FromUTF8Unsafe("drive"), |
| 586 base::Bind(&test_util::CopyResultsFromFileMoveCallback, | 603 base::Bind(&test_util::CopyResultsFromFileMoveCallback, |
| 587 &error, &drive_file_path)); | 604 &error, &drive_file_path)); |
| 588 google_apis::test_util::RunBlockingPoolTask(); | 605 google_apis::test_util::RunBlockingPoolTask(); |
| 589 EXPECT_EQ(DRIVE_FILE_OK, error); | 606 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 590 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/file8"), drive_file_path); | 607 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/file8"), drive_file_path); |
| 591 | 608 |
| 592 // Move the file from root. | 609 // Move the file from root. |
| 593 resource_metadata_.MoveEntryToDirectory( | 610 resource_metadata_->MoveEntryToDirectory( |
| 594 FilePath::FromUTF8Unsafe("drive/file8"), | 611 FilePath::FromUTF8Unsafe("drive/file8"), |
| 595 FilePath::FromUTF8Unsafe("drive/dir2"), | 612 FilePath::FromUTF8Unsafe("drive/dir2"), |
| 596 base::Bind(&test_util::CopyResultsFromFileMoveCallback, | 613 base::Bind(&test_util::CopyResultsFromFileMoveCallback, |
| 597 &error, &drive_file_path)); | 614 &error, &drive_file_path)); |
| 598 google_apis::test_util::RunBlockingPoolTask(); | 615 google_apis::test_util::RunBlockingPoolTask(); |
| 599 EXPECT_EQ(DRIVE_FILE_OK, error); | 616 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 600 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir2/file8"), drive_file_path); | 617 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir2/file8"), drive_file_path); |
| 601 | 618 |
| 602 // Make sure file is still ok. | 619 // Make sure file is still ok. |
| 603 resource_metadata_.GetEntryInfoByResourceId( | 620 resource_metadata_->GetEntryInfoByResourceId( |
| 604 "resource_id:file8", | 621 "resource_id:file8", |
| 605 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, | 622 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, |
| 606 &error, &drive_file_path, &entry_proto)); | 623 &error, &drive_file_path, &entry_proto)); |
| 607 google_apis::test_util::RunBlockingPoolTask(); | 624 google_apis::test_util::RunBlockingPoolTask(); |
| 608 EXPECT_EQ(DRIVE_FILE_OK, error); | 625 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 609 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir2/file8"), drive_file_path); | 626 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir2/file8"), drive_file_path); |
| 610 } | 627 } |
| 611 | 628 |
| 612 TEST_F(DriveResourceMetadataTest, RenameEntry) { | 629 TEST_F(DriveResourceMetadataTest, RenameEntry) { |
| 613 DriveFileError error = DRIVE_FILE_ERROR_FAILED; | 630 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
| 614 FilePath drive_file_path; | 631 FilePath drive_file_path; |
| 615 scoped_ptr<DriveEntryProto> entry_proto; | 632 scoped_ptr<DriveEntryProto> entry_proto; |
| 616 | 633 |
| 617 // Rename file8 to file11. | 634 // Rename file8 to file11. |
| 618 resource_metadata_.RenameEntry( | 635 resource_metadata_->RenameEntry( |
| 619 FilePath::FromUTF8Unsafe("drive/dir2/file8"), | 636 FilePath::FromUTF8Unsafe("drive/dir2/file8"), |
| 620 "file11", | 637 "file11", |
| 621 base::Bind(&test_util::CopyResultsFromFileMoveCallback, | 638 base::Bind(&test_util::CopyResultsFromFileMoveCallback, |
| 622 &error, &drive_file_path)); | 639 &error, &drive_file_path)); |
| 623 google_apis::test_util::RunBlockingPoolTask(); | 640 google_apis::test_util::RunBlockingPoolTask(); |
| 624 EXPECT_EQ(DRIVE_FILE_OK, error); | 641 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 625 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir2/file11"), drive_file_path); | 642 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir2/file11"), drive_file_path); |
| 626 | 643 |
| 627 // Lookup the file by resource id to make sure the file actually got renamed. | 644 // Lookup the file by resource id to make sure the file actually got renamed. |
| 628 resource_metadata_.GetEntryInfoByResourceId( | 645 resource_metadata_->GetEntryInfoByResourceId( |
| 629 "resource_id:file8", | 646 "resource_id:file8", |
| 630 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, | 647 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, |
| 631 &error, &drive_file_path, &entry_proto)); | 648 &error, &drive_file_path, &entry_proto)); |
| 632 google_apis::test_util::RunBlockingPoolTask(); | 649 google_apis::test_util::RunBlockingPoolTask(); |
| 633 EXPECT_EQ(DRIVE_FILE_OK, error); | 650 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 634 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir2/file11"), drive_file_path); | 651 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir2/file11"), drive_file_path); |
| 635 | 652 |
| 636 // Rename to file7 to force a duplicate name. | 653 // Rename to file7 to force a duplicate name. |
| 637 resource_metadata_.RenameEntry( | 654 resource_metadata_->RenameEntry( |
| 638 FilePath::FromUTF8Unsafe("drive/dir2/file11"), | 655 FilePath::FromUTF8Unsafe("drive/dir2/file11"), |
| 639 "file7", | 656 "file7", |
| 640 base::Bind(&test_util::CopyResultsFromFileMoveCallback, | 657 base::Bind(&test_util::CopyResultsFromFileMoveCallback, |
| 641 &error, &drive_file_path)); | 658 &error, &drive_file_path)); |
| 642 google_apis::test_util::RunBlockingPoolTask(); | 659 google_apis::test_util::RunBlockingPoolTask(); |
| 643 EXPECT_EQ(DRIVE_FILE_OK, error); | 660 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 644 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir2/file7 (2)"), drive_file_path); | 661 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir2/file7 (2)"), drive_file_path); |
| 645 | 662 |
| 646 // Rename to same name. This should fail. | 663 // Rename to same name. This should fail. |
| 647 resource_metadata_.RenameEntry( | 664 resource_metadata_->RenameEntry( |
| 648 FilePath::FromUTF8Unsafe("drive/dir2/file7 (2)"), | 665 FilePath::FromUTF8Unsafe("drive/dir2/file7 (2)"), |
| 649 "file7 (2)", | 666 "file7 (2)", |
| 650 base::Bind(&test_util::CopyResultsFromFileMoveCallback, | 667 base::Bind(&test_util::CopyResultsFromFileMoveCallback, |
| 651 &error, &drive_file_path)); | 668 &error, &drive_file_path)); |
| 652 google_apis::test_util::RunBlockingPoolTask(); | 669 google_apis::test_util::RunBlockingPoolTask(); |
| 653 EXPECT_EQ(DRIVE_FILE_ERROR_EXISTS, error); | 670 EXPECT_EQ(DRIVE_FILE_ERROR_EXISTS, error); |
| 654 EXPECT_EQ(FilePath(), drive_file_path); | 671 EXPECT_EQ(FilePath(), drive_file_path); |
| 655 | 672 |
| 656 // Rename non-existent. | 673 // Rename non-existent. |
| 657 resource_metadata_.RenameEntry( | 674 resource_metadata_->RenameEntry( |
| 658 FilePath::FromUTF8Unsafe("drive/dir2/file11"), | 675 FilePath::FromUTF8Unsafe("drive/dir2/file11"), |
| 659 "file11", | 676 "file11", |
| 660 base::Bind(&test_util::CopyResultsFromFileMoveCallback, | 677 base::Bind(&test_util::CopyResultsFromFileMoveCallback, |
| 661 &error, &drive_file_path)); | 678 &error, &drive_file_path)); |
| 662 google_apis::test_util::RunBlockingPoolTask(); | 679 google_apis::test_util::RunBlockingPoolTask(); |
| 663 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, error); | 680 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, error); |
| 664 EXPECT_EQ(FilePath(), drive_file_path); | 681 EXPECT_EQ(FilePath(), drive_file_path); |
| 665 } | 682 } |
| 666 | 683 |
| 667 TEST_F(DriveResourceMetadataTest, RefreshEntry) { | 684 TEST_F(DriveResourceMetadataTest, RefreshEntry) { |
| 668 DriveFileError error = DRIVE_FILE_ERROR_FAILED; | 685 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
| 669 FilePath drive_file_path; | 686 FilePath drive_file_path; |
| 670 scoped_ptr<DriveEntryProto> entry_proto; | 687 scoped_ptr<DriveEntryProto> entry_proto; |
| 671 | 688 |
| 672 // Get file9. | 689 // Get file9. |
| 673 resource_metadata_.GetEntryInfoByPath( | 690 resource_metadata_->GetEntryInfoByPath( |
| 674 FilePath::FromUTF8Unsafe("drive/dir1/dir3/file9"), | 691 FilePath::FromUTF8Unsafe("drive/dir1/dir3/file9"), |
| 675 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback, | 692 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback, |
| 676 &error, &entry_proto)); | 693 &error, &entry_proto)); |
| 677 google_apis::test_util::RunBlockingPoolTask(); | 694 google_apis::test_util::RunBlockingPoolTask(); |
| 678 EXPECT_EQ(DRIVE_FILE_OK, error); | 695 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 679 ASSERT_TRUE(entry_proto.get()); | 696 ASSERT_TRUE(entry_proto.get()); |
| 680 EXPECT_EQ("file9", entry_proto->base_name()); | 697 EXPECT_EQ("file9", entry_proto->base_name()); |
| 681 ASSERT_TRUE(!entry_proto->file_info().is_directory()); | 698 ASSERT_TRUE(!entry_proto->file_info().is_directory()); |
| 682 EXPECT_EQ("md5:file9", entry_proto->file_specific_info().file_md5()); | 699 EXPECT_EQ("md5:file9", entry_proto->file_specific_info().file_md5()); |
| 683 | 700 |
| 684 // Rename it and change the file size. | 701 // Rename it and change the file size. |
| 685 DriveEntryProto file_entry_proto(*entry_proto); | 702 DriveEntryProto file_entry_proto(*entry_proto); |
| 686 const std::string updated_md5("md5:updated"); | 703 const std::string updated_md5("md5:updated"); |
| 687 file_entry_proto.mutable_file_specific_info()->set_file_md5(updated_md5); | 704 file_entry_proto.mutable_file_specific_info()->set_file_md5(updated_md5); |
| 688 file_entry_proto.set_title("file100"); | 705 file_entry_proto.set_title("file100"); |
| 689 entry_proto.reset(); | 706 entry_proto.reset(); |
| 690 resource_metadata_.RefreshEntry( | 707 resource_metadata_->RefreshEntry( |
| 691 file_entry_proto, | 708 file_entry_proto, |
| 692 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, | 709 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, |
| 693 &error, &drive_file_path, &entry_proto)); | 710 &error, &drive_file_path, &entry_proto)); |
| 694 google_apis::test_util::RunBlockingPoolTask(); | 711 google_apis::test_util::RunBlockingPoolTask(); |
| 695 EXPECT_EQ(DRIVE_FILE_OK, error); | 712 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 696 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/dir3/file100"), | 713 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/dir3/file100"), |
| 697 drive_file_path); | 714 drive_file_path); |
| 698 ASSERT_TRUE(entry_proto.get()); | 715 ASSERT_TRUE(entry_proto.get()); |
| 699 EXPECT_EQ("file100", entry_proto->base_name()); | 716 EXPECT_EQ("file100", entry_proto->base_name()); |
| 700 ASSERT_TRUE(!entry_proto->file_info().is_directory()); | 717 ASSERT_TRUE(!entry_proto->file_info().is_directory()); |
| 701 EXPECT_EQ(updated_md5, entry_proto->file_specific_info().file_md5()); | 718 EXPECT_EQ(updated_md5, entry_proto->file_specific_info().file_md5()); |
| 702 | 719 |
| 703 // Make sure we get the same thing from GetEntryInfoByPath. | 720 // Make sure we get the same thing from GetEntryInfoByPath. |
| 704 entry_proto.reset(); | 721 entry_proto.reset(); |
| 705 resource_metadata_.GetEntryInfoByPath( | 722 resource_metadata_->GetEntryInfoByPath( |
| 706 FilePath::FromUTF8Unsafe("drive/dir1/dir3/file100"), | 723 FilePath::FromUTF8Unsafe("drive/dir1/dir3/file100"), |
| 707 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback, | 724 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback, |
| 708 &error, &entry_proto)); | 725 &error, &entry_proto)); |
| 709 google_apis::test_util::RunBlockingPoolTask(); | 726 google_apis::test_util::RunBlockingPoolTask(); |
| 710 EXPECT_EQ(DRIVE_FILE_OK, error); | 727 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 711 ASSERT_TRUE(entry_proto.get()); | 728 ASSERT_TRUE(entry_proto.get()); |
| 712 EXPECT_EQ("file100", entry_proto->base_name()); | 729 EXPECT_EQ("file100", entry_proto->base_name()); |
| 713 ASSERT_TRUE(!entry_proto->file_info().is_directory()); | 730 ASSERT_TRUE(!entry_proto->file_info().is_directory()); |
| 714 EXPECT_EQ(updated_md5, entry_proto->file_specific_info().file_md5()); | 731 EXPECT_EQ(updated_md5, entry_proto->file_specific_info().file_md5()); |
| 715 | 732 |
| 716 // Get dir2. | 733 // Get dir2. |
| 717 entry_proto.reset(); | 734 entry_proto.reset(); |
| 718 resource_metadata_.GetEntryInfoByPath( | 735 resource_metadata_->GetEntryInfoByPath( |
| 719 FilePath::FromUTF8Unsafe("drive/dir2"), | 736 FilePath::FromUTF8Unsafe("drive/dir2"), |
| 720 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback, | 737 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback, |
| 721 &error, &entry_proto)); | 738 &error, &entry_proto)); |
| 722 google_apis::test_util::RunBlockingPoolTask(); | 739 google_apis::test_util::RunBlockingPoolTask(); |
| 723 EXPECT_EQ(DRIVE_FILE_OK, error); | 740 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 724 ASSERT_TRUE(entry_proto.get()); | 741 ASSERT_TRUE(entry_proto.get()); |
| 725 EXPECT_EQ("dir2", entry_proto->base_name()); | 742 EXPECT_EQ("dir2", entry_proto->base_name()); |
| 726 ASSERT_TRUE(entry_proto->file_info().is_directory()); | 743 ASSERT_TRUE(entry_proto->file_info().is_directory()); |
| 727 | 744 |
| 728 // Change the name to dir100 and change the parent to drive/dir1/dir3. | 745 // Change the name to dir100 and change the parent to drive/dir1/dir3. |
| 729 DriveEntryProto dir_entry_proto(*entry_proto); | 746 DriveEntryProto dir_entry_proto(*entry_proto); |
| 730 dir_entry_proto.set_title("dir100"); | 747 dir_entry_proto.set_title("dir100"); |
| 731 dir_entry_proto.set_parent_resource_id("resource_id:dir3"); | 748 dir_entry_proto.set_parent_resource_id("resource_id:dir3"); |
| 732 entry_proto.reset(); | 749 entry_proto.reset(); |
| 733 resource_metadata_.RefreshEntry( | 750 resource_metadata_->RefreshEntry( |
| 734 dir_entry_proto, | 751 dir_entry_proto, |
| 735 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, | 752 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, |
| 736 &error, &drive_file_path, &entry_proto)); | 753 &error, &drive_file_path, &entry_proto)); |
| 737 google_apis::test_util::RunBlockingPoolTask(); | 754 google_apis::test_util::RunBlockingPoolTask(); |
| 738 EXPECT_EQ(DRIVE_FILE_OK, error); | 755 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 739 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/dir3/dir100"), | 756 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/dir3/dir100"), |
| 740 drive_file_path); | 757 drive_file_path); |
| 741 ASSERT_TRUE(entry_proto.get()); | 758 ASSERT_TRUE(entry_proto.get()); |
| 742 EXPECT_EQ("dir100", entry_proto->base_name()); | 759 EXPECT_EQ("dir100", entry_proto->base_name()); |
| 743 EXPECT_TRUE(entry_proto->file_info().is_directory()); | 760 EXPECT_TRUE(entry_proto->file_info().is_directory()); |
| 744 EXPECT_EQ("resource_id:dir2", entry_proto->resource_id()); | 761 EXPECT_EQ("resource_id:dir2", entry_proto->resource_id()); |
| 745 | 762 |
| 746 // Make sure the children have moved over. Test file6. | 763 // Make sure the children have moved over. Test file6. |
| 747 entry_proto.reset(); | 764 entry_proto.reset(); |
| 748 resource_metadata_.GetEntryInfoByPath( | 765 resource_metadata_->GetEntryInfoByPath( |
| 749 FilePath::FromUTF8Unsafe("drive/dir1/dir3/dir100/file6"), | 766 FilePath::FromUTF8Unsafe("drive/dir1/dir3/dir100/file6"), |
| 750 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback, | 767 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback, |
| 751 &error, &entry_proto)); | 768 &error, &entry_proto)); |
| 752 google_apis::test_util::RunBlockingPoolTask(); | 769 google_apis::test_util::RunBlockingPoolTask(); |
| 753 EXPECT_EQ(DRIVE_FILE_OK, error); | 770 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 754 ASSERT_TRUE(entry_proto.get()); | 771 ASSERT_TRUE(entry_proto.get()); |
| 755 EXPECT_EQ("file6", entry_proto->base_name()); | 772 EXPECT_EQ("file6", entry_proto->base_name()); |
| 756 | 773 |
| 757 // Make sure dir2 no longer exists. | 774 // Make sure dir2 no longer exists. |
| 758 resource_metadata_.GetEntryInfoByPath( | 775 resource_metadata_->GetEntryInfoByPath( |
| 759 FilePath::FromUTF8Unsafe("drive/dir2"), | 776 FilePath::FromUTF8Unsafe("drive/dir2"), |
| 760 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback, | 777 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback, |
| 761 &error, &entry_proto)); | 778 &error, &entry_proto)); |
| 762 google_apis::test_util::RunBlockingPoolTask(); | 779 google_apis::test_util::RunBlockingPoolTask(); |
| 763 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, error); | 780 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, error); |
| 764 EXPECT_FALSE(entry_proto.get()); | 781 EXPECT_FALSE(entry_proto.get()); |
| 765 } | 782 } |
| 766 | 783 |
| 767 // Test the special logic for RefreshEntry of root. | 784 // Test the special logic for RefreshEntry of root. |
| 768 TEST_F(DriveResourceMetadataTest, RefreshEntry_Root) { | 785 TEST_F(DriveResourceMetadataTest, RefreshEntry_Root) { |
| 769 DriveFileError error = DRIVE_FILE_ERROR_FAILED; | 786 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
| 770 FilePath drive_file_path; | 787 FilePath drive_file_path; |
| 771 scoped_ptr<DriveEntryProto> entry_proto; | 788 scoped_ptr<DriveEntryProto> entry_proto; |
| 772 | 789 |
| 773 // Get root. | 790 // Get root. |
| 774 resource_metadata_.GetEntryInfoByPath( | 791 resource_metadata_->GetEntryInfoByPath( |
| 775 FilePath::FromUTF8Unsafe("drive"), | 792 FilePath::FromUTF8Unsafe("drive"), |
| 776 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback, | 793 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback, |
| 777 &error, &entry_proto)); | 794 &error, &entry_proto)); |
| 778 google_apis::test_util::RunBlockingPoolTask(); | 795 google_apis::test_util::RunBlockingPoolTask(); |
| 779 EXPECT_EQ(DRIVE_FILE_OK, error); | 796 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 780 ASSERT_TRUE(entry_proto.get()); | 797 ASSERT_TRUE(entry_proto.get()); |
| 781 EXPECT_EQ("drive", entry_proto->base_name()); | 798 EXPECT_EQ("drive", entry_proto->base_name()); |
| 782 ASSERT_TRUE(entry_proto->file_info().is_directory()); | 799 ASSERT_TRUE(entry_proto->file_info().is_directory()); |
| 783 EXPECT_EQ(kTestRootResourceId, entry_proto->resource_id()); | 800 EXPECT_EQ(kTestRootResourceId, entry_proto->resource_id()); |
| 784 EXPECT_TRUE(entry_proto->upload_url().empty()); | 801 EXPECT_TRUE(entry_proto->upload_url().empty()); |
| 785 | 802 |
| 786 // Set upload url and call RefreshEntry on root. | 803 // Set upload url and call RefreshEntry on root. |
| 787 DriveEntryProto dir_entry_proto(*entry_proto); | 804 DriveEntryProto dir_entry_proto(*entry_proto); |
| 788 dir_entry_proto.set_upload_url("http://root.upload.url/"); | 805 dir_entry_proto.set_upload_url("http://root.upload.url/"); |
| 789 entry_proto.reset(); | 806 entry_proto.reset(); |
| 790 resource_metadata_.RefreshEntry( | 807 resource_metadata_->RefreshEntry( |
| 791 dir_entry_proto, | 808 dir_entry_proto, |
| 792 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, | 809 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, |
| 793 &error, &drive_file_path, &entry_proto)); | 810 &error, &drive_file_path, &entry_proto)); |
| 794 google_apis::test_util::RunBlockingPoolTask(); | 811 google_apis::test_util::RunBlockingPoolTask(); |
| 795 EXPECT_EQ(DRIVE_FILE_OK, error); | 812 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 796 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive"), drive_file_path); | 813 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive"), drive_file_path); |
| 797 ASSERT_TRUE(entry_proto.get()); | 814 ASSERT_TRUE(entry_proto.get()); |
| 798 EXPECT_EQ("drive", entry_proto->base_name()); | 815 EXPECT_EQ("drive", entry_proto->base_name()); |
| 799 EXPECT_TRUE(entry_proto->file_info().is_directory()); | 816 EXPECT_TRUE(entry_proto->file_info().is_directory()); |
| 800 EXPECT_EQ(kTestRootResourceId, entry_proto->resource_id()); | 817 EXPECT_EQ(kTestRootResourceId, entry_proto->resource_id()); |
| 801 EXPECT_EQ("http://root.upload.url/", entry_proto->upload_url()); | 818 EXPECT_EQ("http://root.upload.url/", entry_proto->upload_url()); |
| 802 | 819 |
| 803 // Make sure the children have moved over. Test file9. | 820 // Make sure the children have moved over. Test file9. |
| 804 entry_proto.reset(); | 821 entry_proto.reset(); |
| 805 resource_metadata_.GetEntryInfoByPath( | 822 resource_metadata_->GetEntryInfoByPath( |
| 806 FilePath::FromUTF8Unsafe("drive/dir1/dir3/file9"), | 823 FilePath::FromUTF8Unsafe("drive/dir1/dir3/file9"), |
| 807 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback, | 824 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback, |
| 808 &error, &entry_proto)); | 825 &error, &entry_proto)); |
| 809 google_apis::test_util::RunBlockingPoolTask(); | 826 google_apis::test_util::RunBlockingPoolTask(); |
| 810 EXPECT_EQ(DRIVE_FILE_OK, error); | 827 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 811 ASSERT_TRUE(entry_proto.get()); | 828 ASSERT_TRUE(entry_proto.get()); |
| 812 EXPECT_EQ("file9", entry_proto->base_name()); | 829 EXPECT_EQ("file9", entry_proto->base_name()); |
| 813 } | 830 } |
| 814 | 831 |
| 815 TEST_F(DriveResourceMetadataTest, AddEntryToParent) { | 832 TEST_F(DriveResourceMetadataTest, AddEntryToParent) { |
| 816 int sequence_id = 100; | 833 int sequence_id = 100; |
| 817 DriveEntryProto file_entry_proto = CreateDriveEntryProto( | 834 DriveEntryProto file_entry_proto = CreateDriveEntryProto( |
| 818 sequence_id++, false, "resource_id:dir3"); | 835 sequence_id++, false, "resource_id:dir3"); |
| 819 | 836 |
| 820 DriveFileError error = DRIVE_FILE_ERROR_FAILED; | 837 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
| 821 FilePath drive_file_path; | 838 FilePath drive_file_path; |
| 822 | 839 |
| 823 // Add to dir3. | 840 // Add to dir3. |
| 824 resource_metadata_.AddEntryToParent( | 841 resource_metadata_->AddEntryToParent( |
| 825 file_entry_proto, | 842 file_entry_proto, |
| 826 base::Bind(&test_util::CopyResultsFromFileMoveCallback, | 843 base::Bind(&test_util::CopyResultsFromFileMoveCallback, |
| 827 &error, &drive_file_path)); | 844 &error, &drive_file_path)); |
| 828 google_apis::test_util::RunBlockingPoolTask(); | 845 google_apis::test_util::RunBlockingPoolTask(); |
| 829 EXPECT_EQ(DRIVE_FILE_OK, error); | 846 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 830 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/dir3/file100"), | 847 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/dir3/file100"), |
| 831 drive_file_path); | 848 drive_file_path); |
| 832 | 849 |
| 833 // Adds to root when parent resource id is not specified. | 850 // Adds to root when parent resource id is not specified. |
| 834 DriveEntryProto file_entry_proto2 = CreateDriveEntryProto( | 851 DriveEntryProto file_entry_proto2 = CreateDriveEntryProto( |
| 835 sequence_id++, false, ""); | 852 sequence_id++, false, ""); |
| 836 | 853 |
| 837 resource_metadata_.AddEntryToParent( | 854 resource_metadata_->AddEntryToParent( |
| 838 file_entry_proto2, | 855 file_entry_proto2, |
| 839 base::Bind(&test_util::CopyResultsFromFileMoveCallback, | 856 base::Bind(&test_util::CopyResultsFromFileMoveCallback, |
| 840 &error, &drive_file_path)); | 857 &error, &drive_file_path)); |
| 841 google_apis::test_util::RunBlockingPoolTask(); | 858 google_apis::test_util::RunBlockingPoolTask(); |
| 842 EXPECT_EQ(DRIVE_FILE_OK, error); | 859 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 843 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/file101"), drive_file_path); | 860 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/file101"), drive_file_path); |
| 844 | 861 |
| 845 // Add a directory. | 862 // Add a directory. |
| 846 DriveEntryProto dir_entry_proto = CreateDriveEntryProto( | 863 DriveEntryProto dir_entry_proto = CreateDriveEntryProto( |
| 847 sequence_id++, true, "resource_id:dir1"); | 864 sequence_id++, true, "resource_id:dir1"); |
| 848 | 865 |
| 849 resource_metadata_.AddEntryToParent( | 866 resource_metadata_->AddEntryToParent( |
| 850 dir_entry_proto, | 867 dir_entry_proto, |
| 851 base::Bind(&test_util::CopyResultsFromFileMoveCallback, | 868 base::Bind(&test_util::CopyResultsFromFileMoveCallback, |
| 852 &error, &drive_file_path)); | 869 &error, &drive_file_path)); |
| 853 google_apis::test_util::RunBlockingPoolTask(); | 870 google_apis::test_util::RunBlockingPoolTask(); |
| 854 EXPECT_EQ(DRIVE_FILE_OK, error); | 871 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 855 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/dir102"), drive_file_path); | 872 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/dir102"), drive_file_path); |
| 856 | 873 |
| 857 // Add to an invalid parent. | 874 // Add to an invalid parent. |
| 858 DriveEntryProto file_entry_proto3 = CreateDriveEntryProto( | 875 DriveEntryProto file_entry_proto3 = CreateDriveEntryProto( |
| 859 sequence_id++, false, "resource_id:invalid"); | 876 sequence_id++, false, "resource_id:invalid"); |
| 860 | 877 |
| 861 resource_metadata_.AddEntryToParent( | 878 resource_metadata_->AddEntryToParent( |
| 862 file_entry_proto3, | 879 file_entry_proto3, |
| 863 base::Bind(&test_util::CopyResultsFromFileMoveCallback, | 880 base::Bind(&test_util::CopyResultsFromFileMoveCallback, |
| 864 &error, &drive_file_path)); | 881 &error, &drive_file_path)); |
| 865 google_apis::test_util::RunBlockingPoolTask(); | 882 google_apis::test_util::RunBlockingPoolTask(); |
| 866 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, error); | 883 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, error); |
| 867 } | 884 } |
| 868 | 885 |
| 869 TEST_F(DriveResourceMetadataTest, GetChildDirectories) { | 886 TEST_F(DriveResourceMetadataTest, GetChildDirectories) { |
| 870 std::set<FilePath> child_directories; | 887 std::set<FilePath> child_directories; |
| 871 | 888 |
| 872 // file9: not a directory, so no children. | 889 // file9: not a directory, so no children. |
| 873 resource_metadata_.GetChildDirectories("resource_id:file9", | 890 resource_metadata_->GetChildDirectories("resource_id:file9", |
| 874 base::Bind(&CopyResultFromGetChildDirectoriesCallback, | 891 base::Bind(&CopyResultFromGetChildDirectoriesCallback, |
| 875 &child_directories)); | 892 &child_directories)); |
| 876 google_apis::test_util::RunBlockingPoolTask(); | 893 google_apis::test_util::RunBlockingPoolTask(); |
| 877 EXPECT_TRUE(child_directories.empty()); | 894 EXPECT_TRUE(child_directories.empty()); |
| 878 | 895 |
| 879 // dir2: no child directories. | 896 // dir2: no child directories. |
| 880 resource_metadata_.GetChildDirectories("resource_id:dir2", | 897 resource_metadata_->GetChildDirectories("resource_id:dir2", |
| 881 base::Bind(&CopyResultFromGetChildDirectoriesCallback, | 898 base::Bind(&CopyResultFromGetChildDirectoriesCallback, |
| 882 &child_directories)); | 899 &child_directories)); |
| 883 google_apis::test_util::RunBlockingPoolTask(); | 900 google_apis::test_util::RunBlockingPoolTask(); |
| 884 EXPECT_TRUE(child_directories.empty()); | 901 EXPECT_TRUE(child_directories.empty()); |
| 885 | 902 |
| 886 // dir1: dir3 is the only child | 903 // dir1: dir3 is the only child |
| 887 resource_metadata_.GetChildDirectories("resource_id:dir1", | 904 resource_metadata_->GetChildDirectories("resource_id:dir1", |
| 888 base::Bind(&CopyResultFromGetChildDirectoriesCallback, | 905 base::Bind(&CopyResultFromGetChildDirectoriesCallback, |
| 889 &child_directories)); | 906 &child_directories)); |
| 890 google_apis::test_util::RunBlockingPoolTask(); | 907 google_apis::test_util::RunBlockingPoolTask(); |
| 891 EXPECT_EQ(1u, child_directories.size()); | 908 EXPECT_EQ(1u, child_directories.size()); |
| 892 EXPECT_EQ(1u, child_directories.count( | 909 EXPECT_EQ(1u, child_directories.count( |
| 893 FilePath::FromUTF8Unsafe("drive/dir1/dir3"))); | 910 FilePath::FromUTF8Unsafe("drive/dir1/dir3"))); |
| 894 | 911 |
| 895 // Add a few more directories to make sure deeper nesting works. | 912 // Add a few more directories to make sure deeper nesting works. |
| 896 // dir2/dir100 | 913 // dir2/dir100 |
| 897 // dir2/dir101 | 914 // dir2/dir101 |
| 898 // dir2/dir101/dir102 | 915 // dir2/dir101/dir102 |
| 899 // dir2/dir101/dir103 | 916 // dir2/dir101/dir103 |
| 900 // dir2/dir101/dir104 | 917 // dir2/dir101/dir104 |
| 901 // dir2/dir101/dir102/dir105 | 918 // dir2/dir101/dir102/dir105 |
| 902 // dir2/dir101/dir102/dir105/dir106 | 919 // dir2/dir101/dir102/dir105/dir106 |
| 903 // dir2/dir101/dir102/dir105/dir106/dir107 | 920 // dir2/dir101/dir102/dir105/dir106/dir107 |
| 904 int sequence_id = 100; | 921 int sequence_id = 100; |
| 905 ASSERT_TRUE(AddDriveEntryProto(sequence_id++, true, "resource_id:dir2")); | 922 ASSERT_TRUE(AddDriveEntryProto( |
| 906 ASSERT_TRUE(AddDriveEntryProto(sequence_id++, true, "resource_id:dir2")); | 923 resource_metadata_.get(), sequence_id++, true, "resource_id:dir2")); |
| 907 ASSERT_TRUE(AddDriveEntryProto(sequence_id++, true, "resource_id:dir101")); | 924 ASSERT_TRUE(AddDriveEntryProto( |
| 908 ASSERT_TRUE(AddDriveEntryProto(sequence_id++, true, "resource_id:dir101")); | 925 resource_metadata_.get(), sequence_id++, true, "resource_id:dir2")); |
| 909 ASSERT_TRUE(AddDriveEntryProto(sequence_id++, true, "resource_id:dir101")); | 926 ASSERT_TRUE(AddDriveEntryProto( |
| 910 ASSERT_TRUE(AddDriveEntryProto(sequence_id++, true, "resource_id:dir102")); | 927 resource_metadata_.get(), sequence_id++, true, "resource_id:dir101")); |
| 911 ASSERT_TRUE(AddDriveEntryProto(sequence_id++, true, "resource_id:dir105")); | 928 ASSERT_TRUE(AddDriveEntryProto( |
| 912 ASSERT_TRUE(AddDriveEntryProto(sequence_id++, true, "resource_id:dir106")); | 929 resource_metadata_.get(), sequence_id++, true, "resource_id:dir101")); |
| 930 ASSERT_TRUE(AddDriveEntryProto( |
| 931 resource_metadata_.get(), sequence_id++, true, "resource_id:dir101")); |
| 932 ASSERT_TRUE(AddDriveEntryProto( |
| 933 resource_metadata_.get(), sequence_id++, true, "resource_id:dir102")); |
| 934 ASSERT_TRUE(AddDriveEntryProto( |
| 935 resource_metadata_.get(), sequence_id++, true, "resource_id:dir105")); |
| 936 ASSERT_TRUE(AddDriveEntryProto( |
| 937 resource_metadata_.get(), sequence_id++, true, "resource_id:dir106")); |
| 913 | 938 |
| 914 resource_metadata_.GetChildDirectories("resource_id:dir2", | 939 resource_metadata_->GetChildDirectories("resource_id:dir2", |
| 915 base::Bind(&CopyResultFromGetChildDirectoriesCallback, | 940 base::Bind(&CopyResultFromGetChildDirectoriesCallback, |
| 916 &child_directories)); | 941 &child_directories)); |
| 917 google_apis::test_util::RunBlockingPoolTask(); | 942 google_apis::test_util::RunBlockingPoolTask(); |
| 918 EXPECT_EQ(8u, child_directories.size()); | 943 EXPECT_EQ(8u, child_directories.size()); |
| 919 EXPECT_EQ(1u, child_directories.count(FilePath::FromUTF8Unsafe( | 944 EXPECT_EQ(1u, child_directories.count(FilePath::FromUTF8Unsafe( |
| 920 "drive/dir2/dir101"))); | 945 "drive/dir2/dir101"))); |
| 921 EXPECT_EQ(1u, child_directories.count(FilePath::FromUTF8Unsafe( | 946 EXPECT_EQ(1u, child_directories.count(FilePath::FromUTF8Unsafe( |
| 922 "drive/dir2/dir101/dir104"))); | 947 "drive/dir2/dir101/dir104"))); |
| 923 EXPECT_EQ(1u, child_directories.count(FilePath::FromUTF8Unsafe( | 948 EXPECT_EQ(1u, child_directories.count(FilePath::FromUTF8Unsafe( |
| 924 "drive/dir2/dir101/dir102/dir105/dir106/dir107"))); | 949 "drive/dir2/dir101/dir102/dir105/dir106/dir107"))); |
| 925 } | 950 } |
| 926 | 951 |
| 927 TEST_F(DriveResourceMetadataTest, RemoveAll) { | 952 TEST_F(DriveResourceMetadataTest, RemoveAll) { |
| 928 DriveFileError error = DRIVE_FILE_ERROR_FAILED; | 953 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
| 929 scoped_ptr<DriveEntryProtoVector> entries; | 954 scoped_ptr<DriveEntryProtoVector> entries; |
| 930 | 955 |
| 931 // root has children. | 956 // root has children. |
| 932 resource_metadata_.ReadDirectoryByPath( | 957 resource_metadata_->ReadDirectoryByPath( |
| 933 FilePath::FromUTF8Unsafe("drive"), | 958 FilePath::FromUTF8Unsafe("drive"), |
| 934 base::Bind(&test_util::CopyResultsFromReadDirectoryCallback, | 959 base::Bind(&test_util::CopyResultsFromReadDirectoryCallback, |
| 935 &error, &entries)); | 960 &error, &entries)); |
| 936 google_apis::test_util::RunBlockingPoolTask(); | 961 google_apis::test_util::RunBlockingPoolTask(); |
| 937 EXPECT_EQ(DRIVE_FILE_OK, error); | 962 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 938 ASSERT_TRUE(entries.get()); | 963 ASSERT_TRUE(entries.get()); |
| 939 ASSERT_FALSE(entries->empty()); | 964 ASSERT_FALSE(entries->empty()); |
| 940 | 965 |
| 941 // remove all children. | 966 // remove all children. |
| 942 resource_metadata_.RemoveAll(base::Bind(&base::DoNothing)); | 967 resource_metadata_->RemoveAll(base::Bind(&base::DoNothing)); |
| 943 google_apis::test_util::RunBlockingPoolTask(); | 968 google_apis::test_util::RunBlockingPoolTask(); |
| 944 | 969 |
| 945 FilePath drive_file_path; | 970 FilePath drive_file_path; |
| 946 scoped_ptr<DriveEntryProto> entry_proto; | 971 scoped_ptr<DriveEntryProto> entry_proto; |
| 947 | 972 |
| 948 // root should continue to exist. | 973 // root should continue to exist. |
| 949 resource_metadata_.GetEntryInfoByPath( | 974 resource_metadata_->GetEntryInfoByPath( |
| 950 FilePath::FromUTF8Unsafe("drive"), | 975 FilePath::FromUTF8Unsafe("drive"), |
| 951 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback, | 976 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback, |
| 952 &error, &entry_proto)); | 977 &error, &entry_proto)); |
| 953 google_apis::test_util::RunBlockingPoolTask(); | 978 google_apis::test_util::RunBlockingPoolTask(); |
| 954 EXPECT_EQ(DRIVE_FILE_OK, error); | 979 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 955 ASSERT_TRUE(entry_proto.get()); | 980 ASSERT_TRUE(entry_proto.get()); |
| 956 EXPECT_EQ("drive", entry_proto->base_name()); | 981 EXPECT_EQ("drive", entry_proto->base_name()); |
| 957 ASSERT_TRUE(entry_proto->file_info().is_directory()); | 982 ASSERT_TRUE(entry_proto->file_info().is_directory()); |
| 958 EXPECT_EQ(kTestRootResourceId, entry_proto->resource_id()); | 983 EXPECT_EQ(kTestRootResourceId, entry_proto->resource_id()); |
| 959 | 984 |
| 960 // root should have no children. | 985 // root should have no children. |
| 961 resource_metadata_.ReadDirectoryByPath( | 986 resource_metadata_->ReadDirectoryByPath( |
| 962 FilePath::FromUTF8Unsafe("drive"), | 987 FilePath::FromUTF8Unsafe("drive"), |
| 963 base::Bind(&test_util::CopyResultsFromReadDirectoryCallback, | 988 base::Bind(&test_util::CopyResultsFromReadDirectoryCallback, |
| 964 &error, &entries)); | 989 &error, &entries)); |
| 965 google_apis::test_util::RunBlockingPoolTask(); | 990 google_apis::test_util::RunBlockingPoolTask(); |
| 966 EXPECT_EQ(DRIVE_FILE_OK, error); | 991 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 967 ASSERT_TRUE(entries.get()); | 992 ASSERT_TRUE(entries.get()); |
| 968 EXPECT_TRUE(entries->empty()); | 993 EXPECT_TRUE(entries->empty()); |
| 969 } | 994 } |
| 970 | 995 |
| 971 } // namespace drive | 996 } // namespace drive |
| OLD | NEW |