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

Unified Diff: chromeos/disks/disk_mount_manager_unittest.cc

Issue 2316133002: Fix a bug where read-only volumes were recognized as read-write. (Closed)
Patch Set: Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chromeos/disks/disk_mount_manager.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chromeos/disks/disk_mount_manager_unittest.cc
diff --git a/chromeos/disks/disk_mount_manager_unittest.cc b/chromeos/disks/disk_mount_manager_unittest.cc
index e104750629944de22db7f010562278d0808636f4..03f0d56c4c146a570223658a88e80b72852e3dba 100644
--- a/chromeos/disks/disk_mount_manager_unittest.cc
+++ b/chromeos/disks/disk_mount_manager_unittest.cc
@@ -703,4 +703,31 @@ TEST_F(DiskMountManagerTest, MountPath_RecordAccessMode) {
EXPECT_TRUE(disks.find(kSourcePath2)->second->is_read_only());
}
+TEST_F(DiskMountManagerTest, MountPath_ReadOnlyDevice) {
+ DiskMountManager* manager = DiskMountManager::GetInstance();
+ const std::string kSourceFormat = std::string();
+ const std::string kMountLabel = std::string(); // N/A for MOUNT_TYPE_DEVICE
+
+ // Event handlers of observers should be called.
+ EXPECT_CALL(
+ observer_,
+ OnMountEvent(DiskMountManager::MOUNTING, chromeos::MOUNT_ERROR_NONE,
+ Field(&DiskMountManager::MountPointInfo::mount_path,
+ kReadOnlyMountpath)));
+
+ // Attempt to mount a read-only device in read-write mode.
+ manager->MountPath(kReadOnlyDeviceSource, kSourceFormat, std::string(),
+ chromeos::MOUNT_TYPE_DEVICE,
+ chromeos::MOUNT_ACCESS_MODE_READ_WRITE);
+ // Simulate cros_disks reporting mount completed.
+ fake_cros_disks_client_->SendMountCompletedEvent(
+ chromeos::MOUNT_ERROR_NONE, kReadOnlyDeviceSource,
+ chromeos::MOUNT_TYPE_DEVICE, kReadOnlyMountpath);
+
+ const DiskMountManager::DiskMap& disks = manager->disks();
+ ASSERT_GT(disks.count(kReadOnlyDeviceSource), 0U);
+ // The mounted disk should preserve the read-only flag of the block device.
+ EXPECT_TRUE(disks.find(kReadOnlyDeviceSource)->second->is_read_only());
+}
+
} // namespace
« no previous file with comments | « chromeos/disks/disk_mount_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698