| 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/gdata/drive_resource_metadata.h" | 5 #include "chrome/browser/chromeos/gdata/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 21 matching lines...) Expand all Loading... |
| 32 // resource_id are determined by the incrementing counter |sequence_id|. | 32 // resource_id are determined by the incrementing counter |sequence_id|. |
| 33 DriveDirectory* AddDirectory(DriveDirectory* parent, | 33 DriveDirectory* AddDirectory(DriveDirectory* parent, |
| 34 DriveResourceMetadata* resource_metadata, | 34 DriveResourceMetadata* resource_metadata, |
| 35 int sequence_id) { | 35 int sequence_id) { |
| 36 DriveDirectory* dir = resource_metadata->CreateDriveDirectory(); | 36 DriveDirectory* dir = resource_metadata->CreateDriveDirectory(); |
| 37 const std::string dir_name = "dir" + base::IntToString(sequence_id); | 37 const std::string dir_name = "dir" + base::IntToString(sequence_id); |
| 38 const std::string resource_id = std::string("dir_resource_id:") + | 38 const std::string resource_id = std::string("dir_resource_id:") + |
| 39 dir_name; | 39 dir_name; |
| 40 dir->set_title(dir_name); | 40 dir->set_title(dir_name); |
| 41 dir->set_resource_id(resource_id); | 41 dir->set_resource_id(resource_id); |
| 42 GDataFileError error = GDATA_FILE_ERROR_FAILED; | 42 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
| 43 FilePath moved_file_path; | 43 FilePath moved_file_path; |
| 44 resource_metadata->MoveEntryToDirectory( | 44 resource_metadata->MoveEntryToDirectory( |
| 45 parent->GetFilePath(), | 45 parent->GetFilePath(), |
| 46 dir, | 46 dir, |
| 47 base::Bind(&test_util::CopyResultsFromFileMoveCallback, | 47 base::Bind(&test_util::CopyResultsFromFileMoveCallback, |
| 48 &error, | 48 &error, |
| 49 &moved_file_path)); | 49 &moved_file_path)); |
| 50 test_util::RunBlockingPoolTask(); | 50 test_util::RunBlockingPoolTask(); |
| 51 EXPECT_EQ(GDATA_FILE_OK, error); | 51 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 52 EXPECT_EQ(parent->GetFilePath().AppendASCII(dir_name), moved_file_path); | 52 EXPECT_EQ(parent->GetFilePath().AppendASCII(dir_name), moved_file_path); |
| 53 return dir; | 53 return dir; |
| 54 } | 54 } |
| 55 | 55 |
| 56 // Add a file to |parent| and return that file. The name and | 56 // Add a file to |parent| and return that file. The name and |
| 57 // resource_id are determined by the incrementing counter |sequence_id|. | 57 // resource_id are determined by the incrementing counter |sequence_id|. |
| 58 DriveFile* AddFile(DriveDirectory* parent, | 58 DriveFile* AddFile(DriveDirectory* parent, |
| 59 DriveResourceMetadata* resource_metadata, | 59 DriveResourceMetadata* resource_metadata, |
| 60 int sequence_id) { | 60 int sequence_id) { |
| 61 DriveFile* file = resource_metadata->CreateDriveFile(); | 61 DriveFile* file = resource_metadata->CreateDriveFile(); |
| 62 const std::string title = "file" + base::IntToString(sequence_id); | 62 const std::string title = "file" + base::IntToString(sequence_id); |
| 63 const std::string resource_id = std::string("file_resource_id:") + | 63 const std::string resource_id = std::string("file_resource_id:") + |
| 64 title; | 64 title; |
| 65 file->set_title(title); | 65 file->set_title(title); |
| 66 file->set_resource_id(resource_id); | 66 file->set_resource_id(resource_id); |
| 67 file->set_file_md5(std::string("file_md5:") + title); | 67 file->set_file_md5(std::string("file_md5:") + title); |
| 68 GDataFileError error = GDATA_FILE_ERROR_FAILED; | 68 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
| 69 FilePath moved_file_path; | 69 FilePath moved_file_path; |
| 70 resource_metadata->MoveEntryToDirectory( | 70 resource_metadata->MoveEntryToDirectory( |
| 71 parent->GetFilePath(), | 71 parent->GetFilePath(), |
| 72 file, | 72 file, |
| 73 base::Bind(&test_util::CopyResultsFromFileMoveCallback, | 73 base::Bind(&test_util::CopyResultsFromFileMoveCallback, |
| 74 &error, | 74 &error, |
| 75 &moved_file_path)); | 75 &moved_file_path)); |
| 76 test_util::RunBlockingPoolTask(); | 76 test_util::RunBlockingPoolTask(); |
| 77 EXPECT_EQ(GDATA_FILE_OK, error); | 77 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 78 EXPECT_EQ(parent->GetFilePath().AppendASCII(title), moved_file_path); | 78 EXPECT_EQ(parent->GetFilePath().AppendASCII(title), moved_file_path); |
| 79 return file; | 79 return file; |
| 80 } | 80 } |
| 81 | 81 |
| 82 // Creates the following files/directories | 82 // Creates the following files/directories |
| 83 // drive/dir1/ | 83 // drive/dir1/ |
| 84 // drive/dir2/ | 84 // drive/dir2/ |
| 85 // drive/dir1/dir3/ | 85 // drive/dir1/dir3/ |
| 86 // drive/dir1/file4 | 86 // drive/dir1/file4 |
| 87 // drive/dir1/file5 | 87 // drive/dir1/file5 |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 178 "file_resource_id:file7")); | 178 "file_resource_id:file7")); |
| 179 EXPECT_EQ(file8, resource_metadata->GetEntryByResourceId( | 179 EXPECT_EQ(file8, resource_metadata->GetEntryByResourceId( |
| 180 "file_resource_id:file8")); | 180 "file_resource_id:file8")); |
| 181 EXPECT_EQ(file9, resource_metadata->GetEntryByResourceId( | 181 EXPECT_EQ(file9, resource_metadata->GetEntryByResourceId( |
| 182 "file_resource_id:file9")); | 182 "file_resource_id:file9")); |
| 183 EXPECT_EQ(file10, resource_metadata->GetEntryByResourceId( | 183 EXPECT_EQ(file10, resource_metadata->GetEntryByResourceId( |
| 184 "file_resource_id:file10")); | 184 "file_resource_id:file10")); |
| 185 } | 185 } |
| 186 | 186 |
| 187 // Callback for DriveResourceMetadata::InitFromDB. | 187 // Callback for DriveResourceMetadata::InitFromDB. |
| 188 void InitFromDBCallback(GDataFileError expected_error, | 188 void InitFromDBCallback(DriveFileError expected_error, |
| 189 GDataFileError actual_error) { | 189 DriveFileError actual_error) { |
| 190 EXPECT_EQ(expected_error, actual_error); | 190 EXPECT_EQ(expected_error, actual_error); |
| 191 } | 191 } |
| 192 | 192 |
| 193 // Callback for DriveResourceMetadata::ReadDirectoryByPath. | 193 // Callback for DriveResourceMetadata::ReadDirectoryByPath. |
| 194 void ReadDirectoryByPathCallback( | 194 void ReadDirectoryByPathCallback( |
| 195 scoped_ptr<DriveEntryProtoVector>* result, | 195 scoped_ptr<DriveEntryProtoVector>* result, |
| 196 GDataFileError error, | 196 DriveFileError error, |
| 197 scoped_ptr<DriveEntryProtoVector> entries) { | 197 scoped_ptr<DriveEntryProtoVector> entries) { |
| 198 EXPECT_EQ(GDATA_FILE_OK, error); | 198 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 199 *result = entries.Pass(); | 199 *result = entries.Pass(); |
| 200 } | 200 } |
| 201 | 201 |
| 202 } // namespace | 202 } // namespace |
| 203 | 203 |
| 204 TEST(DriveResourceMetadataTest, VersionCheck) { | 204 TEST(DriveResourceMetadataTest, VersionCheck) { |
| 205 // Set up the root directory. | 205 // Set up the root directory. |
| 206 DriveRootDirectoryProto proto; | 206 DriveRootDirectoryProto proto; |
| 207 DriveEntryProto* mutable_entry = | 207 DriveEntryProto* mutable_entry = |
| 208 proto.mutable_gdata_directory()->mutable_gdata_entry(); | 208 proto.mutable_gdata_directory()->mutable_gdata_entry(); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 MessageLoopForUI message_loop; | 241 MessageLoopForUI message_loop; |
| 242 content::TestBrowserThread ui_thread(content::BrowserThread::UI, | 242 content::TestBrowserThread ui_thread(content::BrowserThread::UI, |
| 243 &message_loop); | 243 &message_loop); |
| 244 | 244 |
| 245 DriveResourceMetadata resource_metadata; | 245 DriveResourceMetadata resource_metadata; |
| 246 // Add a directory to the file system. | 246 // Add a directory to the file system. |
| 247 DriveDirectory* directory_entry = resource_metadata.CreateDriveDirectory(); | 247 DriveDirectory* directory_entry = resource_metadata.CreateDriveDirectory(); |
| 248 directory_entry->set_resource_id("folder:directory_resource_id"); | 248 directory_entry->set_resource_id("folder:directory_resource_id"); |
| 249 directory_entry->set_title("directory"); | 249 directory_entry->set_title("directory"); |
| 250 directory_entry->SetBaseNameFromTitle(); | 250 directory_entry->SetBaseNameFromTitle(); |
| 251 GDataFileError error = GDATA_FILE_ERROR_FAILED; | 251 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
| 252 FilePath moved_file_path; | 252 FilePath moved_file_path; |
| 253 FilePath root_path(kDriveRootDirectory); | 253 FilePath root_path(kDriveRootDirectory); |
| 254 resource_metadata.MoveEntryToDirectory( | 254 resource_metadata.MoveEntryToDirectory( |
| 255 root_path, | 255 root_path, |
| 256 directory_entry, | 256 directory_entry, |
| 257 base::Bind(&test_util::CopyResultsFromFileMoveCallback, | 257 base::Bind(&test_util::CopyResultsFromFileMoveCallback, |
| 258 &error, | 258 &error, |
| 259 &moved_file_path)); | 259 &moved_file_path)); |
| 260 test_util::RunBlockingPoolTask(); | 260 test_util::RunBlockingPoolTask(); |
| 261 ASSERT_EQ(GDATA_FILE_OK, error); | 261 ASSERT_EQ(DRIVE_FILE_OK, error); |
| 262 EXPECT_EQ(root_path.AppendASCII(directory_entry->base_name()), | 262 EXPECT_EQ(root_path.AppendASCII(directory_entry->base_name()), |
| 263 moved_file_path); | 263 moved_file_path); |
| 264 | 264 |
| 265 // Add a new file to the directory. | 265 // Add a new file to the directory. |
| 266 DriveFile* initial_file_entry = resource_metadata.CreateDriveFile(); | 266 DriveFile* initial_file_entry = resource_metadata.CreateDriveFile(); |
| 267 initial_file_entry->set_resource_id("file:file_resource_id"); | 267 initial_file_entry->set_resource_id("file:file_resource_id"); |
| 268 initial_file_entry->set_title("file"); | 268 initial_file_entry->set_title("file"); |
| 269 initial_file_entry->SetBaseNameFromTitle(); | 269 initial_file_entry->SetBaseNameFromTitle(); |
| 270 error = GDATA_FILE_ERROR_FAILED; | 270 error = DRIVE_FILE_ERROR_FAILED; |
| 271 moved_file_path.clear(); | 271 moved_file_path.clear(); |
| 272 resource_metadata.MoveEntryToDirectory( | 272 resource_metadata.MoveEntryToDirectory( |
| 273 directory_entry->GetFilePath(), | 273 directory_entry->GetFilePath(), |
| 274 initial_file_entry, | 274 initial_file_entry, |
| 275 base::Bind(&test_util::CopyResultsFromFileMoveCallback, | 275 base::Bind(&test_util::CopyResultsFromFileMoveCallback, |
| 276 &error, | 276 &error, |
| 277 &moved_file_path)); | 277 &moved_file_path)); |
| 278 test_util::RunBlockingPoolTask(); | 278 test_util::RunBlockingPoolTask(); |
| 279 ASSERT_EQ(GDATA_FILE_OK, error); | 279 ASSERT_EQ(DRIVE_FILE_OK, error); |
| 280 EXPECT_EQ(directory_entry->GetFilePath().AppendASCII( | 280 EXPECT_EQ(directory_entry->GetFilePath().AppendASCII( |
| 281 initial_file_entry->base_name()), moved_file_path); | 281 initial_file_entry->base_name()), moved_file_path); |
| 282 | 282 |
| 283 ASSERT_EQ(directory_entry, initial_file_entry->parent()); | 283 ASSERT_EQ(directory_entry, initial_file_entry->parent()); |
| 284 | 284 |
| 285 // Initial file system state set, let's try refreshing entries. | 285 // Initial file system state set, let's try refreshing entries. |
| 286 | 286 |
| 287 // New value for the entry with resource id "file:file_resource_id". | 287 // New value for the entry with resource id "file:file_resource_id". |
| 288 DriveFile* new_file_entry = resource_metadata.CreateDriveFile(); | 288 DriveFile* new_file_entry = resource_metadata.CreateDriveFile(); |
| 289 new_file_entry->set_resource_id("file:file_resource_id"); | 289 new_file_entry->set_resource_id("file:file_resource_id"); |
| (...skipping 26 matching lines...) Expand all Loading... |
| 316 } | 316 } |
| 317 | 317 |
| 318 TEST(DriveResourceMetadataTest, GetEntryInfoByResourceId) { | 318 TEST(DriveResourceMetadataTest, GetEntryInfoByResourceId) { |
| 319 MessageLoopForUI message_loop; | 319 MessageLoopForUI message_loop; |
| 320 content::TestBrowserThread ui_thread(content::BrowserThread::UI, | 320 content::TestBrowserThread ui_thread(content::BrowserThread::UI, |
| 321 &message_loop); | 321 &message_loop); |
| 322 DriveResourceMetadata resource_metadata; | 322 DriveResourceMetadata resource_metadata; |
| 323 InitDirectoryService(&resource_metadata); | 323 InitDirectoryService(&resource_metadata); |
| 324 | 324 |
| 325 // Confirm that an existing file is found. | 325 // Confirm that an existing file is found. |
| 326 GDataFileError error = GDATA_FILE_ERROR_FAILED; | 326 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
| 327 FilePath drive_file_path; | 327 FilePath drive_file_path; |
| 328 scoped_ptr<DriveEntryProto> entry_proto; | 328 scoped_ptr<DriveEntryProto> entry_proto; |
| 329 resource_metadata.GetEntryInfoByResourceId( | 329 resource_metadata.GetEntryInfoByResourceId( |
| 330 "file_resource_id:file4", | 330 "file_resource_id:file4", |
| 331 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, | 331 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, |
| 332 &error, &drive_file_path, &entry_proto)); | 332 &error, &drive_file_path, &entry_proto)); |
| 333 test_util::RunBlockingPoolTask(); | 333 test_util::RunBlockingPoolTask(); |
| 334 EXPECT_EQ(GDATA_FILE_OK, error); | 334 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 335 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file4"), drive_file_path); | 335 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file4"), drive_file_path); |
| 336 ASSERT_TRUE(entry_proto.get()); | 336 ASSERT_TRUE(entry_proto.get()); |
| 337 EXPECT_EQ("file4", entry_proto->base_name()); | 337 EXPECT_EQ("file4", entry_proto->base_name()); |
| 338 | 338 |
| 339 // Confirm that a non existing file is not found. | 339 // Confirm that a non existing file is not found. |
| 340 error = GDATA_FILE_ERROR_FAILED; | 340 error = DRIVE_FILE_ERROR_FAILED; |
| 341 entry_proto.reset(); | 341 entry_proto.reset(); |
| 342 resource_metadata.GetEntryInfoByResourceId( | 342 resource_metadata.GetEntryInfoByResourceId( |
| 343 "file:non_existing", | 343 "file:non_existing", |
| 344 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, | 344 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, |
| 345 &error, &drive_file_path, &entry_proto)); | 345 &error, &drive_file_path, &entry_proto)); |
| 346 test_util::RunBlockingPoolTask(); | 346 test_util::RunBlockingPoolTask(); |
| 347 EXPECT_EQ(GDATA_FILE_ERROR_NOT_FOUND, error); | 347 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, error); |
| 348 EXPECT_FALSE(entry_proto.get()); | 348 EXPECT_FALSE(entry_proto.get()); |
| 349 } | 349 } |
| 350 | 350 |
| 351 TEST(DriveResourceMetadataTest, GetEntryInfoByPath) { | 351 TEST(DriveResourceMetadataTest, GetEntryInfoByPath) { |
| 352 MessageLoopForUI message_loop; | 352 MessageLoopForUI message_loop; |
| 353 content::TestBrowserThread ui_thread(content::BrowserThread::UI, | 353 content::TestBrowserThread ui_thread(content::BrowserThread::UI, |
| 354 &message_loop); | 354 &message_loop); |
| 355 DriveResourceMetadata resource_metadata; | 355 DriveResourceMetadata resource_metadata; |
| 356 InitDirectoryService(&resource_metadata); | 356 InitDirectoryService(&resource_metadata); |
| 357 | 357 |
| 358 // Confirm that an existing file is found. | 358 // Confirm that an existing file is found. |
| 359 GDataFileError error = GDATA_FILE_ERROR_FAILED; | 359 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
| 360 scoped_ptr<DriveEntryProto> entry_proto; | 360 scoped_ptr<DriveEntryProto> entry_proto; |
| 361 resource_metadata.GetEntryInfoByPath( | 361 resource_metadata.GetEntryInfoByPath( |
| 362 FilePath::FromUTF8Unsafe("drive/dir1/file4"), | 362 FilePath::FromUTF8Unsafe("drive/dir1/file4"), |
| 363 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback, | 363 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback, |
| 364 &error, &entry_proto)); | 364 &error, &entry_proto)); |
| 365 test_util::RunBlockingPoolTask(); | 365 test_util::RunBlockingPoolTask(); |
| 366 EXPECT_EQ(GDATA_FILE_OK, error); | 366 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 367 ASSERT_TRUE(entry_proto.get()); | 367 ASSERT_TRUE(entry_proto.get()); |
| 368 EXPECT_EQ("file4", entry_proto->base_name()); | 368 EXPECT_EQ("file4", entry_proto->base_name()); |
| 369 | 369 |
| 370 // Confirm that a non existing file is not found. | 370 // Confirm that a non existing file is not found. |
| 371 error = GDATA_FILE_ERROR_FAILED; | 371 error = DRIVE_FILE_ERROR_FAILED; |
| 372 entry_proto.reset(); | 372 entry_proto.reset(); |
| 373 resource_metadata.GetEntryInfoByPath( | 373 resource_metadata.GetEntryInfoByPath( |
| 374 FilePath::FromUTF8Unsafe("drive/dir1/non_existing"), | 374 FilePath::FromUTF8Unsafe("drive/dir1/non_existing"), |
| 375 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback, | 375 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback, |
| 376 &error, &entry_proto)); | 376 &error, &entry_proto)); |
| 377 test_util::RunBlockingPoolTask(); | 377 test_util::RunBlockingPoolTask(); |
| 378 EXPECT_EQ(GDATA_FILE_ERROR_NOT_FOUND, error); | 378 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, error); |
| 379 EXPECT_FALSE(entry_proto.get()); | 379 EXPECT_FALSE(entry_proto.get()); |
| 380 } | 380 } |
| 381 | 381 |
| 382 TEST(DriveResourceMetadataTest, ReadDirectoryByPath) { | 382 TEST(DriveResourceMetadataTest, ReadDirectoryByPath) { |
| 383 MessageLoopForUI message_loop; | 383 MessageLoopForUI message_loop; |
| 384 content::TestBrowserThread ui_thread(content::BrowserThread::UI, | 384 content::TestBrowserThread ui_thread(content::BrowserThread::UI, |
| 385 &message_loop); | 385 &message_loop); |
| 386 DriveResourceMetadata resource_metadata; | 386 DriveResourceMetadata resource_metadata; |
| 387 InitDirectoryService(&resource_metadata); | 387 InitDirectoryService(&resource_metadata); |
| 388 | 388 |
| 389 // Confirm that an existing directory is found. | 389 // Confirm that an existing directory is found. |
| 390 GDataFileError error = GDATA_FILE_ERROR_FAILED; | 390 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
| 391 scoped_ptr<DriveEntryProtoVector> entries; | 391 scoped_ptr<DriveEntryProtoVector> entries; |
| 392 resource_metadata.ReadDirectoryByPath( | 392 resource_metadata.ReadDirectoryByPath( |
| 393 FilePath::FromUTF8Unsafe("drive/dir1"), | 393 FilePath::FromUTF8Unsafe("drive/dir1"), |
| 394 base::Bind(&test_util::CopyResultsFromReadDirectoryCallback, | 394 base::Bind(&test_util::CopyResultsFromReadDirectoryCallback, |
| 395 &error, &entries)); | 395 &error, &entries)); |
| 396 test_util::RunBlockingPoolTask(); | 396 test_util::RunBlockingPoolTask(); |
| 397 EXPECT_EQ(GDATA_FILE_OK, error); | 397 EXPECT_EQ(DRIVE_FILE_OK, error); |
| 398 ASSERT_TRUE(entries.get()); | 398 ASSERT_TRUE(entries.get()); |
| 399 ASSERT_EQ(3U, entries->size()); | 399 ASSERT_EQ(3U, entries->size()); |
| 400 | 400 |
| 401 // The order is not guaranteed so we should sort the base names. | 401 // The order is not guaranteed so we should sort the base names. |
| 402 std::vector<std::string> base_names; | 402 std::vector<std::string> base_names; |
| 403 for (size_t i = 0; i < 3; ++i) | 403 for (size_t i = 0; i < 3; ++i) |
| 404 base_names.push_back(entries->at(i).base_name()); | 404 base_names.push_back(entries->at(i).base_name()); |
| 405 std::sort(base_names.begin(), base_names.end()); | 405 std::sort(base_names.begin(), base_names.end()); |
| 406 | 406 |
| 407 EXPECT_EQ("dir3", base_names[0]); | 407 EXPECT_EQ("dir3", base_names[0]); |
| 408 EXPECT_EQ("file4", base_names[1]); | 408 EXPECT_EQ("file4", base_names[1]); |
| 409 EXPECT_EQ("file5", base_names[2]); | 409 EXPECT_EQ("file5", base_names[2]); |
| 410 | 410 |
| 411 // Confirm that a non existing directory is not found. | 411 // Confirm that a non existing directory is not found. |
| 412 error = GDATA_FILE_ERROR_FAILED; | 412 error = DRIVE_FILE_ERROR_FAILED; |
| 413 entries.reset(); | 413 entries.reset(); |
| 414 resource_metadata.ReadDirectoryByPath( | 414 resource_metadata.ReadDirectoryByPath( |
| 415 FilePath::FromUTF8Unsafe("drive/non_existing"), | 415 FilePath::FromUTF8Unsafe("drive/non_existing"), |
| 416 base::Bind(&test_util::CopyResultsFromReadDirectoryCallback, | 416 base::Bind(&test_util::CopyResultsFromReadDirectoryCallback, |
| 417 &error, &entries)); | 417 &error, &entries)); |
| 418 test_util::RunBlockingPoolTask(); | 418 test_util::RunBlockingPoolTask(); |
| 419 EXPECT_EQ(GDATA_FILE_ERROR_NOT_FOUND, error); | 419 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, error); |
| 420 EXPECT_FALSE(entries.get()); | 420 EXPECT_FALSE(entries.get()); |
| 421 | 421 |
| 422 // Confirm that reading a file results in GDATA_FILE_ERROR_NOT_A_DIRECTORY. | 422 // Confirm that reading a file results in DRIVE_FILE_ERROR_NOT_A_DIRECTORY. |
| 423 error = GDATA_FILE_ERROR_FAILED; | 423 error = DRIVE_FILE_ERROR_FAILED; |
| 424 entries.reset(); | 424 entries.reset(); |
| 425 resource_metadata.ReadDirectoryByPath( | 425 resource_metadata.ReadDirectoryByPath( |
| 426 FilePath::FromUTF8Unsafe("drive/dir1/file4"), | 426 FilePath::FromUTF8Unsafe("drive/dir1/file4"), |
| 427 base::Bind(&test_util::CopyResultsFromReadDirectoryCallback, | 427 base::Bind(&test_util::CopyResultsFromReadDirectoryCallback, |
| 428 &error, &entries)); | 428 &error, &entries)); |
| 429 test_util::RunBlockingPoolTask(); | 429 test_util::RunBlockingPoolTask(); |
| 430 EXPECT_EQ(GDATA_FILE_ERROR_NOT_A_DIRECTORY, error); | 430 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_A_DIRECTORY, error); |
| 431 EXPECT_FALSE(entries.get()); | 431 EXPECT_FALSE(entries.get()); |
| 432 } | 432 } |
| 433 | 433 |
| 434 TEST(DriveResourceMetadataTest, GetEntryInfoPairByPaths) { | 434 TEST(DriveResourceMetadataTest, GetEntryInfoPairByPaths) { |
| 435 MessageLoopForUI message_loop; | 435 MessageLoopForUI message_loop; |
| 436 content::TestBrowserThread ui_thread(content::BrowserThread::UI, | 436 content::TestBrowserThread ui_thread(content::BrowserThread::UI, |
| 437 &message_loop); | 437 &message_loop); |
| 438 DriveResourceMetadata resource_metadata; | 438 DriveResourceMetadata resource_metadata; |
| 439 InitDirectoryService(&resource_metadata); | 439 InitDirectoryService(&resource_metadata); |
| 440 | 440 |
| 441 // Confirm that existing two files are found. | 441 // Confirm that existing two files are found. |
| 442 scoped_ptr<EntryInfoPairResult> pair_result; | 442 scoped_ptr<EntryInfoPairResult> pair_result; |
| 443 resource_metadata.GetEntryInfoPairByPaths( | 443 resource_metadata.GetEntryInfoPairByPaths( |
| 444 FilePath::FromUTF8Unsafe("drive/dir1/file4"), | 444 FilePath::FromUTF8Unsafe("drive/dir1/file4"), |
| 445 FilePath::FromUTF8Unsafe("drive/dir1/file5"), | 445 FilePath::FromUTF8Unsafe("drive/dir1/file5"), |
| 446 base::Bind(&test_util::CopyResultsFromGetEntryInfoPairCallback, | 446 base::Bind(&test_util::CopyResultsFromGetEntryInfoPairCallback, |
| 447 &pair_result)); | 447 &pair_result)); |
| 448 test_util::RunBlockingPoolTask(); | 448 test_util::RunBlockingPoolTask(); |
| 449 // The first entry should be found. | 449 // The first entry should be found. |
| 450 EXPECT_EQ(GDATA_FILE_OK, pair_result->first.error); | 450 EXPECT_EQ(DRIVE_FILE_OK, pair_result->first.error); |
| 451 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file4"), | 451 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file4"), |
| 452 pair_result->first.path); | 452 pair_result->first.path); |
| 453 ASSERT_TRUE(pair_result->first.proto.get()); | 453 ASSERT_TRUE(pair_result->first.proto.get()); |
| 454 EXPECT_EQ("file4", pair_result->first.proto->base_name()); | 454 EXPECT_EQ("file4", pair_result->first.proto->base_name()); |
| 455 // The second entry should be found. | 455 // The second entry should be found. |
| 456 EXPECT_EQ(GDATA_FILE_OK, pair_result->second.error); | 456 EXPECT_EQ(DRIVE_FILE_OK, pair_result->second.error); |
| 457 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file5"), | 457 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file5"), |
| 458 pair_result->second.path); | 458 pair_result->second.path); |
| 459 ASSERT_TRUE(pair_result->second.proto.get()); | 459 ASSERT_TRUE(pair_result->second.proto.get()); |
| 460 EXPECT_EQ("file5", pair_result->second.proto->base_name()); | 460 EXPECT_EQ("file5", pair_result->second.proto->base_name()); |
| 461 | 461 |
| 462 // Confirm that the first non existent file is not found. | 462 // Confirm that the first non existent file is not found. |
| 463 pair_result.reset(); | 463 pair_result.reset(); |
| 464 resource_metadata.GetEntryInfoPairByPaths( | 464 resource_metadata.GetEntryInfoPairByPaths( |
| 465 FilePath::FromUTF8Unsafe("drive/dir1/non_existent"), | 465 FilePath::FromUTF8Unsafe("drive/dir1/non_existent"), |
| 466 FilePath::FromUTF8Unsafe("drive/dir1/file5"), | 466 FilePath::FromUTF8Unsafe("drive/dir1/file5"), |
| 467 base::Bind(&test_util::CopyResultsFromGetEntryInfoPairCallback, | 467 base::Bind(&test_util::CopyResultsFromGetEntryInfoPairCallback, |
| 468 &pair_result)); | 468 &pair_result)); |
| 469 test_util::RunBlockingPoolTask(); | 469 test_util::RunBlockingPoolTask(); |
| 470 // The first entry should not be found. | 470 // The first entry should not be found. |
| 471 EXPECT_EQ(GDATA_FILE_ERROR_NOT_FOUND, pair_result->first.error); | 471 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, pair_result->first.error); |
| 472 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/non_existent"), | 472 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/non_existent"), |
| 473 pair_result->first.path); | 473 pair_result->first.path); |
| 474 ASSERT_FALSE(pair_result->first.proto.get()); | 474 ASSERT_FALSE(pair_result->first.proto.get()); |
| 475 // The second entry should not be found, because the first one failed. | 475 // The second entry should not be found, because the first one failed. |
| 476 EXPECT_EQ(GDATA_FILE_ERROR_FAILED, pair_result->second.error); | 476 EXPECT_EQ(DRIVE_FILE_ERROR_FAILED, pair_result->second.error); |
| 477 EXPECT_EQ(FilePath(), pair_result->second.path); | 477 EXPECT_EQ(FilePath(), pair_result->second.path); |
| 478 ASSERT_FALSE(pair_result->second.proto.get()); | 478 ASSERT_FALSE(pair_result->second.proto.get()); |
| 479 | 479 |
| 480 // Confirm that the second non existent file is not found. | 480 // Confirm that the second non existent file is not found. |
| 481 pair_result.reset(); | 481 pair_result.reset(); |
| 482 resource_metadata.GetEntryInfoPairByPaths( | 482 resource_metadata.GetEntryInfoPairByPaths( |
| 483 FilePath::FromUTF8Unsafe("drive/dir1/file4"), | 483 FilePath::FromUTF8Unsafe("drive/dir1/file4"), |
| 484 FilePath::FromUTF8Unsafe("drive/dir1/non_existent"), | 484 FilePath::FromUTF8Unsafe("drive/dir1/non_existent"), |
| 485 base::Bind(&test_util::CopyResultsFromGetEntryInfoPairCallback, | 485 base::Bind(&test_util::CopyResultsFromGetEntryInfoPairCallback, |
| 486 &pair_result)); | 486 &pair_result)); |
| 487 test_util::RunBlockingPoolTask(); | 487 test_util::RunBlockingPoolTask(); |
| 488 // The first entry should be found. | 488 // The first entry should be found. |
| 489 EXPECT_EQ(GDATA_FILE_OK, pair_result->first.error); | 489 EXPECT_EQ(DRIVE_FILE_OK, pair_result->first.error); |
| 490 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file4"), | 490 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file4"), |
| 491 pair_result->first.path); | 491 pair_result->first.path); |
| 492 ASSERT_TRUE(pair_result->first.proto.get()); | 492 ASSERT_TRUE(pair_result->first.proto.get()); |
| 493 EXPECT_EQ("file4", pair_result->first.proto->base_name()); | 493 EXPECT_EQ("file4", pair_result->first.proto->base_name()); |
| 494 // The second entry should not be found. | 494 // The second entry should not be found. |
| 495 EXPECT_EQ(GDATA_FILE_ERROR_NOT_FOUND, pair_result->second.error); | 495 EXPECT_EQ(DRIVE_FILE_ERROR_NOT_FOUND, pair_result->second.error); |
| 496 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/non_existent"), | 496 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/non_existent"), |
| 497 pair_result->second.path); | 497 pair_result->second.path); |
| 498 ASSERT_FALSE(pair_result->second.proto.get()); | 498 ASSERT_FALSE(pair_result->second.proto.get()); |
| 499 } | 499 } |
| 500 | 500 |
| 501 TEST(DriveResourceMetadataTest, DBTest) { | 501 TEST(DriveResourceMetadataTest, DBTest) { |
| 502 MessageLoopForUI message_loop; | 502 MessageLoopForUI message_loop; |
| 503 content::TestBrowserThread ui_thread(content::BrowserThread::UI, | 503 content::TestBrowserThread ui_thread(content::BrowserThread::UI, |
| 504 &message_loop); | 504 &message_loop); |
| 505 | 505 |
| 506 scoped_ptr<TestingProfile> profile(new TestingProfile); | 506 scoped_ptr<TestingProfile> profile(new TestingProfile); |
| 507 scoped_refptr<base::SequencedWorkerPool> pool = | 507 scoped_refptr<base::SequencedWorkerPool> pool = |
| 508 content::BrowserThread::GetBlockingPool(); | 508 content::BrowserThread::GetBlockingPool(); |
| 509 scoped_refptr<base::SequencedTaskRunner> blocking_task_runner = | 509 scoped_refptr<base::SequencedTaskRunner> blocking_task_runner = |
| 510 pool->GetSequencedTaskRunner(pool->GetSequenceToken()); | 510 pool->GetSequencedTaskRunner(pool->GetSequenceToken()); |
| 511 | 511 |
| 512 DriveResourceMetadata resource_metadata; | 512 DriveResourceMetadata resource_metadata; |
| 513 FilePath db_path(DriveCache::GetCacheRootPath(profile.get()). | 513 FilePath db_path(DriveCache::GetCacheRootPath(profile.get()). |
| 514 AppendASCII("meta").AppendASCII("resource_metadata.db")); | 514 AppendASCII("meta").AppendASCII("resource_metadata.db")); |
| 515 // InitFromDB should fail with GDATA_FILE_ERROR_NOT_FOUND since the db | 515 // InitFromDB should fail with DRIVE_FILE_ERROR_NOT_FOUND since the db |
| 516 // doesn't exist. | 516 // doesn't exist. |
| 517 resource_metadata.InitFromDB(db_path, blocking_task_runner, | 517 resource_metadata.InitFromDB(db_path, blocking_task_runner, |
| 518 base::Bind(&InitFromDBCallback, GDATA_FILE_ERROR_NOT_FOUND)); | 518 base::Bind(&InitFromDBCallback, DRIVE_FILE_ERROR_NOT_FOUND)); |
| 519 test_util::RunBlockingPoolTask(); | 519 test_util::RunBlockingPoolTask(); |
| 520 InitDirectoryService(&resource_metadata); | 520 InitDirectoryService(&resource_metadata); |
| 521 | 521 |
| 522 // Write the filesystem to db. | 522 // Write the filesystem to db. |
| 523 resource_metadata.SaveToDB(); | 523 resource_metadata.SaveToDB(); |
| 524 test_util::RunBlockingPoolTask(); | 524 test_util::RunBlockingPoolTask(); |
| 525 | 525 |
| 526 DriveResourceMetadata resource_metadata2; | 526 DriveResourceMetadata resource_metadata2; |
| 527 // InitFromDB should succeed with GDATA_FILE_OK as the db now exists. | 527 // InitFromDB should succeed with DRIVE_FILE_OK as the db now exists. |
| 528 resource_metadata2.InitFromDB(db_path, blocking_task_runner, | 528 resource_metadata2.InitFromDB(db_path, blocking_task_runner, |
| 529 base::Bind(&InitFromDBCallback, GDATA_FILE_OK)); | 529 base::Bind(&InitFromDBCallback, DRIVE_FILE_OK)); |
| 530 test_util::RunBlockingPoolTask(); | 530 test_util::RunBlockingPoolTask(); |
| 531 | 531 |
| 532 VerifyDirectoryService(&resource_metadata2); | 532 VerifyDirectoryService(&resource_metadata2); |
| 533 } | 533 } |
| 534 | 534 |
| 535 } // namespace gdata | 535 } // namespace gdata |
| OLD | NEW |