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

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

Issue 2146663002: Move //components/webusb/ to //chrome/browser/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix variable names Created 4 years, 5 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 2015 The Chromium Authors. All rights reserved. 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 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 "components/webusb/webusb_detector.h" 5 #include "chrome/browser/usb/web_usb_detector.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/strings/string16.h" 10 #include "base/strings/string16.h"
11 #include "base/strings/utf_string_conversions.h" 11 #include "base/strings/utf_string_conversions.h"
12 #include "components/webusb/webusb_browser_client.h" 12 #include "chrome/browser/usb/web_usb_browser_client.h"
13 #include "device/core/mock_device_client.h" 13 #include "device/core/mock_device_client.h"
14 #include "device/usb/mock_usb_device.h" 14 #include "device/usb/mock_usb_device.h"
15 #include "device/usb/mock_usb_service.h" 15 #include "device/usb/mock_usb_service.h"
16 #include "testing/gmock/include/gmock/gmock.h" 16 #include "testing/gmock/include/gmock/gmock.h"
17 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
18 #include "url/gurl.h" 18 #include "url/gurl.h"
19 19
20 namespace { 20 namespace {
21 21
22 // usb device product name 22 // usb device product name
23 const char* kProductName_1 = "Google Product A"; 23 const char* kProductName_1 = "Google Product A";
24 const char* kProductName_2 = "Google Product B"; 24 const char* kProductName_2 = "Google Product B";
25 const char* kProductName_3 = "Google Product C"; 25 const char* kProductName_3 = "Google Product C";
26 26
27 // usb device landing page 27 // usb device landing page
28 const char* kLandingPage_1 = "https://www.google.com/A"; 28 const char* kLandingPage_1 = "https://www.google.com/A";
29 const char* kLandingPage_2 = "https://www.google.com/B"; 29 const char* kLandingPage_2 = "https://www.google.com/B";
30 const char* kLandingPage_3 = "https://www.google.com/C"; 30 const char* kLandingPage_3 = "https://www.google.com/C";
31 31
32 } // namespace 32 class MockWebUsbBrowserClient : public WebUsbBrowserClient {
33
34 namespace webusb {
35
36 namespace {
37
38 class MockWebUsbBrowserClient : public webusb::WebUsbBrowserClient {
39 public: 33 public:
40 MockWebUsbBrowserClient() {} 34 MockWebUsbBrowserClient() {}
41 35
42 ~MockWebUsbBrowserClient() override {} 36 ~MockWebUsbBrowserClient() override {}
43 37
44 // webusb::WebUsbBrowserClient implementation 38 // WebUsbBrowserClient:
45 MOCK_METHOD3(OnDeviceAdded, 39 MOCK_METHOD3(OnDeviceAdded,
46 void(const base::string16& product_name, 40 void(const base::string16& product_name,
47 const GURL& landing_page, 41 const GURL& landing_page,
48 const std::string& notification_id)); 42 const std::string& notification_id));
49
50 // webusb::WebUsbBrowserClient implementation
51 MOCK_METHOD1(OnDeviceRemoved, void(const std::string& notification_id)); 43 MOCK_METHOD1(OnDeviceRemoved, void(const std::string& notification_id));
52 44
53 private: 45 private:
54 DISALLOW_COPY_AND_ASSIGN(MockWebUsbBrowserClient); 46 DISALLOW_COPY_AND_ASSIGN(MockWebUsbBrowserClient);
55 }; 47 };
56 48
57 } // namespace 49 } // namespace
58 50
59 class WebUsbDetectorTest : public testing::Test { 51 class WebUsbDetectorTest : public testing::Test {
60 public: 52 public:
61 WebUsbDetectorTest() {} 53 WebUsbDetectorTest() {}
62 54
63 ~WebUsbDetectorTest() override = default; 55 ~WebUsbDetectorTest() override = default;
64 56
65 protected: 57 protected:
66 device::MockDeviceClient device_client_; 58 device::MockDeviceClient device_client_;
67 MockWebUsbBrowserClient mock_webusb_browser_client_; 59 MockWebUsbBrowserClient mock_web_usb_browser_client_;
68 60
69 private: 61 private:
70 DISALLOW_COPY_AND_ASSIGN(WebUsbDetectorTest); 62 DISALLOW_COPY_AND_ASSIGN(WebUsbDetectorTest);
71 }; 63 };
72 64
73 TEST_F(WebUsbDetectorTest, UsbDeviceAdded) { 65 TEST_F(WebUsbDetectorTest, UsbDeviceAdded) {
74 base::string16 product_name = base::UTF8ToUTF16(kProductName_1); 66 base::string16 product_name = base::UTF8ToUTF16(kProductName_1);
75 GURL landing_page(kLandingPage_1); 67 GURL landing_page(kLandingPage_1);
76 scoped_refptr<device::MockUsbDevice> device(new device::MockUsbDevice( 68 scoped_refptr<device::MockUsbDevice> device(new device::MockUsbDevice(
77 0, 1, "Google", kProductName_1, "002", landing_page)); 69 0, 1, "Google", kProductName_1, "002", landing_page));
78 std::string guid = device->guid(); 70 std::string guid = device->guid();
79 71
80 EXPECT_CALL(mock_webusb_browser_client_, 72 EXPECT_CALL(mock_web_usb_browser_client_,
81 OnDeviceAdded(product_name, landing_page, guid)) 73 OnDeviceAdded(product_name, landing_page, guid))
82 .Times(1); 74 .Times(1);
83 EXPECT_CALL(mock_webusb_browser_client_, OnDeviceRemoved(testing::_)) 75 EXPECT_CALL(mock_web_usb_browser_client_, OnDeviceRemoved(testing::_))
84 .Times(0); 76 .Times(0);
85 77
86 webusb::WebUsbDetector webusb_detector(&mock_webusb_browser_client_); 78 WebUsbDetector web_usb_detector(&mock_web_usb_browser_client_);
87 79
88 device_client_.usb_service()->AddDevice(device); 80 device_client_.usb_service()->AddDevice(device);
89 } 81 }
90 82
91 TEST_F(WebUsbDetectorTest, UsbDeviceAddedAndRemoved) { 83 TEST_F(WebUsbDetectorTest, UsbDeviceAddedAndRemoved) {
92 base::string16 product_name = base::UTF8ToUTF16(kProductName_1); 84 base::string16 product_name = base::UTF8ToUTF16(kProductName_1);
93 GURL landing_page(kLandingPage_1); 85 GURL landing_page(kLandingPage_1);
94 scoped_refptr<device::MockUsbDevice> device(new device::MockUsbDevice( 86 scoped_refptr<device::MockUsbDevice> device(new device::MockUsbDevice(
95 0, 1, "Google", kProductName_1, "002", landing_page)); 87 0, 1, "Google", kProductName_1, "002", landing_page));
96 std::string guid = device->guid(); 88 std::string guid = device->guid();
97 89
98 { 90 {
99 testing::InSequence s; 91 testing::InSequence s;
100 EXPECT_CALL(mock_webusb_browser_client_, 92 EXPECT_CALL(mock_web_usb_browser_client_,
101 OnDeviceAdded(product_name, landing_page, guid)) 93 OnDeviceAdded(product_name, landing_page, guid))
102 .Times(1); 94 .Times(1);
103 EXPECT_CALL(mock_webusb_browser_client_, OnDeviceRemoved(guid)).Times(1); 95 EXPECT_CALL(mock_web_usb_browser_client_, OnDeviceRemoved(guid)).Times(1);
104 } 96 }
105 97
106 webusb::WebUsbDetector webusb_detector(&mock_webusb_browser_client_); 98 WebUsbDetector web_usb_detector(&mock_web_usb_browser_client_);
107 99
108 device_client_.usb_service()->AddDevice(device); 100 device_client_.usb_service()->AddDevice(device);
109 device_client_.usb_service()->RemoveDevice(device); 101 device_client_.usb_service()->RemoveDevice(device);
110 } 102 }
111 103
112 TEST_F(WebUsbDetectorTest, UsbDeviceWithoutProductNameAddedAndRemoved) { 104 TEST_F(WebUsbDetectorTest, UsbDeviceWithoutProductNameAddedAndRemoved) {
113 std::string product_name = ""; 105 std::string product_name = "";
114 GURL landing_page(kLandingPage_1); 106 GURL landing_page(kLandingPage_1);
115 scoped_refptr<device::MockUsbDevice> device(new device::MockUsbDevice( 107 scoped_refptr<device::MockUsbDevice> device(new device::MockUsbDevice(
116 0, 1, "Google", product_name, "002", landing_page)); 108 0, 1, "Google", product_name, "002", landing_page));
117 std::string guid = device->guid(); 109 std::string guid = device->guid();
118 110
119 EXPECT_CALL(mock_webusb_browser_client_, 111 EXPECT_CALL(mock_web_usb_browser_client_,
120 OnDeviceAdded(testing::_, testing::_, testing::_)) 112 OnDeviceAdded(testing::_, testing::_, testing::_))
121 .Times(0); 113 .Times(0);
122 EXPECT_CALL(mock_webusb_browser_client_, OnDeviceRemoved(guid)).Times(1); 114 EXPECT_CALL(mock_web_usb_browser_client_, OnDeviceRemoved(guid)).Times(1);
123 115
124 webusb::WebUsbDetector webusb_detector(&mock_webusb_browser_client_); 116 WebUsbDetector web_usb_detector(&mock_web_usb_browser_client_);
125 117
126 device_client_.usb_service()->AddDevice(device); 118 device_client_.usb_service()->AddDevice(device);
127 device_client_.usb_service()->RemoveDevice(device); 119 device_client_.usb_service()->RemoveDevice(device);
128 } 120 }
129 121
130 TEST_F(WebUsbDetectorTest, UsbDeviceWithoutLandingPageAddedAndRemoved) { 122 TEST_F(WebUsbDetectorTest, UsbDeviceWithoutLandingPageAddedAndRemoved) {
131 GURL landing_page(""); 123 GURL landing_page("");
132 scoped_refptr<device::MockUsbDevice> device(new device::MockUsbDevice( 124 scoped_refptr<device::MockUsbDevice> device(new device::MockUsbDevice(
133 0, 1, "Google", kProductName_1, "002", landing_page)); 125 0, 1, "Google", kProductName_1, "002", landing_page));
134 std::string guid = device->guid(); 126 std::string guid = device->guid();
135 127
136 EXPECT_CALL(mock_webusb_browser_client_, 128 EXPECT_CALL(mock_web_usb_browser_client_,
137 OnDeviceAdded(testing::_, testing::_, testing::_)) 129 OnDeviceAdded(testing::_, testing::_, testing::_))
138 .Times(0); 130 .Times(0);
139 EXPECT_CALL(mock_webusb_browser_client_, OnDeviceRemoved(guid)).Times(1); 131 EXPECT_CALL(mock_web_usb_browser_client_, OnDeviceRemoved(guid)).Times(1);
140 132
141 webusb::WebUsbDetector webusb_detector(&mock_webusb_browser_client_); 133 WebUsbDetector web_usb_detector(&mock_web_usb_browser_client_);
142 134
143 device_client_.usb_service()->AddDevice(device); 135 device_client_.usb_service()->AddDevice(device);
144 device_client_.usb_service()->RemoveDevice(device); 136 device_client_.usb_service()->RemoveDevice(device);
145 } 137 }
146 138
147 TEST_F(WebUsbDetectorTest, WebUsbBrowserClientIsNullptr) { 139 TEST_F(WebUsbDetectorTest, WebUsbBrowserClientIsNullptr) {
148 GURL landing_page(kLandingPage_1); 140 GURL landing_page(kLandingPage_1);
149 scoped_refptr<device::MockUsbDevice> device(new device::MockUsbDevice( 141 scoped_refptr<device::MockUsbDevice> device(new device::MockUsbDevice(
150 0, 1, "Google", kProductName_1, "002", landing_page)); 142 0, 1, "Google", kProductName_1, "002", landing_page));
151 143
152 EXPECT_CALL(mock_webusb_browser_client_, 144 EXPECT_CALL(mock_web_usb_browser_client_,
153 OnDeviceAdded(testing::_, testing::_, testing::_)) 145 OnDeviceAdded(testing::_, testing::_, testing::_))
154 .Times(0); 146 .Times(0);
155 EXPECT_CALL(mock_webusb_browser_client_, OnDeviceRemoved(testing::_)) 147 EXPECT_CALL(mock_web_usb_browser_client_, OnDeviceRemoved(testing::_))
156 .Times(0); 148 .Times(0);
157 149
158 webusb::WebUsbDetector webusb_detector(nullptr); 150 WebUsbDetector web_usb_detector(nullptr);
159 151
160 device_client_.usb_service()->AddDevice(device); 152 device_client_.usb_service()->AddDevice(device);
161 device_client_.usb_service()->RemoveDevice(device); 153 device_client_.usb_service()->RemoveDevice(device);
162 } 154 }
163 155
164 TEST_F(WebUsbDetectorTest, NoUsbService) { 156 TEST_F(WebUsbDetectorTest, NoUsbService) {
165 GURL landing_page(kLandingPage_1); 157 GURL landing_page(kLandingPage_1);
166 scoped_refptr<device::MockUsbDevice> device(new device::MockUsbDevice( 158 scoped_refptr<device::MockUsbDevice> device(new device::MockUsbDevice(
167 0, 1, "Google", kProductName_1, "002", landing_page)); 159 0, 1, "Google", kProductName_1, "002", landing_page));
168 160
169 EXPECT_CALL(mock_webusb_browser_client_, 161 EXPECT_CALL(mock_web_usb_browser_client_,
170 OnDeviceAdded(testing::_, testing::_, testing::_)) 162 OnDeviceAdded(testing::_, testing::_, testing::_))
171 .Times(0); 163 .Times(0);
172 EXPECT_CALL(mock_webusb_browser_client_, OnDeviceRemoved(testing::_)) 164 EXPECT_CALL(mock_web_usb_browser_client_, OnDeviceRemoved(testing::_))
173 .Times(0); 165 .Times(0);
174 166
175 webusb::WebUsbDetector webusb_detector(&mock_webusb_browser_client_); 167 WebUsbDetector web_usb_detector(&mock_web_usb_browser_client_);
176 } 168 }
177 169
178 TEST_F(WebUsbDetectorTest, UsbDeviceWasThereBeforeAndThenRemoved) { 170 TEST_F(WebUsbDetectorTest, UsbDeviceWasThereBeforeAndThenRemoved) {
179 GURL landing_page(kLandingPage_1); 171 GURL landing_page(kLandingPage_1);
180 scoped_refptr<device::MockUsbDevice> device(new device::MockUsbDevice( 172 scoped_refptr<device::MockUsbDevice> device(new device::MockUsbDevice(
181 0, 1, "Google", kProductName_1, "002", landing_page)); 173 0, 1, "Google", kProductName_1, "002", landing_page));
182 std::string guid = device->guid(); 174 std::string guid = device->guid();
183 175
184 EXPECT_CALL(mock_webusb_browser_client_, 176 EXPECT_CALL(mock_web_usb_browser_client_,
185 OnDeviceAdded(testing::_, testing::_, testing::_)) 177 OnDeviceAdded(testing::_, testing::_, testing::_))
186 .Times(0); 178 .Times(0);
187 EXPECT_CALL(mock_webusb_browser_client_, OnDeviceRemoved(guid)).Times(1); 179 EXPECT_CALL(mock_web_usb_browser_client_, OnDeviceRemoved(guid)).Times(1);
188 180
189 // usb device was added before webusb_detector was created 181 // usb device was added before web_usb_detector was created
190 device_client_.usb_service()->AddDevice(device); 182 device_client_.usb_service()->AddDevice(device);
191 183
192 webusb::WebUsbDetector webusb_detector(&mock_webusb_browser_client_); 184 WebUsbDetector web_usb_detector(&mock_web_usb_browser_client_);
193 185
194 device_client_.usb_service()->RemoveDevice(device); 186 device_client_.usb_service()->RemoveDevice(device);
195 } 187 }
196 188
197 TEST_F( 189 TEST_F(
198 WebUsbDetectorTest, 190 WebUsbDetectorTest,
199 ThreeUsbDevicesWereThereBeforeAndThenRemovedBeforeWebUsbDetectorWasCreated) { 191 ThreeUsbDevicesWereThereBeforeAndThenRemovedBeforeWebUsbDetectorWasCreated) {
200 base::string16 product_name_1 = base::UTF8ToUTF16(kProductName_1); 192 base::string16 product_name_1 = base::UTF8ToUTF16(kProductName_1);
201 GURL landing_page_1(kLandingPage_1); 193 GURL landing_page_1(kLandingPage_1);
202 scoped_refptr<device::MockUsbDevice> device_1(new device::MockUsbDevice( 194 scoped_refptr<device::MockUsbDevice> device_1(new device::MockUsbDevice(
203 0, 1, "Google", kProductName_1, "002", landing_page_1)); 195 0, 1, "Google", kProductName_1, "002", landing_page_1));
204 std::string guid_1 = device_1->guid(); 196 std::string guid_1 = device_1->guid();
205 197
206 base::string16 product_name_2 = base::UTF8ToUTF16(kProductName_2); 198 base::string16 product_name_2 = base::UTF8ToUTF16(kProductName_2);
207 GURL landing_page_2(kLandingPage_2); 199 GURL landing_page_2(kLandingPage_2);
208 scoped_refptr<device::MockUsbDevice> device_2(new device::MockUsbDevice( 200 scoped_refptr<device::MockUsbDevice> device_2(new device::MockUsbDevice(
209 3, 4, "Google", kProductName_2, "005", landing_page_2)); 201 3, 4, "Google", kProductName_2, "005", landing_page_2));
210 std::string guid_2 = device_2->guid(); 202 std::string guid_2 = device_2->guid();
211 203
212 base::string16 product_name_3 = base::UTF8ToUTF16(kProductName_3); 204 base::string16 product_name_3 = base::UTF8ToUTF16(kProductName_3);
213 GURL landing_page_3(kLandingPage_3); 205 GURL landing_page_3(kLandingPage_3);
214 scoped_refptr<device::MockUsbDevice> device_3(new device::MockUsbDevice( 206 scoped_refptr<device::MockUsbDevice> device_3(new device::MockUsbDevice(
215 6, 7, "Google", kProductName_3, "008", landing_page_3)); 207 6, 7, "Google", kProductName_3, "008", landing_page_3));
216 std::string guid_3 = device_3->guid(); 208 std::string guid_3 = device_3->guid();
217 209
218 EXPECT_CALL(mock_webusb_browser_client_, 210 EXPECT_CALL(mock_web_usb_browser_client_,
219 OnDeviceAdded(product_name_1, landing_page_1, guid_1)) 211 OnDeviceAdded(product_name_1, landing_page_1, guid_1))
220 .Times(0); 212 .Times(0);
221 EXPECT_CALL(mock_webusb_browser_client_, 213 EXPECT_CALL(mock_web_usb_browser_client_,
222 OnDeviceAdded(product_name_2, landing_page_2, guid_2)) 214 OnDeviceAdded(product_name_2, landing_page_2, guid_2))
223 .Times(0); 215 .Times(0);
224 EXPECT_CALL(mock_webusb_browser_client_, 216 EXPECT_CALL(mock_web_usb_browser_client_,
225 OnDeviceAdded(product_name_3, landing_page_3, guid_3)) 217 OnDeviceAdded(product_name_3, landing_page_3, guid_3))
226 .Times(0); 218 .Times(0);
227 219
228 EXPECT_CALL(mock_webusb_browser_client_, OnDeviceRemoved(guid_1)).Times(0); 220 EXPECT_CALL(mock_web_usb_browser_client_, OnDeviceRemoved(guid_1)).Times(0);
229 EXPECT_CALL(mock_webusb_browser_client_, OnDeviceRemoved(guid_2)).Times(0); 221 EXPECT_CALL(mock_web_usb_browser_client_, OnDeviceRemoved(guid_2)).Times(0);
230 EXPECT_CALL(mock_webusb_browser_client_, OnDeviceRemoved(guid_3)).Times(0); 222 EXPECT_CALL(mock_web_usb_browser_client_, OnDeviceRemoved(guid_3)).Times(0);
231 223
232 // three usb devices were added and removed before webusb_detector was 224 // three usb devices were added and removed before web_usb_detector was
233 // created 225 // created
234 device_client_.usb_service()->AddDevice(device_1); 226 device_client_.usb_service()->AddDevice(device_1);
235 device_client_.usb_service()->AddDevice(device_2); 227 device_client_.usb_service()->AddDevice(device_2);
236 device_client_.usb_service()->AddDevice(device_3); 228 device_client_.usb_service()->AddDevice(device_3);
237 229
238 device_client_.usb_service()->RemoveDevice(device_1); 230 device_client_.usb_service()->RemoveDevice(device_1);
239 device_client_.usb_service()->RemoveDevice(device_2); 231 device_client_.usb_service()->RemoveDevice(device_2);
240 device_client_.usb_service()->RemoveDevice(device_3); 232 device_client_.usb_service()->RemoveDevice(device_3);
241 233
242 webusb::WebUsbDetector webusb_detector(&mock_webusb_browser_client_); 234 WebUsbDetector web_usb_detector(&mock_web_usb_browser_client_);
243 } 235 }
244 236
245 TEST_F( 237 TEST_F(
246 WebUsbDetectorTest, 238 WebUsbDetectorTest,
247 ThreeUsbDevicesWereThereBeforeAndThenRemovedAfterWebUsbDetectorWasCreated) { 239 ThreeUsbDevicesWereThereBeforeAndThenRemovedAfterWebUsbDetectorWasCreated) {
248 base::string16 product_name_1 = base::UTF8ToUTF16(kProductName_1); 240 base::string16 product_name_1 = base::UTF8ToUTF16(kProductName_1);
249 GURL landing_page_1(kLandingPage_1); 241 GURL landing_page_1(kLandingPage_1);
250 scoped_refptr<device::MockUsbDevice> device_1(new device::MockUsbDevice( 242 scoped_refptr<device::MockUsbDevice> device_1(new device::MockUsbDevice(
251 0, 1, "Google", kProductName_1, "002", landing_page_1)); 243 0, 1, "Google", kProductName_1, "002", landing_page_1));
252 std::string guid_1 = device_1->guid(); 244 std::string guid_1 = device_1->guid();
253 245
254 base::string16 product_name_2 = base::UTF8ToUTF16(kProductName_2); 246 base::string16 product_name_2 = base::UTF8ToUTF16(kProductName_2);
255 GURL landing_page_2(kLandingPage_2); 247 GURL landing_page_2(kLandingPage_2);
256 scoped_refptr<device::MockUsbDevice> device_2(new device::MockUsbDevice( 248 scoped_refptr<device::MockUsbDevice> device_2(new device::MockUsbDevice(
257 3, 4, "Google", kProductName_2, "005", landing_page_2)); 249 3, 4, "Google", kProductName_2, "005", landing_page_2));
258 std::string guid_2 = device_2->guid(); 250 std::string guid_2 = device_2->guid();
259 251
260 base::string16 product_name_3 = base::UTF8ToUTF16(kProductName_3); 252 base::string16 product_name_3 = base::UTF8ToUTF16(kProductName_3);
261 GURL landing_page_3(kLandingPage_3); 253 GURL landing_page_3(kLandingPage_3);
262 scoped_refptr<device::MockUsbDevice> device_3(new device::MockUsbDevice( 254 scoped_refptr<device::MockUsbDevice> device_3(new device::MockUsbDevice(
263 6, 7, "Google", kProductName_3, "008", landing_page_3)); 255 6, 7, "Google", kProductName_3, "008", landing_page_3));
264 std::string guid_3 = device_3->guid(); 256 std::string guid_3 = device_3->guid();
265 257
266 EXPECT_CALL(mock_webusb_browser_client_, 258 EXPECT_CALL(mock_web_usb_browser_client_,
267 OnDeviceAdded(product_name_1, landing_page_1, guid_1)) 259 OnDeviceAdded(product_name_1, landing_page_1, guid_1))
268 .Times(0); 260 .Times(0);
269 EXPECT_CALL(mock_webusb_browser_client_, 261 EXPECT_CALL(mock_web_usb_browser_client_,
270 OnDeviceAdded(product_name_2, landing_page_2, guid_2)) 262 OnDeviceAdded(product_name_2, landing_page_2, guid_2))
271 .Times(0); 263 .Times(0);
272 EXPECT_CALL(mock_webusb_browser_client_, 264 EXPECT_CALL(mock_web_usb_browser_client_,
273 OnDeviceAdded(product_name_3, landing_page_3, guid_3)) 265 OnDeviceAdded(product_name_3, landing_page_3, guid_3))
274 .Times(0); 266 .Times(0);
275 267
276 { 268 {
277 testing::InSequence s; 269 testing::InSequence s;
278 270
279 EXPECT_CALL(mock_webusb_browser_client_, OnDeviceRemoved(guid_1)).Times(1); 271 EXPECT_CALL(mock_web_usb_browser_client_, OnDeviceRemoved(guid_1)).Times(1);
280 EXPECT_CALL(mock_webusb_browser_client_, OnDeviceRemoved(guid_2)).Times(1); 272 EXPECT_CALL(mock_web_usb_browser_client_, OnDeviceRemoved(guid_2)).Times(1);
281 EXPECT_CALL(mock_webusb_browser_client_, OnDeviceRemoved(guid_3)).Times(1); 273 EXPECT_CALL(mock_web_usb_browser_client_, OnDeviceRemoved(guid_3)).Times(1);
282 } 274 }
283 275
284 // three usb devices were added before webusb_detector was created 276 // three usb devices were added before web_usb_detector was created
285 device_client_.usb_service()->AddDevice(device_1); 277 device_client_.usb_service()->AddDevice(device_1);
286 device_client_.usb_service()->AddDevice(device_2); 278 device_client_.usb_service()->AddDevice(device_2);
287 device_client_.usb_service()->AddDevice(device_3); 279 device_client_.usb_service()->AddDevice(device_3);
288 280
289 webusb::WebUsbDetector webusb_detector(&mock_webusb_browser_client_); 281 WebUsbDetector web_usb_detector(&mock_web_usb_browser_client_);
290 282
291 device_client_.usb_service()->RemoveDevice(device_1); 283 device_client_.usb_service()->RemoveDevice(device_1);
292 device_client_.usb_service()->RemoveDevice(device_2); 284 device_client_.usb_service()->RemoveDevice(device_2);
293 device_client_.usb_service()->RemoveDevice(device_3); 285 device_client_.usb_service()->RemoveDevice(device_3);
294 } 286 }
295 287
296 TEST_F(WebUsbDetectorTest, 288 TEST_F(WebUsbDetectorTest,
297 TwoUsbDevicesWereThereBeforeAndThenRemovedAndNewUsbDeviceAdded) { 289 TwoUsbDevicesWereThereBeforeAndThenRemovedAndNewUsbDeviceAdded) {
298 base::string16 product_name_1 = base::UTF8ToUTF16(kProductName_1); 290 base::string16 product_name_1 = base::UTF8ToUTF16(kProductName_1);
299 GURL landing_page_1(kLandingPage_1); 291 GURL landing_page_1(kLandingPage_1);
300 scoped_refptr<device::MockUsbDevice> device_1(new device::MockUsbDevice( 292 scoped_refptr<device::MockUsbDevice> device_1(new device::MockUsbDevice(
301 0, 1, "Google", kProductName_1, "002", landing_page_1)); 293 0, 1, "Google", kProductName_1, "002", landing_page_1));
302 std::string guid_1 = device_1->guid(); 294 std::string guid_1 = device_1->guid();
303 295
304 base::string16 product_name_2 = base::UTF8ToUTF16(kProductName_2); 296 base::string16 product_name_2 = base::UTF8ToUTF16(kProductName_2);
305 GURL landing_page_2(kLandingPage_2); 297 GURL landing_page_2(kLandingPage_2);
306 scoped_refptr<device::MockUsbDevice> device_2(new device::MockUsbDevice( 298 scoped_refptr<device::MockUsbDevice> device_2(new device::MockUsbDevice(
307 3, 4, "Google", kProductName_2, "005", landing_page_2)); 299 3, 4, "Google", kProductName_2, "005", landing_page_2));
308 std::string guid_2 = device_2->guid(); 300 std::string guid_2 = device_2->guid();
309 301
310 base::string16 product_name_3 = base::UTF8ToUTF16(kProductName_3); 302 base::string16 product_name_3 = base::UTF8ToUTF16(kProductName_3);
311 GURL landing_page_3(kLandingPage_3); 303 GURL landing_page_3(kLandingPage_3);
312 scoped_refptr<device::MockUsbDevice> device_3(new device::MockUsbDevice( 304 scoped_refptr<device::MockUsbDevice> device_3(new device::MockUsbDevice(
313 6, 7, "Google", kProductName_3, "008", landing_page_3)); 305 6, 7, "Google", kProductName_3, "008", landing_page_3));
314 std::string guid_3 = device_3->guid(); 306 std::string guid_3 = device_3->guid();
315 307
316 EXPECT_CALL(mock_webusb_browser_client_, 308 EXPECT_CALL(mock_web_usb_browser_client_,
317 OnDeviceAdded(product_name_1, landing_page_1, guid_1)) 309 OnDeviceAdded(product_name_1, landing_page_1, guid_1))
318 .Times(0); 310 .Times(0);
319 EXPECT_CALL(mock_webusb_browser_client_, 311 EXPECT_CALL(mock_web_usb_browser_client_,
320 OnDeviceAdded(product_name_3, landing_page_3, guid_3)) 312 OnDeviceAdded(product_name_3, landing_page_3, guid_3))
321 .Times(0); 313 .Times(0);
322 314
323 { 315 {
324 testing::InSequence s; 316 testing::InSequence s;
325 317
326 EXPECT_CALL(mock_webusb_browser_client_, OnDeviceRemoved(guid_1)).Times(1); 318 EXPECT_CALL(mock_web_usb_browser_client_, OnDeviceRemoved(guid_1)).Times(1);
327 EXPECT_CALL(mock_webusb_browser_client_, 319 EXPECT_CALL(mock_web_usb_browser_client_,
328 OnDeviceAdded(product_name_2, landing_page_2, guid_2)) 320 OnDeviceAdded(product_name_2, landing_page_2, guid_2))
329 .Times(1); 321 .Times(1);
330 EXPECT_CALL(mock_webusb_browser_client_, OnDeviceRemoved(guid_3)).Times(1); 322 EXPECT_CALL(mock_web_usb_browser_client_, OnDeviceRemoved(guid_3)).Times(1);
331 EXPECT_CALL(mock_webusb_browser_client_, OnDeviceRemoved(guid_2)).Times(1); 323 EXPECT_CALL(mock_web_usb_browser_client_, OnDeviceRemoved(guid_2)).Times(1);
332 } 324 }
333 325
334 // two usb devices were added before webusb_detector was created 326 // two usb devices were added before web_usb_detector was created
335 device_client_.usb_service()->AddDevice(device_1); 327 device_client_.usb_service()->AddDevice(device_1);
336 device_client_.usb_service()->AddDevice(device_3); 328 device_client_.usb_service()->AddDevice(device_3);
337 329
338 webusb::WebUsbDetector webusb_detector(&mock_webusb_browser_client_); 330 WebUsbDetector web_usb_detector(&mock_web_usb_browser_client_);
339 331
340 device_client_.usb_service()->RemoveDevice(device_1); 332 device_client_.usb_service()->RemoveDevice(device_1);
341 device_client_.usb_service()->AddDevice(device_2); 333 device_client_.usb_service()->AddDevice(device_2);
342 device_client_.usb_service()->RemoveDevice(device_3); 334 device_client_.usb_service()->RemoveDevice(device_3);
343 device_client_.usb_service()->RemoveDevice(device_2); 335 device_client_.usb_service()->RemoveDevice(device_2);
344 } 336 }
345 337
346 TEST_F(WebUsbDetectorTest, ThreeUsbDevicesAddedAndRemoved) { 338 TEST_F(WebUsbDetectorTest, ThreeUsbDevicesAddedAndRemoved) {
347 base::string16 product_name_1 = base::UTF8ToUTF16(kProductName_1); 339 base::string16 product_name_1 = base::UTF8ToUTF16(kProductName_1);
348 GURL landing_page_1(kLandingPage_1); 340 GURL landing_page_1(kLandingPage_1);
349 scoped_refptr<device::MockUsbDevice> device_1(new device::MockUsbDevice( 341 scoped_refptr<device::MockUsbDevice> device_1(new device::MockUsbDevice(
350 0, 1, "Google", kProductName_1, "002", landing_page_1)); 342 0, 1, "Google", kProductName_1, "002", landing_page_1));
351 std::string guid_1 = device_1->guid(); 343 std::string guid_1 = device_1->guid();
352 344
353 base::string16 product_name_2 = base::UTF8ToUTF16(kProductName_2); 345 base::string16 product_name_2 = base::UTF8ToUTF16(kProductName_2);
354 GURL landing_page_2(kLandingPage_2); 346 GURL landing_page_2(kLandingPage_2);
355 scoped_refptr<device::MockUsbDevice> device_2(new device::MockUsbDevice( 347 scoped_refptr<device::MockUsbDevice> device_2(new device::MockUsbDevice(
356 3, 4, "Google", kProductName_2, "005", landing_page_2)); 348 3, 4, "Google", kProductName_2, "005", landing_page_2));
357 std::string guid_2 = device_2->guid(); 349 std::string guid_2 = device_2->guid();
358 350
359 base::string16 product_name_3 = base::UTF8ToUTF16(kProductName_3); 351 base::string16 product_name_3 = base::UTF8ToUTF16(kProductName_3);
360 GURL landing_page_3(kLandingPage_3); 352 GURL landing_page_3(kLandingPage_3);
361 scoped_refptr<device::MockUsbDevice> device_3(new device::MockUsbDevice( 353 scoped_refptr<device::MockUsbDevice> device_3(new device::MockUsbDevice(
362 6, 7, "Google", kProductName_3, "008", landing_page_3)); 354 6, 7, "Google", kProductName_3, "008", landing_page_3));
363 std::string guid_3 = device_3->guid(); 355 std::string guid_3 = device_3->guid();
364 356
365 { 357 {
366 testing::InSequence s; 358 testing::InSequence s;
367 359
368 EXPECT_CALL(mock_webusb_browser_client_, 360 EXPECT_CALL(mock_web_usb_browser_client_,
369 OnDeviceAdded(product_name_1, landing_page_1, guid_1)) 361 OnDeviceAdded(product_name_1, landing_page_1, guid_1))
370 .Times(1); 362 .Times(1);
371 EXPECT_CALL(mock_webusb_browser_client_, OnDeviceRemoved(guid_1)).Times(1); 363 EXPECT_CALL(mock_web_usb_browser_client_, OnDeviceRemoved(guid_1)).Times(1);
372 364
373 EXPECT_CALL(mock_webusb_browser_client_, 365 EXPECT_CALL(mock_web_usb_browser_client_,
374 OnDeviceAdded(product_name_2, landing_page_2, guid_2)) 366 OnDeviceAdded(product_name_2, landing_page_2, guid_2))
375 .Times(1); 367 .Times(1);
376 EXPECT_CALL(mock_webusb_browser_client_, OnDeviceRemoved(guid_2)).Times(1); 368 EXPECT_CALL(mock_web_usb_browser_client_, OnDeviceRemoved(guid_2)).Times(1);
377 369
378 EXPECT_CALL(mock_webusb_browser_client_, 370 EXPECT_CALL(mock_web_usb_browser_client_,
379 OnDeviceAdded(product_name_3, landing_page_3, guid_3)) 371 OnDeviceAdded(product_name_3, landing_page_3, guid_3))
380 .Times(1); 372 .Times(1);
381 EXPECT_CALL(mock_webusb_browser_client_, OnDeviceRemoved(guid_3)).Times(1); 373 EXPECT_CALL(mock_web_usb_browser_client_, OnDeviceRemoved(guid_3)).Times(1);
382 } 374 }
383 375
384 webusb::WebUsbDetector webusb_detector(&mock_webusb_browser_client_); 376 WebUsbDetector web_usb_detector(&mock_web_usb_browser_client_);
385 377
386 device_client_.usb_service()->AddDevice(device_1); 378 device_client_.usb_service()->AddDevice(device_1);
387 device_client_.usb_service()->RemoveDevice(device_1); 379 device_client_.usb_service()->RemoveDevice(device_1);
388 device_client_.usb_service()->AddDevice(device_2); 380 device_client_.usb_service()->AddDevice(device_2);
389 device_client_.usb_service()->RemoveDevice(device_2); 381 device_client_.usb_service()->RemoveDevice(device_2);
390 device_client_.usb_service()->AddDevice(device_3); 382 device_client_.usb_service()->AddDevice(device_3);
391 device_client_.usb_service()->RemoveDevice(device_3); 383 device_client_.usb_service()->RemoveDevice(device_3);
392 } 384 }
393 385
394 TEST_F(WebUsbDetectorTest, ThreeUsbDeviceAddedAndRemovedDifferentOrder) { 386 TEST_F(WebUsbDetectorTest, ThreeUsbDeviceAddedAndRemovedDifferentOrder) {
(...skipping 11 matching lines...) Expand all
406 398
407 base::string16 product_name_3 = base::UTF8ToUTF16(kProductName_3); 399 base::string16 product_name_3 = base::UTF8ToUTF16(kProductName_3);
408 GURL landing_page_3(kLandingPage_3); 400 GURL landing_page_3(kLandingPage_3);
409 scoped_refptr<device::MockUsbDevice> device_3(new device::MockUsbDevice( 401 scoped_refptr<device::MockUsbDevice> device_3(new device::MockUsbDevice(
410 6, 7, "Google", kProductName_3, "008", landing_page_3)); 402 6, 7, "Google", kProductName_3, "008", landing_page_3));
411 std::string guid_3 = device_3->guid(); 403 std::string guid_3 = device_3->guid();
412 404
413 { 405 {
414 testing::InSequence s; 406 testing::InSequence s;
415 407
416 EXPECT_CALL(mock_webusb_browser_client_, 408 EXPECT_CALL(mock_web_usb_browser_client_,
417 OnDeviceAdded(product_name_1, landing_page_1, guid_1)) 409 OnDeviceAdded(product_name_1, landing_page_1, guid_1))
418 .Times(1); 410 .Times(1);
419 411
420 EXPECT_CALL(mock_webusb_browser_client_, 412 EXPECT_CALL(mock_web_usb_browser_client_,
421 OnDeviceAdded(product_name_2, landing_page_2, guid_2)) 413 OnDeviceAdded(product_name_2, landing_page_2, guid_2))
422 .Times(1); 414 .Times(1);
423 415
424 EXPECT_CALL(mock_webusb_browser_client_, OnDeviceRemoved(guid_2)).Times(1); 416 EXPECT_CALL(mock_web_usb_browser_client_, OnDeviceRemoved(guid_2)).Times(1);
425 417
426 EXPECT_CALL(mock_webusb_browser_client_, 418 EXPECT_CALL(mock_web_usb_browser_client_,
427 OnDeviceAdded(product_name_3, landing_page_3, guid_3)) 419 OnDeviceAdded(product_name_3, landing_page_3, guid_3))
428 .Times(1); 420 .Times(1);
429 421
430 EXPECT_CALL(mock_webusb_browser_client_, OnDeviceRemoved(guid_1)).Times(1); 422 EXPECT_CALL(mock_web_usb_browser_client_, OnDeviceRemoved(guid_1)).Times(1);
431 423
432 EXPECT_CALL(mock_webusb_browser_client_, OnDeviceRemoved(guid_3)).Times(1); 424 EXPECT_CALL(mock_web_usb_browser_client_, OnDeviceRemoved(guid_3)).Times(1);
433 } 425 }
434 426
435 webusb::WebUsbDetector webusb_detector(&mock_webusb_browser_client_); 427 WebUsbDetector web_usb_detector(&mock_web_usb_browser_client_);
436 428
437 device_client_.usb_service()->AddDevice(device_1); 429 device_client_.usb_service()->AddDevice(device_1);
438 device_client_.usb_service()->AddDevice(device_2); 430 device_client_.usb_service()->AddDevice(device_2);
439 device_client_.usb_service()->RemoveDevice(device_2); 431 device_client_.usb_service()->RemoveDevice(device_2);
440 device_client_.usb_service()->AddDevice(device_3); 432 device_client_.usb_service()->AddDevice(device_3);
441 device_client_.usb_service()->RemoveDevice(device_1); 433 device_client_.usb_service()->RemoveDevice(device_1);
442 device_client_.usb_service()->RemoveDevice(device_3); 434 device_client_.usb_service()->RemoveDevice(device_3);
443 } 435 }
444
445 } // namespace webusb
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698