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 <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
430 const chromeos::disks::DiskMountManager::Disk kDisk( | 430 const chromeos::disks::DiskMountManager::Disk kDisk( |
431 "device1", "", "", "", "", "", "", "", "", "", "", "", | 431 "device1", "", "", "", "", "", "", "", "", "", "", "", |
432 chromeos::DEVICE_TYPE_UNKNOWN, 0, false, false, true, false, false, | 432 chromeos::DEVICE_TYPE_UNKNOWN, 0, false, false, true, false, false, |
433 false); | 433 false); |
434 volume_manager()->OnDiskEvent( | 434 volume_manager()->OnDiskEvent( |
435 chromeos::disks::DiskMountManager::DISK_CHANGED, &kDisk); | 435 chromeos::disks::DiskMountManager::DISK_CHANGED, &kDisk); |
436 | 436 |
437 EXPECT_EQ(1U, observer.events().size()); | 437 EXPECT_EQ(1U, observer.events().size()); |
438 EXPECT_EQ(1U, disk_mount_manager_->mount_requests().size()); | 438 EXPECT_EQ(1U, disk_mount_manager_->mount_requests().size()); |
439 EXPECT_EQ(0U, disk_mount_manager_->unmount_requests().size()); | 439 EXPECT_EQ(0U, disk_mount_manager_->unmount_requests().size()); |
| 440 // Read-write mode by default. |
| 441 EXPECT_FALSE(disk_mount_manager_->mount_requests()[0].read_only); |
440 | 442 |
441 volume_manager()->RemoveObserver(&observer); | 443 volume_manager()->RemoveObserver(&observer); |
442 } | 444 } |
| 445 |
| 446 TEST_F(VolumeManagerTest, OnDiskEvent_ChangedInReadonly) { |
| 447 profile()->GetPrefs()->SetBoolean(prefs::kExternalStorageReadOnly, true); |
| 448 |
| 449 // Changed event should cause mounting (if possible). |
| 450 LoggingObserver observer; |
| 451 volume_manager()->AddObserver(&observer); |
| 452 |
| 453 const chromeos::disks::DiskMountManager::Disk kDisk( |
| 454 "device1", "", "", "", "", "", "", "", "", "", "", "", |
| 455 chromeos::DEVICE_TYPE_UNKNOWN, 0, false, false, true, false, false, |
| 456 false); |
| 457 volume_manager()->OnDiskEvent(chromeos::disks::DiskMountManager::DISK_CHANGED, |
| 458 &kDisk); |
| 459 |
| 460 EXPECT_EQ(1U, observer.events().size()); |
| 461 EXPECT_EQ(1U, disk_mount_manager_->mount_requests().size()); |
| 462 EXPECT_EQ(0U, disk_mount_manager_->unmount_requests().size()); |
| 463 // Shoule mount a disk in read-only mode. |
| 464 EXPECT_TRUE(disk_mount_manager_->mount_requests()[0].read_only); |
| 465 |
| 466 volume_manager()->RemoveObserver(&observer); |
| 467 } |
443 | 468 |
444 TEST_F(VolumeManagerTest, OnDeviceEvent_Added) { | 469 TEST_F(VolumeManagerTest, OnDeviceEvent_Added) { |
445 LoggingObserver observer; | 470 LoggingObserver observer; |
446 volume_manager()->AddObserver(&observer); | 471 volume_manager()->AddObserver(&observer); |
447 | 472 |
448 volume_manager()->OnDeviceEvent( | 473 volume_manager()->OnDeviceEvent( |
449 chromeos::disks::DiskMountManager::DEVICE_ADDED, "device1"); | 474 chromeos::disks::DiskMountManager::DEVICE_ADDED, "device1"); |
450 | 475 |
451 ASSERT_EQ(1U, observer.events().size()); | 476 ASSERT_EQ(1U, observer.events().size()); |
452 const LoggingObserver::Event& event = observer.events()[0]; | 477 const LoggingObserver::Event& event = observer.events()[0]; |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
517 volume_manager()->RemoveObserver(&observer); | 542 volume_manager()->RemoveObserver(&observer); |
518 } | 543 } |
519 | 544 |
520 TEST_F(VolumeManagerTest, OnMountEvent_Remounting) { | 545 TEST_F(VolumeManagerTest, OnMountEvent_Remounting) { |
521 std::unique_ptr<chromeos::disks::DiskMountManager::Disk> disk( | 546 std::unique_ptr<chromeos::disks::DiskMountManager::Disk> disk( |
522 new chromeos::disks::DiskMountManager::Disk( | 547 new chromeos::disks::DiskMountManager::Disk( |
523 "device1", "", "", "", "", "", "", "", "", "", "uuid1", "", | 548 "device1", "", "", "", "", "", "", "", "", "", "uuid1", "", |
524 chromeos::DEVICE_TYPE_UNKNOWN, 0, false, false, false, false, false, | 549 chromeos::DEVICE_TYPE_UNKNOWN, 0, false, false, false, false, false, |
525 false)); | 550 false)); |
526 disk_mount_manager_->AddDiskForTest(disk.release()); | 551 disk_mount_manager_->AddDiskForTest(disk.release()); |
527 disk_mount_manager_->MountPath( | 552 disk_mount_manager_->MountPath("device1", "", "", chromeos::MOUNT_TYPE_DEVICE, |
528 "device1", "", "", chromeos::MOUNT_TYPE_DEVICE); | 553 chromeos::MOUNT_ACCESS_MODE_READ_WRITE); |
529 | 554 |
530 const chromeos::disks::DiskMountManager::MountPointInfo kMountPoint( | 555 const chromeos::disks::DiskMountManager::MountPointInfo kMountPoint( |
531 "device1", | 556 "device1", |
532 "mount1", | 557 "mount1", |
533 chromeos::MOUNT_TYPE_DEVICE, | 558 chromeos::MOUNT_TYPE_DEVICE, |
534 chromeos::disks::MOUNT_CONDITION_NONE); | 559 chromeos::disks::MOUNT_CONDITION_NONE); |
535 | 560 |
536 volume_manager()->OnMountEvent( | 561 volume_manager()->OnMountEvent( |
537 chromeos::disks::DiskMountManager::MOUNTING, | 562 chromeos::disks::DiskMountManager::MOUNTING, |
538 chromeos::MOUNT_ERROR_NONE, | 563 chromeos::MOUNT_ERROR_NONE, |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
667 EXPECT_EQ("device1", event.device_path); | 692 EXPECT_EQ("device1", event.device_path); |
668 EXPECT_FALSE(event.success); | 693 EXPECT_FALSE(event.success); |
669 | 694 |
670 EXPECT_EQ(0U, disk_mount_manager_->mount_requests().size()); | 695 EXPECT_EQ(0U, disk_mount_manager_->mount_requests().size()); |
671 | 696 |
672 volume_manager()->RemoveObserver(&observer); | 697 volume_manager()->RemoveObserver(&observer); |
673 } | 698 } |
674 | 699 |
675 TEST_F(VolumeManagerTest, OnExternalStorageDisabledChanged) { | 700 TEST_F(VolumeManagerTest, OnExternalStorageDisabledChanged) { |
676 // Here create two mount points. | 701 // Here create two mount points. |
677 disk_mount_manager_->MountPath( | 702 disk_mount_manager_->MountPath("mount1", "", "", chromeos::MOUNT_TYPE_DEVICE, |
678 "mount1", "", "", chromeos::MOUNT_TYPE_DEVICE); | 703 chromeos::MOUNT_ACCESS_MODE_READ_WRITE); |
679 disk_mount_manager_->MountPath( | 704 disk_mount_manager_->MountPath("mount2", "", "", chromeos::MOUNT_TYPE_DEVICE, |
680 "mount2", "", "", chromeos::MOUNT_TYPE_DEVICE); | 705 chromeos::MOUNT_ACCESS_MODE_READ_ONLY); |
681 | 706 |
682 // Initially, there are two mount points. | 707 // Initially, there are two mount points. |
683 ASSERT_EQ(2U, disk_mount_manager_->mount_points().size()); | 708 ASSERT_EQ(2U, disk_mount_manager_->mount_points().size()); |
684 ASSERT_EQ(0U, disk_mount_manager_->unmount_requests().size()); | 709 ASSERT_EQ(0U, disk_mount_manager_->unmount_requests().size()); |
685 | 710 |
686 // Emulate to set kExternalStorageDisabled to false. | 711 // Emulate to set kExternalStorageDisabled to false. |
687 profile()->GetPrefs()->SetBoolean(prefs::kExternalStorageDisabled, false); | 712 profile()->GetPrefs()->SetBoolean(prefs::kExternalStorageDisabled, false); |
688 volume_manager()->OnExternalStorageDisabledChanged(); | 713 volume_manager()->OnExternalStorageDisabledChanged(); |
689 | 714 |
690 // Expect no effects. | 715 // Expect no effects. |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
873 // Detach | 898 // Detach |
874 volume_manager()->OnRemovableStorageDetached(info); | 899 volume_manager()->OnRemovableStorageDetached(info); |
875 ASSERT_EQ(2u, observer.events().size()); | 900 ASSERT_EQ(2u, observer.events().size()); |
876 EXPECT_EQ(LoggingObserver::Event::VOLUME_UNMOUNTED, | 901 EXPECT_EQ(LoggingObserver::Event::VOLUME_UNMOUNTED, |
877 observer.events()[1].type); | 902 observer.events()[1].type); |
878 | 903 |
879 EXPECT_FALSE(volume.get()); | 904 EXPECT_FALSE(volume.get()); |
880 } | 905 } |
881 | 906 |
882 } // namespace file_manager | 907 } // namespace file_manager |
OLD | NEW |