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 |