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

Side by Side Diff: chrome/browser/extensions/api/device_permissions_manager_unittest.cc

Issue 826283002: Add support for sending a USB SET_CONFIGURATION request. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 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 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 "base/run_loop.h" 5 #include "base/run_loop.h"
6 #include "base/strings/utf_string_conversions.h" 6 #include "base/strings/utf_string_conversions.h"
7 #include "base/test/values_test_util.h" 7 #include "base/test/values_test_util.h"
8 #include "chrome/browser/extensions/test_extension_environment.h" 8 #include "chrome/browser/extensions/test_extension_environment.h"
9 #include "chrome/test/base/testing_profile.h" 9 #include "chrome/test/base/testing_profile.h"
10 #include "device/usb/usb_device.h" 10 #include "device/usb/usb_device.h"
11 #include "device/usb/usb_device_handle.h" 11 #include "device/usb/usb_device_handle.h"
12 #include "extensions/browser/api/device_permissions_manager.h" 12 #include "extensions/browser/api/device_permissions_manager.h"
13 #include "extensions/browser/extension_prefs.h" 13 #include "extensions/browser/extension_prefs.h"
14 #include "extensions/common/extension.h" 14 #include "extensions/common/extension.h"
15 #include "testing/gmock/include/gmock/gmock.h" 15 #include "testing/gmock/include/gmock/gmock.h"
16 #include "testing/gtest/include/gtest/gtest.h" 16 #include "testing/gtest/include/gtest/gtest.h"
17 17
18 namespace extensions { 18 namespace extensions {
19 19
20 namespace { 20 namespace {
21 21
22 using device::UsbDevice; 22 using device::UsbDevice;
23 using device::UsbDeviceHandle; 23 using device::UsbDeviceHandle;
24 using testing::_;
25 using testing::DoAll;
24 using testing::Return; 26 using testing::Return;
27 using testing::SetArgPointee;
28
29 int next_id;
25 30
26 class MockUsbDevice : public UsbDevice { 31 class MockUsbDevice : public UsbDevice {
27 public: 32 public:
28 MockUsbDevice(const std::string& serial_number, uint32 unique_id) 33 explicit MockUsbDevice(const std::string& serial_number)
29 : UsbDevice(0, 0, unique_id), serial_number_(serial_number) {} 34 : UsbDevice(0, 0, next_id++) {
35 if (serial_number.empty()) {
36 EXPECT_CALL(*this, GetSerialNumber(_)).WillRepeatedly(Return(false));
37 } else {
38 EXPECT_CALL(*this, GetSerialNumber(_))
39 .WillRepeatedly(
40 DoAll(SetArgPointee<0>(base::ASCIIToUTF16(serial_number)),
41 Return(true)));
42 }
30 43
44 EXPECT_CALL(*this, GetProduct(_))
45 .WillRepeatedly(
46 DoAll(SetArgPointee<0>(base::ASCIIToUTF16("Test Product")),
47 Return(true)));
48 EXPECT_CALL(*this, GetManufacturer(_))
49 .WillRepeatedly(
50 DoAll(SetArgPointee<0>(base::ASCIIToUTF16("Test Manufacturer")),
51 Return(true)));
52 }
53
54 MOCK_METHOD2(RequestUsbAccess, void(int, const base::Callback<void(bool)>&));
31 MOCK_METHOD0(Open, scoped_refptr<UsbDeviceHandle>()); 55 MOCK_METHOD0(Open, scoped_refptr<UsbDeviceHandle>());
32 MOCK_METHOD1(Close, bool(scoped_refptr<UsbDeviceHandle>)); 56 MOCK_METHOD1(Close, bool(scoped_refptr<UsbDeviceHandle>));
33 #if defined(OS_CHROMEOS) 57 MOCK_METHOD0(GetConfiguration, const device::UsbConfigDescriptor*());
34 MOCK_METHOD2(RequestUsbAccess, void(int, const base::Callback<void(bool)>&)); 58 MOCK_METHOD1(GetManufacturer, bool(base::string16*));
35 #endif 59 MOCK_METHOD1(GetProduct, bool(base::string16*));
36 MOCK_METHOD0(GetConfiguration, const device::UsbConfigDescriptor&()); 60 MOCK_METHOD1(GetSerialNumber, bool(base::string16*));
37
38 virtual bool GetManufacturer(base::string16* manufacturer) {
39 *manufacturer = base::ASCIIToUTF16("Test Manufacturer");
40 return true;
41 }
42
43 virtual bool GetProduct(base::string16* product) {
44 *product = base::ASCIIToUTF16("Test Product");
45 return true;
46 }
47
48 virtual bool GetSerialNumber(base::string16* serial_number) override {
49 if (serial_number_.empty()) {
50 // Return false as if the device does not have or failed to return its
51 // serial number.
52 return false;
53 }
54
55 *serial_number = base::UTF8ToUTF16(serial_number_);
56 return true;
57 }
58 61
59 void NotifyDisconnect() { UsbDevice::NotifyDisconnect(); } 62 void NotifyDisconnect() { UsbDevice::NotifyDisconnect(); }
60 63
61 private: 64 private:
62 virtual ~MockUsbDevice() {} 65 virtual ~MockUsbDevice() {}
63
64 const std::string serial_number_;
65 }; 66 };
66 67
67 void AllowUsbDevice(DevicePermissionsManager* manager, 68 void AllowUsbDevice(DevicePermissionsManager* manager,
68 const Extension* extension, 69 const Extension* extension,
69 scoped_refptr<UsbDevice> device) { 70 scoped_refptr<UsbDevice> device) {
70 // If the device cannot provide any of these strings they will simply by 71 // If the device cannot provide any of these strings they will simply by
71 // empty. 72 // empty.
72 base::string16 product; 73 base::string16 product;
73 device->GetProduct(&product); 74 device->GetProduct(&product);
74 base::string16 manufacturer; 75 base::string16 manufacturer;
(...skipping 16 matching lines...) Expand all
91 "{" 92 "{"
92 " \"app\": {" 93 " \"app\": {"
93 " \"background\": {" 94 " \"background\": {"
94 " \"scripts\": [\"background.js\"]" 95 " \"scripts\": [\"background.js\"]"
95 " }" 96 " }"
96 " }," 97 " },"
97 " \"permissions\": [" 98 " \"permissions\": ["
98 " \"usb\"" 99 " \"usb\""
99 " ]" 100 " ]"
100 "}")); 101 "}"));
101 device0 = new MockUsbDevice("ABCDE", 0); 102 device0_ = new MockUsbDevice("ABCDE");
102 device1 = new MockUsbDevice("", 1); 103 device1_ = new MockUsbDevice("");
103 device2 = new MockUsbDevice("12345", 2); 104 device2_ = new MockUsbDevice("12345");
104 device3 = new MockUsbDevice("", 3); 105 device3_ = new MockUsbDevice("");
105 } 106 }
106 107
107 extensions::TestExtensionEnvironment env_; 108 extensions::TestExtensionEnvironment env_;
108 const extensions::Extension* extension_; 109 const extensions::Extension* extension_;
109 scoped_refptr<MockUsbDevice> device0; 110 scoped_refptr<MockUsbDevice> device0_;
110 scoped_refptr<MockUsbDevice> device1; 111 scoped_refptr<MockUsbDevice> device1_;
111 scoped_refptr<MockUsbDevice> device2; 112 scoped_refptr<MockUsbDevice> device2_;
112 scoped_refptr<MockUsbDevice> device3; 113 scoped_refptr<MockUsbDevice> device3_;
113 }; 114 };
114 115
115 TEST_F(DevicePermissionsManagerTest, AllowAndClearDevices) { 116 TEST_F(DevicePermissionsManagerTest, AllowAndClearDevices) {
116 DevicePermissionsManager* manager = 117 DevicePermissionsManager* manager =
117 DevicePermissionsManager::Get(env_.profile()); 118 DevicePermissionsManager::Get(env_.profile());
118 AllowUsbDevice(manager, extension_, device0); 119 AllowUsbDevice(manager, extension_, device0_);
119 AllowUsbDevice(manager, extension_, device1); 120 AllowUsbDevice(manager, extension_, device1_);
120 121
121 scoped_ptr<DevicePermissions> device_permissions = 122 scoped_ptr<DevicePermissions> device_permissions =
122 manager->GetForExtension(extension_->id()); 123 manager->GetForExtension(extension_->id());
123 scoped_refptr<DevicePermissionEntry> device0_entry = 124 scoped_refptr<DevicePermissionEntry> device0_entry =
124 device_permissions->FindEntry(device0); 125 device_permissions->FindEntry(device0_);
125 ASSERT_TRUE(device0_entry.get()); 126 ASSERT_TRUE(device0_entry.get());
126 scoped_refptr<DevicePermissionEntry> device1_entry = 127 scoped_refptr<DevicePermissionEntry> device1_entry =
127 device_permissions->FindEntry(device1); 128 device_permissions->FindEntry(device1_);
128 ASSERT_TRUE(device1_entry.get()); 129 ASSERT_TRUE(device1_entry.get());
129 ASSERT_FALSE(device_permissions->FindEntry(device2).get()); 130 ASSERT_FALSE(device_permissions->FindEntry(device2_).get());
130 ASSERT_FALSE(device_permissions->FindEntry(device3).get()); 131 ASSERT_FALSE(device_permissions->FindEntry(device3_).get());
131 ASSERT_EQ(2U, device_permissions->entries().size()); 132 ASSERT_EQ(2U, device_permissions->entries().size());
132 133
133 ASSERT_EQ(base::ASCIIToUTF16( 134 ASSERT_EQ(base::ASCIIToUTF16(
134 "Test Product from Test Manufacturer (serial number ABCDE)"), 135 "Test Product from Test Manufacturer (serial number ABCDE)"),
135 device0_entry->GetPermissionMessageString()); 136 device0_entry->GetPermissionMessageString());
136 ASSERT_EQ(base::ASCIIToUTF16("Test Product from Test Manufacturer"), 137 ASSERT_EQ(base::ASCIIToUTF16("Test Product from Test Manufacturer"),
137 device1_entry->GetPermissionMessageString()); 138 device1_entry->GetPermissionMessageString());
138 139
139 manager->Clear(extension_->id()); 140 manager->Clear(extension_->id());
140 141
141 device_permissions = manager->GetForExtension(extension_->id()); 142 device_permissions = manager->GetForExtension(extension_->id());
142 ASSERT_FALSE(device_permissions->FindEntry(device0).get()); 143 ASSERT_FALSE(device_permissions->FindEntry(device0_).get());
143 ASSERT_FALSE(device_permissions->FindEntry(device1).get()); 144 ASSERT_FALSE(device_permissions->FindEntry(device1_).get());
144 ASSERT_FALSE(device_permissions->FindEntry(device2).get()); 145 ASSERT_FALSE(device_permissions->FindEntry(device2_).get());
145 ASSERT_FALSE(device_permissions->FindEntry(device3).get()); 146 ASSERT_FALSE(device_permissions->FindEntry(device3_).get());
146 ASSERT_EQ(0U, device_permissions->entries().size()); 147 ASSERT_EQ(0U, device_permissions->entries().size());
147 148
148 // After clearing device it should be possible to grant permission again. 149 // After clearing device it should be possible to grant permission again.
149 AllowUsbDevice(manager, extension_, device0); 150 AllowUsbDevice(manager, extension_, device0_);
150 AllowUsbDevice(manager, extension_, device1); 151 AllowUsbDevice(manager, extension_, device1_);
151 152
152 device_permissions = manager->GetForExtension(extension_->id()); 153 device_permissions = manager->GetForExtension(extension_->id());
153 ASSERT_TRUE(device_permissions->FindEntry(device0).get()); 154 ASSERT_TRUE(device_permissions->FindEntry(device0_).get());
154 ASSERT_TRUE(device_permissions->FindEntry(device1).get()); 155 ASSERT_TRUE(device_permissions->FindEntry(device1_).get());
155 ASSERT_FALSE(device_permissions->FindEntry(device2).get()); 156 ASSERT_FALSE(device_permissions->FindEntry(device2_).get());
156 ASSERT_FALSE(device_permissions->FindEntry(device3).get()); 157 ASSERT_FALSE(device_permissions->FindEntry(device3_).get());
157 } 158 }
158 159
159 TEST_F(DevicePermissionsManagerTest, SuspendExtension) { 160 TEST_F(DevicePermissionsManagerTest, SuspendExtension) {
160 DevicePermissionsManager* manager = 161 DevicePermissionsManager* manager =
161 DevicePermissionsManager::Get(env_.profile()); 162 DevicePermissionsManager::Get(env_.profile());
162 AllowUsbDevice(manager, extension_, device0); 163 AllowUsbDevice(manager, extension_, device0_);
163 AllowUsbDevice(manager, extension_, device1); 164 AllowUsbDevice(manager, extension_, device1_);
164 165
165 scoped_ptr<DevicePermissions> device_permissions = 166 scoped_ptr<DevicePermissions> device_permissions =
166 manager->GetForExtension(extension_->id()); 167 manager->GetForExtension(extension_->id());
167 ASSERT_TRUE(device_permissions->FindEntry(device0).get()); 168 ASSERT_TRUE(device_permissions->FindEntry(device0_).get());
168 ASSERT_TRUE(device_permissions->FindEntry(device1).get()); 169 ASSERT_TRUE(device_permissions->FindEntry(device1_).get());
169 ASSERT_FALSE(device_permissions->FindEntry(device2).get()); 170 ASSERT_FALSE(device_permissions->FindEntry(device2_).get());
170 ASSERT_FALSE(device_permissions->FindEntry(device3).get()); 171 ASSERT_FALSE(device_permissions->FindEntry(device3_).get());
171 172
172 manager->OnBackgroundHostClose(extension_->id()); 173 manager->OnBackgroundHostClose(extension_->id());
173 174
174 device_permissions = manager->GetForExtension(extension_->id()); 175 device_permissions = manager->GetForExtension(extension_->id());
175 // Device 0 is still registered because its serial number has been stored in 176 // Device 0 is still registered because its serial number has been stored in
176 // ExtensionPrefs, it is "persistent". 177 // ExtensionPrefs, it is "persistent".
177 ASSERT_TRUE(device_permissions->FindEntry(device0).get()); 178 ASSERT_TRUE(device_permissions->FindEntry(device0_).get());
178 // Device 1 does not have uniquely identifying traits and so permission to 179 // Device 1 does not have uniquely identifying traits and so permission to
179 // open it has been dropped when the app's windows have closed and the 180 // open it has been dropped when the app's windows have closed and the
180 // background page has been suspended. 181 // background page has been suspended.
181 ASSERT_FALSE(device_permissions->FindEntry(device1).get()); 182 ASSERT_FALSE(device_permissions->FindEntry(device1_).get());
182 ASSERT_FALSE(device_permissions->FindEntry(device2).get()); 183 ASSERT_FALSE(device_permissions->FindEntry(device2_).get());
183 ASSERT_FALSE(device_permissions->FindEntry(device3).get()); 184 ASSERT_FALSE(device_permissions->FindEntry(device3_).get());
184 } 185 }
185 186
186 TEST_F(DevicePermissionsManagerTest, DisconnectDevice) { 187 TEST_F(DevicePermissionsManagerTest, DisconnectDevice) {
187 DevicePermissionsManager* manager = 188 DevicePermissionsManager* manager =
188 DevicePermissionsManager::Get(env_.profile()); 189 DevicePermissionsManager::Get(env_.profile());
189 AllowUsbDevice(manager, extension_, device0); 190 AllowUsbDevice(manager, extension_, device0_);
190 AllowUsbDevice(manager, extension_, device1); 191 AllowUsbDevice(manager, extension_, device1_);
191 192
192 scoped_ptr<DevicePermissions> device_permissions = 193 scoped_ptr<DevicePermissions> device_permissions =
193 manager->GetForExtension(extension_->id()); 194 manager->GetForExtension(extension_->id());
194 ASSERT_TRUE(device_permissions->FindEntry(device0).get()); 195 ASSERT_TRUE(device_permissions->FindEntry(device0_).get());
195 ASSERT_TRUE(device_permissions->FindEntry(device1).get()); 196 ASSERT_TRUE(device_permissions->FindEntry(device1_).get());
196 ASSERT_FALSE(device_permissions->FindEntry(device2).get()); 197 ASSERT_FALSE(device_permissions->FindEntry(device2_).get());
197 ASSERT_FALSE(device_permissions->FindEntry(device3).get()); 198 ASSERT_FALSE(device_permissions->FindEntry(device3_).get());
198 199
199 device0->NotifyDisconnect(); 200 device0_->NotifyDisconnect();
200 device1->NotifyDisconnect(); 201 device1_->NotifyDisconnect();
201 202
202 device_permissions = manager->GetForExtension(extension_->id()); 203 device_permissions = manager->GetForExtension(extension_->id());
203 // Device 0 will be accessible when it is reconnected because it can be 204 // Device 0 will be accessible when it is reconnected because it can be
204 // recognized by its serial number. 205 // recognized by its serial number.
205 ASSERT_TRUE(device_permissions->FindEntry(device0).get()); 206 ASSERT_TRUE(device_permissions->FindEntry(device0_).get());
206 // Device 1 does not have a serial number and cannot be distinguished from 207 // Device 1 does not have a serial number and cannot be distinguished from
207 // any other device of the same model so the app must request permission again 208 // any other device of the same model so the app must request permission again
208 // when it is reconnected. 209 // when it is reconnected.
209 ASSERT_FALSE(device_permissions->FindEntry(device1).get()); 210 ASSERT_FALSE(device_permissions->FindEntry(device1_).get());
210 ASSERT_FALSE(device_permissions->FindEntry(device2).get()); 211 ASSERT_FALSE(device_permissions->FindEntry(device2_).get());
211 ASSERT_FALSE(device_permissions->FindEntry(device3).get()); 212 ASSERT_FALSE(device_permissions->FindEntry(device3_).get());
212 } 213 }
213 214
214 TEST_F(DevicePermissionsManagerTest, RevokeAndRegrantAccess) { 215 TEST_F(DevicePermissionsManagerTest, RevokeAndRegrantAccess) {
215 DevicePermissionsManager* manager = 216 DevicePermissionsManager* manager =
216 DevicePermissionsManager::Get(env_.profile()); 217 DevicePermissionsManager::Get(env_.profile());
217 AllowUsbDevice(manager, extension_, device0); 218 AllowUsbDevice(manager, extension_, device0_);
218 AllowUsbDevice(manager, extension_, device1); 219 AllowUsbDevice(manager, extension_, device1_);
219 220
220 scoped_ptr<DevicePermissions> device_permissions = 221 scoped_ptr<DevicePermissions> device_permissions =
221 manager->GetForExtension(extension_->id()); 222 manager->GetForExtension(extension_->id());
222 scoped_refptr<DevicePermissionEntry> device0_entry = 223 scoped_refptr<DevicePermissionEntry> device0_entry =
223 device_permissions->FindEntry(device0); 224 device_permissions->FindEntry(device0_);
224 ASSERT_TRUE(device0_entry.get()); 225 ASSERT_TRUE(device0_entry.get());
225 scoped_refptr<DevicePermissionEntry> device1_entry = 226 scoped_refptr<DevicePermissionEntry> device1_entry =
226 device_permissions->FindEntry(device1); 227 device_permissions->FindEntry(device1_);
227 ASSERT_TRUE(device1_entry.get()); 228 ASSERT_TRUE(device1_entry.get());
228 229
229 manager->RemoveEntry(extension_->id(), device0_entry); 230 manager->RemoveEntry(extension_->id(), device0_entry);
230 device_permissions = manager->GetForExtension(extension_->id()); 231 device_permissions = manager->GetForExtension(extension_->id());
231 ASSERT_FALSE(device_permissions->FindEntry(device0).get()); 232 ASSERT_FALSE(device_permissions->FindEntry(device0_).get());
232 ASSERT_TRUE(device_permissions->FindEntry(device1).get()); 233 ASSERT_TRUE(device_permissions->FindEntry(device1_).get());
233 234
234 AllowUsbDevice(manager, extension_, device0); 235 AllowUsbDevice(manager, extension_, device0_);
235 device_permissions = manager->GetForExtension(extension_->id()); 236 device_permissions = manager->GetForExtension(extension_->id());
236 ASSERT_TRUE(device_permissions->FindEntry(device0).get()); 237 ASSERT_TRUE(device_permissions->FindEntry(device0_).get());
237 ASSERT_TRUE(device_permissions->FindEntry(device1).get()); 238 ASSERT_TRUE(device_permissions->FindEntry(device1_).get());
238 239
239 manager->RemoveEntry(extension_->id(), device1_entry); 240 manager->RemoveEntry(extension_->id(), device1_entry);
240 device_permissions = manager->GetForExtension(extension_->id()); 241 device_permissions = manager->GetForExtension(extension_->id());
241 ASSERT_TRUE(device_permissions->FindEntry(device0).get()); 242 ASSERT_TRUE(device_permissions->FindEntry(device0_).get());
242 ASSERT_FALSE(device_permissions->FindEntry(device1).get()); 243 ASSERT_FALSE(device_permissions->FindEntry(device1_).get());
243 244
244 AllowUsbDevice(manager, extension_, device1); 245 AllowUsbDevice(manager, extension_, device1_);
245 device_permissions = manager->GetForExtension(extension_->id()); 246 device_permissions = manager->GetForExtension(extension_->id());
246 ASSERT_TRUE(device_permissions->FindEntry(device0).get()); 247 ASSERT_TRUE(device_permissions->FindEntry(device0_).get());
247 ASSERT_TRUE(device_permissions->FindEntry(device1).get()); 248 ASSERT_TRUE(device_permissions->FindEntry(device1_).get());
248 } 249 }
249 250
250 TEST_F(DevicePermissionsManagerTest, UpdateLastUsed) { 251 TEST_F(DevicePermissionsManagerTest, UpdateLastUsed) {
251 DevicePermissionsManager* manager = 252 DevicePermissionsManager* manager =
252 DevicePermissionsManager::Get(env_.profile()); 253 DevicePermissionsManager::Get(env_.profile());
253 AllowUsbDevice(manager, extension_, device0); 254 AllowUsbDevice(manager, extension_, device0_);
254 255
255 scoped_ptr<DevicePermissions> device_permissions = 256 scoped_ptr<DevicePermissions> device_permissions =
256 manager->GetForExtension(extension_->id()); 257 manager->GetForExtension(extension_->id());
257 scoped_refptr<DevicePermissionEntry> device0_entry = 258 scoped_refptr<DevicePermissionEntry> device0_entry =
258 device_permissions->FindEntry(device0); 259 device_permissions->FindEntry(device0_);
259 ASSERT_TRUE(device0_entry->last_used().is_null()); 260 ASSERT_TRUE(device0_entry->last_used().is_null());
260 261
261 manager->UpdateLastUsed(extension_->id(), device0_entry); 262 manager->UpdateLastUsed(extension_->id(), device0_entry);
262 device_permissions = manager->GetForExtension(extension_->id()); 263 device_permissions = manager->GetForExtension(extension_->id());
263 device0_entry = device_permissions->FindEntry(device0); 264 device0_entry = device_permissions->FindEntry(device0_);
264 ASSERT_FALSE(device0_entry->last_used().is_null()); 265 ASSERT_FALSE(device0_entry->last_used().is_null());
265 } 266 }
266 267
267 TEST_F(DevicePermissionsManagerTest, LoadPrefs) { 268 TEST_F(DevicePermissionsManagerTest, LoadPrefs) {
268 scoped_ptr<base::Value> prefs_value = base::test::ParseJson( 269 scoped_ptr<base::Value> prefs_value = base::test::ParseJson(
269 "[" 270 "["
270 " {" 271 " {"
271 " \"product_id\": 0," 272 " \"product_id\": 0,"
272 " \"serial_number\": \"ABCDE\"," 273 " \"serial_number\": \"ABCDE\","
273 " \"type\": \"usb\"," 274 " \"type\": \"usb\","
274 " \"vendor_id\": 0" 275 " \"vendor_id\": 0"
275 " }" 276 " }"
276 "]"); 277 "]");
277 env_.GetExtensionPrefs()->UpdateExtensionPref( 278 env_.GetExtensionPrefs()->UpdateExtensionPref(
278 extension_->id(), "devices", prefs_value.release()); 279 extension_->id(), "devices", prefs_value.release());
279 280
280 DevicePermissionsManager* manager = 281 DevicePermissionsManager* manager =
281 DevicePermissionsManager::Get(env_.profile()); 282 DevicePermissionsManager::Get(env_.profile());
282 scoped_ptr<DevicePermissions> device_permissions = 283 scoped_ptr<DevicePermissions> device_permissions =
283 manager->GetForExtension(extension_->id()); 284 manager->GetForExtension(extension_->id());
284 ASSERT_TRUE(device_permissions->FindEntry(device0).get()); 285 ASSERT_TRUE(device_permissions->FindEntry(device0_).get());
285 ASSERT_FALSE(device_permissions->FindEntry(device1).get()); 286 ASSERT_FALSE(device_permissions->FindEntry(device1_).get());
286 ASSERT_FALSE(device_permissions->FindEntry(device2).get()); 287 ASSERT_FALSE(device_permissions->FindEntry(device2_).get());
287 ASSERT_FALSE(device_permissions->FindEntry(device3).get()); 288 ASSERT_FALSE(device_permissions->FindEntry(device3_).get());
288 } 289 }
289 290
290 } // namespace extensions 291 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698