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

Side by Side Diff: chromeos/disks/disk_mount_manager_unittest.cc

Issue 2230713003: Store correct read-only flag of mounted disks. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Use source path of mount info directly to lookup. Comment update. 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "chromeos/dbus/dbus_thread_manager.h" 10 #include "chromeos/dbus/dbus_thread_manager.h"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 // Holds information to create a DiskMOuntManager::MountPointInfo instance. 53 // Holds information to create a DiskMOuntManager::MountPointInfo instance.
54 struct TestMountPointInfo { 54 struct TestMountPointInfo {
55 const char* source_path; 55 const char* source_path;
56 const char* mount_path; 56 const char* mount_path;
57 chromeos::MountType mount_type; 57 chromeos::MountType mount_type;
58 chromeos::disks::MountCondition mount_condition; 58 chromeos::disks::MountCondition mount_condition;
59 }; 59 };
60 60
61 // List of disks held in DiskMountManager at the begining of the test. 61 // List of disks held in DiskMountManager at the begining of the test.
62 const TestDiskInfo kTestDisks[] = { 62 const TestDiskInfo kTestDisks[] = {
63 { 63 {
64 "/device/source_path", 64 "/device/source_path",
65 "/device/mount_path", 65 "/device/mount_path",
66 "/device/prefix/system_path", 66 "/device/prefix/system_path",
67 "/device/file_path", 67 "/device/file_path",
68 "/device/device_label", 68 "/device/device_label",
69 "/device/drive_label", 69 "/device/drive_label",
70 "/device/vendor_id", 70 "/device/vendor_id",
71 "/device/vendor_name", 71 "/device/vendor_name",
72 "/device/product_id", 72 "/device/product_id",
73 "/device/product_name", 73 "/device/product_name",
74 "/device/fs_uuid", 74 "/device/fs_uuid",
75 "/device/prefix", 75 "/device/prefix",
76 chromeos::DEVICE_TYPE_USB, 76 chromeos::DEVICE_TYPE_USB,
77 1073741824, // size in bytes 77 1073741824, // size in bytes
78 false, // is parent 78 false, // is parent
79 false, // is read only 79 false, // is read only
80 true, // has media 80 true, // has media
81 false, // is on boot device 81 false, // is on boot device
82 true, // is on removable device 82 true, // is on removable device
83 false // is hidden 83 false // is hidden
84 }, 84 },
85 { 85 {
86 kReadOnlyDeviceSource, 86 "/device/source_path2",
87 kReadOnlyMountpath, 87 "/device/mount_path2",
88 "/device/prefix/system_path_2", 88 "/device/prefix/system_path2",
89 "/device/file_path_2", 89 "/device/file_path2",
90 "/device/device_label_2", 90 "/device/device_label2",
91 "/device/drive_label_2", 91 "/device/drive_label2",
92 "/device/vendor_id_2", 92 "/device/vendor_id2",
93 "/device/vendor_name_2", 93 "/device/vendor_name2",
94 "/device/product_id_2", 94 "/device/product_id2",
95 "/device/product_name_2", 95 "/device/product_name2",
96 "/device/fs_uuid_2", 96 "/device/fs_uuid2",
97 "/device/prefix", 97 "/device/prefix2",
98 chromeos::DEVICE_TYPE_USB, 98 chromeos::DEVICE_TYPE_SD,
99 1073741824, // size in bytes 99 1073741824, // size in bytes
100 false, // is parent 100 false, // is parent
101 true, // is read only 101 false, // is read only
102 true, // has media 102 true, // has media
103 false, // is on boot device 103 false, // is on boot device
104 true, // is on removable device 104 true, // is on removable device
105 false // is hidden 105 false // is hidden
106 }, 106 },
107 {
108 kReadOnlyDeviceSource,
109 kReadOnlyMountpath,
110 "/device/prefix/system_path_3",
111 "/device/file_path_3",
112 "/device/device_label_3",
113 "/device/drive_label_3",
114 "/device/vendor_id_3",
115 "/device/vendor_name_3",
116 "/device/product_id_3",
117 "/device/product_name_3",
118 "/device/fs_uuid_3",
119 "/device/prefix",
120 chromeos::DEVICE_TYPE_USB,
121 1073741824, // size in bytes
122 false, // is parent
123 true, // is read only
124 true, // has media
125 false, // is on boot device
126 true, // is on removable device
127 false // is hidden
128 },
107 }; 129 };
108 130
109 // List of mount points held in DiskMountManager at the begining of the test. 131 // List of mount points held in DiskMountManager at the begining of the test.
110 const TestMountPointInfo kTestMountPoints[] = { 132 const TestMountPointInfo kTestMountPoints[] = {
111 { 133 {
112 "/archive/source_path", 134 "/archive/source_path",
113 "/archive/mount_path", 135 "/archive/mount_path",
114 chromeos::MOUNT_TYPE_ARCHIVE, 136 chromeos::MOUNT_TYPE_ARCHIVE,
115 chromeos::disks::MOUNT_CONDITION_NONE 137 chromeos::disks::MOUNT_CONDITION_NONE
116 }, 138 },
(...skipping 496 matching lines...) Expand 10 before | Expand all | Expand 10 after
613 EXPECT_EQ(2, fake_cros_disks_client_->format_call_count()); 635 EXPECT_EQ(2, fake_cros_disks_client_->format_call_count());
614 EXPECT_EQ("/device/source_path", 636 EXPECT_EQ("/device/source_path",
615 fake_cros_disks_client_->last_format_device_path()); 637 fake_cros_disks_client_->last_format_device_path());
616 EXPECT_EQ("vfat", fake_cros_disks_client_->last_format_filesystem()); 638 EXPECT_EQ("vfat", fake_cros_disks_client_->last_format_filesystem());
617 639
618 // Simulate cros_disks reporting success. 640 // Simulate cros_disks reporting success.
619 fake_cros_disks_client_->SendFormatCompletedEvent( 641 fake_cros_disks_client_->SendFormatCompletedEvent(
620 chromeos::FORMAT_ERROR_NONE, "/device/source_path"); 642 chromeos::FORMAT_ERROR_NONE, "/device/source_path");
621 } 643 }
622 644
645 TEST_F(DiskMountManagerTest, MountPath_RecordAccessMode) {
646 DiskMountManager* manager = DiskMountManager::GetInstance();
647 const std::string kSourcePath1 = "/device/source_path";
648 const std::string kSourcePath2 = "/device/source_path2";
649 const std::string kSourceFormat = std::string();
650 const std::string kMountLabel = std::string(); // N/A for MOUNT_TYPE_DEVICE
651 // For MountCompleted. Must be non-empty strings.
652 const std::string kMountPath1 = "/media/foo";
653 const std::string kMountPath2 = "/media/bar";
654
655 manager->MountPath(kSourcePath1, kSourceFormat, std::string(),
656 chromeos::MOUNT_TYPE_DEVICE,
657 chromeos::MOUNT_ACCESS_MODE_READ_WRITE);
658 manager->MountPath(kSourcePath2, kSourceFormat, std::string(),
659 chromeos::MOUNT_TYPE_DEVICE,
660 chromeos::MOUNT_ACCESS_MODE_READ_ONLY);
661 // Simulate cros_disks reporting mount completed.
662 fake_cros_disks_client_->SendMountCompletedEvent(
663 chromeos::MOUNT_ERROR_NONE, kSourcePath1, chromeos::MOUNT_TYPE_DEVICE,
664 kMountPath1);
665 fake_cros_disks_client_->SendMountCompletedEvent(
666 chromeos::MOUNT_ERROR_NONE, kSourcePath2, chromeos::MOUNT_TYPE_DEVICE,
667 kMountPath2);
668
669 const DiskMountManager::DiskMap& disks = manager->disks();
670 ASSERT_GT(disks.count(kSourcePath1), 0U);
671 EXPECT_FALSE(disks.find(kSourcePath1)->second->is_read_only());
672 ASSERT_GT(disks.count(kSourcePath2), 0U);
673 EXPECT_TRUE(disks.find(kSourcePath2)->second->is_read_only());
674 }
675
623 } // namespace 676 } // namespace
OLDNEW
« chromeos/disks/disk_mount_manager.cc ('K') | « chromeos/disks/disk_mount_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698