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

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

Issue 2445193004: 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 false, 75 false,
75 "", 76 "",
76 "", 77 "",
77 "", 78 "",
78 "", 79 "",
79 "", 80 "",
80 "", 81 "",
81 "", 82 "",
82 "", 83 "",
83 "", 84 "",
84 device_path, 85 device_path,
85 chromeos::DEVICE_TYPE_UNKNOWN, 86 chromeos::DEVICE_TYPE_UNKNOWN,
86 0, 87 0,
87 false, 88 false,
89 is_read_only_hardware,
88 false, 90 false,
89 false, 91 false,
90 false, 92 false,
91 false,
92 false); 93 false);
93 } 94 }
94 95
95 std::unique_ptr<DeviceEventRouterImpl> device_event_router; 96 std::unique_ptr<DeviceEventRouterImpl> device_event_router;
96 97
97 private: 98 private:
98 base::MessageLoop message_loop_; 99 base::MessageLoop message_loop_;
99 }; 100 };
100 101
101 TEST_F(DeviceEventRouterTest, AddAndRemoveDevice) { 102 TEST_F(DeviceEventRouterTest, AddAndRemoveDevice) {
102 const Disk disk1 = CreateTestDisk("/device/test", "/mount/path1"); 103 const Disk disk1 = CreateTestDisk("/device/test", "/mount/path1", false);
103 const Disk disk1_unmounted = CreateTestDisk("/device/test", ""); 104 const Disk disk1_unmounted = CreateTestDisk("/device/test", "", false);
104 std::unique_ptr<Volume> volume(Volume::CreateForTesting( 105 std::unique_ptr<Volume> volume(Volume::CreateForTesting(
105 base::FilePath(FILE_PATH_LITERAL("/device/test")), 106 base::FilePath(FILE_PATH_LITERAL("/device/test")),
106 base::FilePath(FILE_PATH_LITERAL("/mount/path1")))); 107 base::FilePath(FILE_PATH_LITERAL("/mount/path1"))));
107 device_event_router->OnDeviceAdded("/device/test"); 108 device_event_router->OnDeviceAdded("/device/test");
108 device_event_router->OnDiskAdded(disk1, true); 109 device_event_router->OnDiskAdded(disk1, true);
109 device_event_router->OnVolumeMounted(chromeos::MOUNT_ERROR_NONE, 110 device_event_router->OnVolumeMounted(chromeos::MOUNT_ERROR_NONE,
110 *volume.get()); 111 *volume.get());
111 device_event_router->OnVolumeUnmounted(chromeos::MOUNT_ERROR_NONE, 112 device_event_router->OnVolumeUnmounted(chromeos::MOUNT_ERROR_NONE,
112 *volume.get()); 113 *volume.get());
113 device_event_router->OnDiskRemoved(disk1_unmounted); 114 device_event_router->OnDiskRemoved(disk1_unmounted);
114 device_event_router->OnDeviceRemoved("/device/test"); 115 device_event_router->OnDeviceRemoved("/device/test");
115 ASSERT_EQ(1u, device_event_router->events.size()); 116 ASSERT_EQ(1u, device_event_router->events.size());
116 EXPECT_EQ(file_manager_private::DEVICE_EVENT_TYPE_REMOVED, 117 EXPECT_EQ(file_manager_private::DEVICE_EVENT_TYPE_REMOVED,
117 device_event_router->events[0].type); 118 device_event_router->events[0].type);
118 EXPECT_EQ("/device/test", device_event_router->events[0].device_path); 119 EXPECT_EQ("/device/test", device_event_router->events[0].device_path);
119 } 120 }
120 121
121 TEST_F(DeviceEventRouterTest, HardUnplugged) { 122 TEST_F(DeviceEventRouterTest, HardUnplugged) {
122 const Disk disk1 = CreateTestDisk("/device/test", "/mount/path1"); 123 const Disk disk1 = CreateTestDisk("/device/test", "/mount/path1", false);
123 const Disk disk2 = CreateTestDisk("/device/test", "/mount/path2"); 124 const Disk disk2 = CreateTestDisk("/device/test", "/mount/path2", false);
124 device_event_router->OnDeviceAdded("/device/test"); 125 device_event_router->OnDeviceAdded("/device/test");
125 device_event_router->OnDiskAdded(disk1, true); 126 device_event_router->OnDiskAdded(disk1, true);
126 device_event_router->OnDiskAdded(disk2, true); 127 device_event_router->OnDiskAdded(disk2, true);
127 device_event_router->OnDiskRemoved(disk1); 128 device_event_router->OnDiskRemoved(disk1);
128 device_event_router->OnDiskRemoved(disk2); 129 device_event_router->OnDiskRemoved(disk2);
129 device_event_router->OnDeviceRemoved(kTestDevicePath); 130 device_event_router->OnDeviceRemoved(kTestDevicePath);
130 base::RunLoop().RunUntilIdle(); 131 base::RunLoop().RunUntilIdle();
131 ASSERT_EQ(2u, device_event_router->events.size()); 132 ASSERT_EQ(2u, device_event_router->events.size());
132 EXPECT_EQ(file_manager_private::DEVICE_EVENT_TYPE_HARD_UNPLUGGED, 133 EXPECT_EQ(file_manager_private::DEVICE_EVENT_TYPE_HARD_UNPLUGGED,
133 device_event_router->events[0].type); 134 device_event_router->events[0].type);
134 EXPECT_EQ("/device/test", device_event_router->events[0].device_path); 135 EXPECT_EQ("/device/test", device_event_router->events[0].device_path);
135 EXPECT_EQ(file_manager_private::DEVICE_EVENT_TYPE_REMOVED, 136 EXPECT_EQ(file_manager_private::DEVICE_EVENT_TYPE_REMOVED,
136 device_event_router->events[1].type); 137 device_event_router->events[1].type);
137 EXPECT_EQ("/device/test", device_event_router->events[1].device_path); 138 EXPECT_EQ("/device/test", device_event_router->events[1].device_path);
138 } 139 }
139 140
141 TEST_F(DeviceEventRouterTest, HardUnplugReadOnlyVolume) {
142 const Disk disk1 = CreateTestDisk("/device/test", "/mount/path1", true);
143 const Disk disk2 = CreateTestDisk("/device/test", "/mount/path2", true);
144 device_event_router->OnDeviceAdded("/device/test");
145 device_event_router->OnDiskAdded(disk1, true);
146 device_event_router->OnDiskAdded(disk2, true);
147 device_event_router->OnDiskRemoved(disk1);
148 device_event_router->OnDiskRemoved(disk2);
149 device_event_router->OnDeviceRemoved(kTestDevicePath);
150 base::RunLoop().RunUntilIdle();
151 ASSERT_EQ(1u, device_event_router->events.size());
152 EXPECT_EQ(file_manager_private::DEVICE_EVENT_TYPE_REMOVED,
153 device_event_router->events[0].type);
154 EXPECT_EQ("/device/test", device_event_router->events[0].device_path);
155 // Should not warn hard unplug because the volumes are read-only.
156 }
157
140 } // namespace file_manager 158 } // 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