| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/file_manager/volume_manager.h" | 5 #include "chrome/browser/chromeos/file_manager/volume_manager.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 152 disk_mount_manager_.get())); | 152 disk_mount_manager_.get())); |
| 153 } | 153 } |
| 154 | 154 |
| 155 content::TestBrowserThreadBundle thread_bundle_; | 155 content::TestBrowserThreadBundle thread_bundle_; |
| 156 scoped_ptr<chromeos::FakePowerManagerClient> power_manager_client_; | 156 scoped_ptr<chromeos::FakePowerManagerClient> power_manager_client_; |
| 157 scoped_ptr<FakeDiskMountManager> disk_mount_manager_; | 157 scoped_ptr<FakeDiskMountManager> disk_mount_manager_; |
| 158 scoped_ptr<TestingProfile> profile_; | 158 scoped_ptr<TestingProfile> profile_; |
| 159 scoped_ptr<VolumeManager> volume_manager_; | 159 scoped_ptr<VolumeManager> volume_manager_; |
| 160 }; | 160 }; |
| 161 | 161 |
| 162 TEST_F(VolumeManagerTest, OnFileSystemMounted) { | 162 TEST_F(VolumeManagerTest, OnDriveFileSystemMountAndUnmount) { |
| 163 LoggingObserver observer; | 163 LoggingObserver observer; |
| 164 volume_manager_->AddObserver(&observer); | 164 volume_manager_->AddObserver(&observer); |
| 165 | 165 |
| 166 volume_manager_->OnFileSystemMounted(); | 166 volume_manager_->OnFileSystemMounted(); |
| 167 | 167 |
| 168 ASSERT_EQ(1U, observer.events().size()); | 168 ASSERT_EQ(1U, observer.events().size()); |
| 169 const LoggingObserver::Event& event = observer.events()[0]; | 169 LoggingObserver::Event event = observer.events()[0]; |
| 170 EXPECT_EQ(LoggingObserver::Event::VOLUME_MOUNTED, event.type); | 170 EXPECT_EQ(LoggingObserver::Event::VOLUME_MOUNTED, event.type); |
| 171 EXPECT_EQ(drive::util::GetDriveMountPointPath(profile_.get()).AsUTF8Unsafe(), | 171 EXPECT_EQ(drive::util::GetDriveMountPointPath(profile_.get()).AsUTF8Unsafe(), |
| 172 event.device_path); | 172 event.device_path); |
| 173 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error); | 173 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error); |
| 174 EXPECT_FALSE(event.is_remounting); | 174 EXPECT_FALSE(event.is_remounting); |
| 175 | 175 |
| 176 volume_manager_->RemoveObserver(&observer); | |
| 177 } | |
| 178 | |
| 179 TEST_F(VolumeManagerTest, OnFileSystemBeingUnmounted) { | |
| 180 LoggingObserver observer; | |
| 181 volume_manager_->AddObserver(&observer); | |
| 182 | |
| 183 volume_manager_->OnFileSystemBeingUnmounted(); | 176 volume_manager_->OnFileSystemBeingUnmounted(); |
| 184 | 177 |
| 185 ASSERT_EQ(1U, observer.events().size()); | 178 ASSERT_EQ(2U, observer.events().size()); |
| 186 const LoggingObserver::Event& event = observer.events()[0]; | 179 event = observer.events()[1]; |
| 187 EXPECT_EQ(LoggingObserver::Event::VOLUME_UNMOUNTED, event.type); | 180 EXPECT_EQ(LoggingObserver::Event::VOLUME_UNMOUNTED, event.type); |
| 188 EXPECT_EQ(drive::util::GetDriveMountPointPath(profile_.get()).AsUTF8Unsafe(), | 181 EXPECT_EQ(drive::util::GetDriveMountPointPath(profile_.get()).AsUTF8Unsafe(), |
| 189 event.device_path); | 182 event.device_path); |
| 190 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error); | 183 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error); |
| 191 | 184 |
| 192 volume_manager_->RemoveObserver(&observer); | 185 volume_manager_->RemoveObserver(&observer); |
| 193 } | 186 } |
| 194 | 187 |
| 188 TEST_F(VolumeManagerTest, OnDriveFileSystemUnmountWithoutMount) { |
| 189 LoggingObserver observer; |
| 190 volume_manager_->AddObserver(&observer); |
| 191 volume_manager_->OnFileSystemBeingUnmounted(); |
| 192 |
| 193 // Unmount event for non-mounted volume is not reported. |
| 194 ASSERT_EQ(0U, observer.events().size()); |
| 195 volume_manager_->RemoveObserver(&observer); |
| 196 } |
| 197 |
| 195 TEST_F(VolumeManagerTest, OnDiskEvent_Hidden) { | 198 TEST_F(VolumeManagerTest, OnDiskEvent_Hidden) { |
| 196 LoggingObserver observer; | 199 LoggingObserver observer; |
| 197 volume_manager_->AddObserver(&observer); | 200 volume_manager_->AddObserver(&observer); |
| 198 | 201 |
| 199 const bool kIsHidden = true; | 202 const bool kIsHidden = true; |
| 200 const chromeos::disks::DiskMountManager::Disk kDisk( | 203 const chromeos::disks::DiskMountManager::Disk kDisk( |
| 201 "device1", "", "", "", "", "", "", "", "", "", "", "", | 204 "device1", "", "", "", "", "", "", "", "", "", "", "", |
| 202 chromeos::DEVICE_TYPE_UNKNOWN, 0, false, false, false, false, kIsHidden); | 205 chromeos::DEVICE_TYPE_UNKNOWN, 0, false, false, false, false, kIsHidden); |
| 203 | 206 |
| 204 volume_manager_->OnDiskEvent( | 207 volume_manager_->OnDiskEvent( |
| (...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 428 | 431 |
| 429 volume_manager_->OnDeviceEvent( | 432 volume_manager_->OnDeviceEvent( |
| 430 chromeos::disks::DiskMountManager::DEVICE_SCANNED, "device1"); | 433 chromeos::disks::DiskMountManager::DEVICE_SCANNED, "device1"); |
| 431 | 434 |
| 432 // SCANNED event is just ignored. | 435 // SCANNED event is just ignored. |
| 433 EXPECT_EQ(0U, observer.events().size()); | 436 EXPECT_EQ(0U, observer.events().size()); |
| 434 | 437 |
| 435 volume_manager_->RemoveObserver(&observer); | 438 volume_manager_->RemoveObserver(&observer); |
| 436 } | 439 } |
| 437 | 440 |
| 438 TEST_F(VolumeManagerTest, OnMountEvent_Mounting) { | 441 TEST_F(VolumeManagerTest, OnMountEvent_MountingAndUnmounting) { |
| 439 LoggingObserver observer; | 442 LoggingObserver observer; |
| 440 volume_manager_->AddObserver(&observer); | 443 volume_manager_->AddObserver(&observer); |
| 441 | 444 |
| 442 const chromeos::disks::DiskMountManager::MountPointInfo kMountPoint( | 445 const chromeos::disks::DiskMountManager::MountPointInfo kMountPoint( |
| 443 "device1", | 446 "device1", |
| 444 "mount1", | 447 "mount1", |
| 445 chromeos::MOUNT_TYPE_DEVICE, | 448 chromeos::MOUNT_TYPE_DEVICE, |
| 446 chromeos::disks::MOUNT_CONDITION_NONE); | 449 chromeos::disks::MOUNT_CONDITION_NONE); |
| 447 | 450 |
| 448 volume_manager_->OnMountEvent(chromeos::disks::DiskMountManager::MOUNTING, | 451 volume_manager_->OnMountEvent(chromeos::disks::DiskMountManager::MOUNTING, |
| 449 chromeos::MOUNT_ERROR_NONE, | 452 chromeos::MOUNT_ERROR_NONE, |
| 450 kMountPoint); | 453 kMountPoint); |
| 451 | 454 |
| 452 ASSERT_EQ(1U, observer.events().size()); | 455 ASSERT_EQ(1U, observer.events().size()); |
| 453 const LoggingObserver::Event& event = observer.events()[0]; | 456 LoggingObserver::Event event = observer.events()[0]; |
| 454 EXPECT_EQ(LoggingObserver::Event::VOLUME_MOUNTED, event.type); | 457 EXPECT_EQ(LoggingObserver::Event::VOLUME_MOUNTED, event.type); |
| 455 EXPECT_EQ("device1", event.device_path); | 458 EXPECT_EQ("device1", event.device_path); |
| 456 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error); | 459 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error); |
| 457 EXPECT_FALSE(event.is_remounting); | 460 EXPECT_FALSE(event.is_remounting); |
| 458 | 461 |
| 462 volume_manager_->OnMountEvent(chromeos::disks::DiskMountManager::UNMOUNTING, |
| 463 chromeos::MOUNT_ERROR_NONE, |
| 464 kMountPoint); |
| 465 |
| 466 ASSERT_EQ(2U, observer.events().size()); |
| 467 event = observer.events()[1]; |
| 468 EXPECT_EQ(LoggingObserver::Event::VOLUME_UNMOUNTED, event.type); |
| 469 EXPECT_EQ("device1", event.device_path); |
| 470 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error); |
| 471 |
| 459 volume_manager_->RemoveObserver(&observer); | 472 volume_manager_->RemoveObserver(&observer); |
| 460 } | 473 } |
| 461 | 474 |
| 462 TEST_F(VolumeManagerTest, OnMountEvent_Remounting) { | 475 TEST_F(VolumeManagerTest, OnMountEvent_Remounting) { |
| 463 scoped_ptr<chromeos::disks::DiskMountManager::Disk> disk( | 476 scoped_ptr<chromeos::disks::DiskMountManager::Disk> disk( |
| 464 new chromeos::disks::DiskMountManager::Disk( | 477 new chromeos::disks::DiskMountManager::Disk( |
| 465 "device1", "", "", "", "", "", "", "", "", "", "uuid1", "", | 478 "device1", "", "", "", "", "", "", "", "", "", "uuid1", "", |
| 466 chromeos::DEVICE_TYPE_UNKNOWN, 0, | 479 chromeos::DEVICE_TYPE_UNKNOWN, 0, |
| 467 false, false, false, false, false)); | 480 false, false, false, false, false)); |
| 468 disk_mount_manager_->AddDiskForTest(disk.release()); | 481 disk_mount_manager_->AddDiskForTest(disk.release()); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 503 ASSERT_EQ(1U, observer.events().size()); | 516 ASSERT_EQ(1U, observer.events().size()); |
| 504 const LoggingObserver::Event& event = observer.events()[0]; | 517 const LoggingObserver::Event& event = observer.events()[0]; |
| 505 EXPECT_EQ(LoggingObserver::Event::VOLUME_MOUNTED, event.type); | 518 EXPECT_EQ(LoggingObserver::Event::VOLUME_MOUNTED, event.type); |
| 506 EXPECT_EQ("device1", event.device_path); | 519 EXPECT_EQ("device1", event.device_path); |
| 507 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error); | 520 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error); |
| 508 EXPECT_TRUE(event.is_remounting); | 521 EXPECT_TRUE(event.is_remounting); |
| 509 | 522 |
| 510 volume_manager_->RemoveObserver(&observer); | 523 volume_manager_->RemoveObserver(&observer); |
| 511 } | 524 } |
| 512 | 525 |
| 513 TEST_F(VolumeManagerTest, OnMountEvent_Unmounting) { | 526 TEST_F(VolumeManagerTest, OnMountEvent_UnmountingWithoutMounting) { |
| 514 LoggingObserver observer; | 527 LoggingObserver observer; |
| 515 volume_manager_->AddObserver(&observer); | 528 volume_manager_->AddObserver(&observer); |
| 516 | 529 |
| 517 const chromeos::disks::DiskMountManager::MountPointInfo kMountPoint( | 530 const chromeos::disks::DiskMountManager::MountPointInfo kMountPoint( |
| 518 "device1", | 531 "device1", |
| 519 "mount1", | 532 "mount1", |
| 520 chromeos::MOUNT_TYPE_DEVICE, | 533 chromeos::MOUNT_TYPE_DEVICE, |
| 521 chromeos::disks::MOUNT_CONDITION_NONE); | 534 chromeos::disks::MOUNT_CONDITION_NONE); |
| 522 | 535 |
| 523 volume_manager_->OnMountEvent(chromeos::disks::DiskMountManager::UNMOUNTING, | 536 volume_manager_->OnMountEvent(chromeos::disks::DiskMountManager::UNMOUNTING, |
| 524 chromeos::MOUNT_ERROR_NONE, | 537 chromeos::MOUNT_ERROR_NONE, |
| 525 kMountPoint); | 538 kMountPoint); |
| 526 | 539 |
| 527 ASSERT_EQ(1U, observer.events().size()); | 540 // Unmount event for a disk not mounted in this manager is not reported. |
| 528 const LoggingObserver::Event& event = observer.events()[0]; | 541 ASSERT_EQ(0U, observer.events().size()); |
| 529 EXPECT_EQ(LoggingObserver::Event::VOLUME_UNMOUNTED, event.type); | |
| 530 EXPECT_EQ("device1", event.device_path); | |
| 531 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error); | |
| 532 | 542 |
| 533 volume_manager_->RemoveObserver(&observer); | 543 volume_manager_->RemoveObserver(&observer); |
| 534 } | 544 } |
| 535 | 545 |
| 536 TEST_F(VolumeManagerTest, OnFormatEvent_Started) { | 546 TEST_F(VolumeManagerTest, OnFormatEvent_Started) { |
| 537 LoggingObserver observer; | 547 LoggingObserver observer; |
| 538 volume_manager_->AddObserver(&observer); | 548 volume_manager_->AddObserver(&observer); |
| 539 | 549 |
| 540 volume_manager_->OnFormatEvent( | 550 volume_manager_->OnFormatEvent( |
| 541 chromeos::disks::DiskMountManager::FORMAT_STARTED, | 551 chromeos::disks::DiskMountManager::FORMAT_STARTED, |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 665 VolumeInfo volume_info; | 675 VolumeInfo volume_info; |
| 666 ASSERT_FALSE(volume_manager_->FindVolumeInfoById( | 676 ASSERT_FALSE(volume_manager_->FindVolumeInfoById( |
| 667 "nonexistent", &volume_info)); | 677 "nonexistent", &volume_info)); |
| 668 ASSERT_TRUE(volume_manager_->FindVolumeInfoById( | 678 ASSERT_TRUE(volume_manager_->FindVolumeInfoById( |
| 669 "downloads:Downloads", &volume_info)); | 679 "downloads:Downloads", &volume_info)); |
| 670 EXPECT_EQ("downloads:Downloads", volume_info.volume_id); | 680 EXPECT_EQ("downloads:Downloads", volume_info.volume_id); |
| 671 EXPECT_EQ(VOLUME_TYPE_DOWNLOADS_DIRECTORY, volume_info.type); | 681 EXPECT_EQ(VOLUME_TYPE_DOWNLOADS_DIRECTORY, volume_info.type); |
| 672 } | 682 } |
| 673 | 683 |
| 674 } // namespace file_manager | 684 } // namespace file_manager |
| OLD | NEW |