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

Side by Side Diff: chrome/browser/usb/usb_permission_context_unittest.cc

Issue 1382783002: Store USB device permissions in website settings. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Convert WebUSBPermissionStore to a PermissionContext. Created 5 years, 2 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
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/usb/usb_permission_context.h"
6 #include "chrome/browser/usb/usb_permission_context_factory.h"
7 #include "chrome/test/base/testing_profile.h"
8 #include "content/public/test/test_browser_thread_bundle.h"
9 #include "device/core/device_client.h"
10 #include "device/usb/mock_usb_device.h"
11 #include "device/usb/mock_usb_service.h"
12
13 using device::MockUsbDevice;
14 using device::UsbDevice;
15
16 namespace {
17
18 class TestDeviceClient : public device::DeviceClient {
19 public:
20 TestDeviceClient() {}
21 ~TestDeviceClient() override {}
22
23 device::MockUsbService& usb_service() { return usb_service_; }
24
25 private:
26 device::UsbService* GetUsbService() override { return &usb_service_; }
27
28 device::MockUsbService usb_service_;
29 };
30
31 } // namespace
32
33 class UsbPermissionContextTest : public testing::Test {
34 public:
35 UsbPermissionContextTest() {}
36 ~UsbPermissionContextTest() override {}
37
38 protected:
39 Profile* profile() { return &profile_; }
40 device::MockUsbService& usb_service() { return device_client_.usb_service(); }
41
42 private:
43 content::TestBrowserThreadBundle thread_bundle_;
44 TestDeviceClient device_client_;
45 TestingProfile profile_;
46 };
47
48 TEST_F(UsbPermissionContextTest, CheckGrantAndRevokePermission) {
49 GURL origin("https://www.google.com");
50 scoped_refptr<UsbDevice> device =
51 new MockUsbDevice(0, 0, "Google", "Gizmo", "123ABC");
52 usb_service().AddDevice(device);
53 UsbPermissionContext* store =
54 UsbPermissionContextFactory::GetForProfile(profile());
55
56 EXPECT_FALSE(store->HasDevicePermission(origin, device->guid()));
57 store->GrantDevicePermission(origin, device->guid());
58 EXPECT_TRUE(store->HasDevicePermission(origin, device->guid()));
59 store->RevokeDevicePermission(origin, device->guid());
60 EXPECT_FALSE(store->HasDevicePermission(origin, device->guid()));
61 }
62
63 TEST_F(UsbPermissionContextTest, CheckGrantAndRevokeEphemeralPermission) {
64 GURL origin("https://www.google.com");
65 scoped_refptr<UsbDevice> device =
66 new MockUsbDevice(0, 0, "Google", "Gizmo", "");
67 scoped_refptr<UsbDevice> other_device =
68 new MockUsbDevice(0, 0, "Google", "Gizmo", "");
69 usb_service().AddDevice(device);
70 UsbPermissionContext* store =
71 UsbPermissionContextFactory::GetForProfile(profile());
72
73 EXPECT_FALSE(store->HasDevicePermission(origin, device->guid()));
74 store->GrantDevicePermission(origin, device->guid());
75 EXPECT_TRUE(store->HasDevicePermission(origin, device->guid()));
76 store->RevokeDevicePermission(origin, device->guid());
77 EXPECT_FALSE(store->HasDevicePermission(origin, device->guid()));
78 }
79
80 TEST_F(UsbPermissionContextTest, DisconnectDeviceWithPermission) {
81 GURL origin("https://www.google.com");
82 scoped_refptr<UsbDevice> device =
83 new MockUsbDevice(0, 0, "Google", "Gizmo", "123ABC");
84 usb_service().AddDevice(device);
85 UsbPermissionContext* store =
86 UsbPermissionContextFactory::GetForProfile(profile());
87
88 EXPECT_FALSE(store->HasDevicePermission(origin, device->guid()));
89 store->GrantDevicePermission(origin, device->guid());
90 EXPECT_TRUE(store->HasDevicePermission(origin, device->guid()));
91 usb_service().RemoveDevice(device);
92 EXPECT_FALSE(store->HasDevicePermission(origin, device->guid()));
93
94 scoped_refptr<UsbDevice> reconnected_device =
95 new MockUsbDevice(0, 0, "Google", "Gizmo", "123ABC");
96 usb_service().AddDevice(reconnected_device);
97 EXPECT_TRUE(store->HasDevicePermission(origin, reconnected_device->guid()));
98 }
99
100 TEST_F(UsbPermissionContextTest, DisconnectDeviceWithEphemeralPermission) {
101 GURL origin("https://www.google.com");
102 scoped_refptr<UsbDevice> device =
103 new MockUsbDevice(0, 0, "Google", "Gizmo", "");
104 usb_service().AddDevice(device);
105 UsbPermissionContext* store =
106 UsbPermissionContextFactory::GetForProfile(profile());
107
108 EXPECT_FALSE(store->HasDevicePermission(origin, device->guid()));
109 store->GrantDevicePermission(origin, device->guid());
110 EXPECT_TRUE(store->HasDevicePermission(origin, device->guid()));
111 usb_service().RemoveDevice(device);
112 EXPECT_FALSE(store->HasDevicePermission(origin, device->guid()));
113
114 scoped_refptr<UsbDevice> reconnected_device =
115 new MockUsbDevice(0, 0, "Google", "Gizmo", "");
116 usb_service().AddDevice(reconnected_device);
117 EXPECT_FALSE(store->HasDevicePermission(origin, reconnected_device->guid()));
118 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698