Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(307)

Side by Side Diff: chrome/browser/chromeos/file_manager/volume_manager_unittest.cc

Issue 2201023002: Change access mode of disk devices when mounting based on config. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add test case to check read_only parameter to disk mount manager. Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698