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

Side by Side Diff: chrome/browser/chromeos/extensions/file_manager/device_event_router_unittest.cc

Issue 2472643002: Suppress warnings on unplugging read-only removable devices. (Closed)
Patch Set: Created 4 years, 1 month 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
« no previous file with comments | « chrome/browser/chromeos/extensions/file_manager/device_event_router.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/extensions/file_manager/device_event_router.h" 5 #include "chrome/browser/chromeos/extensions/file_manager/device_event_router.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 } // namespace 61 } // namespace
62 62
63 class DeviceEventRouterTest : public testing::Test { 63 class DeviceEventRouterTest : public testing::Test {
64 protected: 64 protected:
65 void SetUp() override { 65 void SetUp() override {
66 device_event_router.reset(new DeviceEventRouterImpl()); 66 device_event_router.reset(new DeviceEventRouterImpl());
67 } 67 }
68 68
69 // Creates a disk instance with |device_path| and |mount_path| for testing. 69 // Creates a disk instance with |device_path| and |mount_path| for testing.
70 Disk CreateTestDisk(const std::string& device_path, 70 Disk CreateTestDisk(const std::string& device_path,
71 const std::string& mount_path) { 71 const std::string& mount_path,
72 bool is_read_only_hardware) {
72 return Disk(device_path, 73 return Disk(device_path,
73 mount_path, 74 mount_path,
74 "", 75 "",
75 "", 76 "",
76 "", 77 "",
77 "", 78 "",
78 "", 79 "",
79 "", 80 "",
80 "", 81 "",
81 "", 82 "",
82 "", 83 "",
83 device_path, 84 device_path,
84 chromeos::DEVICE_TYPE_UNKNOWN, 85 chromeos::DEVICE_TYPE_UNKNOWN,
85 0, 86 0,
86 false, 87 false,
88 is_read_only_hardware,
87 false, 89 false,
88 false, 90 false,
89 false, 91 false,
90 false,
91 false); 92 false);
92 } 93 }
93 94
94 std::unique_ptr<DeviceEventRouterImpl> device_event_router; 95 std::unique_ptr<DeviceEventRouterImpl> device_event_router;
95 96
96 private: 97 private:
97 base::MessageLoop message_loop_; 98 base::MessageLoop message_loop_;
98 }; 99 };
99 100
100 TEST_F(DeviceEventRouterTest, AddAndRemoveDevice) { 101 TEST_F(DeviceEventRouterTest, AddAndRemoveDevice) {
101 const Disk disk1 = CreateTestDisk("/device/test", "/mount/path1"); 102 const Disk disk1 = CreateTestDisk("/device/test", "/mount/path1", false);
102 const Disk disk1_unmounted = CreateTestDisk("/device/test", ""); 103 const Disk disk1_unmounted = CreateTestDisk("/device/test", "", false);
103 std::unique_ptr<Volume> volume(Volume::CreateForTesting( 104 std::unique_ptr<Volume> volume(Volume::CreateForTesting(
104 base::FilePath(FILE_PATH_LITERAL("/device/test")), 105 base::FilePath(FILE_PATH_LITERAL("/device/test")),
105 base::FilePath(FILE_PATH_LITERAL("/mount/path1")))); 106 base::FilePath(FILE_PATH_LITERAL("/mount/path1"))));
106 device_event_router->OnDeviceAdded("/device/test"); 107 device_event_router->OnDeviceAdded("/device/test");
107 device_event_router->OnDiskAdded(disk1, true); 108 device_event_router->OnDiskAdded(disk1, true);
108 device_event_router->OnVolumeMounted(chromeos::MOUNT_ERROR_NONE, 109 device_event_router->OnVolumeMounted(chromeos::MOUNT_ERROR_NONE,
109 *volume.get()); 110 *volume.get());
110 device_event_router->OnVolumeUnmounted(chromeos::MOUNT_ERROR_NONE, 111 device_event_router->OnVolumeUnmounted(chromeos::MOUNT_ERROR_NONE,
111 *volume.get()); 112 *volume.get());
112 device_event_router->OnDiskRemoved(disk1_unmounted); 113 device_event_router->OnDiskRemoved(disk1_unmounted);
113 device_event_router->OnDeviceRemoved("/device/test"); 114 device_event_router->OnDeviceRemoved("/device/test");
114 ASSERT_EQ(1u, device_event_router->events.size()); 115 ASSERT_EQ(1u, device_event_router->events.size());
115 EXPECT_EQ(file_manager_private::DEVICE_EVENT_TYPE_REMOVED, 116 EXPECT_EQ(file_manager_private::DEVICE_EVENT_TYPE_REMOVED,
116 device_event_router->events[0].type); 117 device_event_router->events[0].type);
117 EXPECT_EQ("/device/test", device_event_router->events[0].device_path); 118 EXPECT_EQ("/device/test", device_event_router->events[0].device_path);
118 } 119 }
119 120
120 TEST_F(DeviceEventRouterTest, HardUnplugged) { 121 TEST_F(DeviceEventRouterTest, HardUnplugged) {
121 const Disk disk1 = CreateTestDisk("/device/test", "/mount/path1"); 122 const Disk disk1 = CreateTestDisk("/device/test", "/mount/path1", false);
122 const Disk disk2 = CreateTestDisk("/device/test", "/mount/path2"); 123 const Disk disk2 = CreateTestDisk("/device/test", "/mount/path2", false);
123 device_event_router->OnDeviceAdded("/device/test"); 124 device_event_router->OnDeviceAdded("/device/test");
124 device_event_router->OnDiskAdded(disk1, true); 125 device_event_router->OnDiskAdded(disk1, true);
125 device_event_router->OnDiskAdded(disk2, true); 126 device_event_router->OnDiskAdded(disk2, true);
126 device_event_router->OnDiskRemoved(disk1); 127 device_event_router->OnDiskRemoved(disk1);
127 device_event_router->OnDiskRemoved(disk2); 128 device_event_router->OnDiskRemoved(disk2);
128 device_event_router->OnDeviceRemoved(kTestDevicePath); 129 device_event_router->OnDeviceRemoved(kTestDevicePath);
129 base::RunLoop().RunUntilIdle(); 130 base::RunLoop().RunUntilIdle();
130 ASSERT_EQ(2u, device_event_router->events.size()); 131 ASSERT_EQ(2u, device_event_router->events.size());
131 EXPECT_EQ(file_manager_private::DEVICE_EVENT_TYPE_HARD_UNPLUGGED, 132 EXPECT_EQ(file_manager_private::DEVICE_EVENT_TYPE_HARD_UNPLUGGED,
132 device_event_router->events[0].type); 133 device_event_router->events[0].type);
133 EXPECT_EQ("/device/test", device_event_router->events[0].device_path); 134 EXPECT_EQ("/device/test", device_event_router->events[0].device_path);
134 EXPECT_EQ(file_manager_private::DEVICE_EVENT_TYPE_REMOVED, 135 EXPECT_EQ(file_manager_private::DEVICE_EVENT_TYPE_REMOVED,
135 device_event_router->events[1].type); 136 device_event_router->events[1].type);
136 EXPECT_EQ("/device/test", device_event_router->events[1].device_path); 137 EXPECT_EQ("/device/test", device_event_router->events[1].device_path);
137 } 138 }
138 139
140 TEST_F(DeviceEventRouterTest, HardUnplugReadOnlyVolume) {
141 const Disk disk1 = CreateTestDisk("/device/test", "/mount/path1", true);
142 const Disk disk2 = CreateTestDisk("/device/test", "/mount/path2", true);
143 device_event_router->OnDeviceAdded("/device/test");
144 device_event_router->OnDiskAdded(disk1, true);
145 device_event_router->OnDiskAdded(disk2, true);
146 device_event_router->OnDiskRemoved(disk1);
147 device_event_router->OnDiskRemoved(disk2);
148 device_event_router->OnDeviceRemoved(kTestDevicePath);
149 base::RunLoop().RunUntilIdle();
150 ASSERT_EQ(1u, device_event_router->events.size());
151 EXPECT_EQ(file_manager_private::DEVICE_EVENT_TYPE_REMOVED,
152 device_event_router->events[0].type);
153 EXPECT_EQ("/device/test", device_event_router->events[0].device_path);
154 // Should not warn hard unplug because the volumes are read-only.
155 }
156
139 } // namespace file_manager 157 } // namespace file_manager
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/extensions/file_manager/device_event_router.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698