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

Side by Side Diff: media/midi/midi_manager_usb_unittest.cc

Issue 2404443002: Web MIDI: use midi_service.mojom for media::midi::Result (Closed)
Patch Set: rebase Created 4 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
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 "media/midi/midi_manager_usb.h" 5 #include "media/midi/midi_manager_usb.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 #include <memory> 9 #include <memory>
10 #include <string> 10 #include <string>
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 std::string device_version_; 88 std::string device_version_;
89 Logger* logger_; 89 Logger* logger_;
90 90
91 DISALLOW_COPY_AND_ASSIGN(FakeUsbMidiDevice); 91 DISALLOW_COPY_AND_ASSIGN(FakeUsbMidiDevice);
92 }; 92 };
93 93
94 class FakeMidiManagerClient : public MidiManagerClient { 94 class FakeMidiManagerClient : public MidiManagerClient {
95 public: 95 public:
96 explicit FakeMidiManagerClient(Logger* logger) 96 explicit FakeMidiManagerClient(Logger* logger)
97 : complete_start_session_(false), 97 : complete_start_session_(false),
98 result_(Result::NOT_SUPPORTED), 98 result_(mojom::Result::NOT_SUPPORTED),
99 logger_(logger) {} 99 logger_(logger) {}
100 ~FakeMidiManagerClient() override {} 100 ~FakeMidiManagerClient() override {}
101 101
102 void AddInputPort(const MidiPortInfo& info) override { 102 void AddInputPort(const MidiPortInfo& info) override {
103 input_ports_.push_back(info); 103 input_ports_.push_back(info);
104 } 104 }
105 105
106 void AddOutputPort(const MidiPortInfo& info) override { 106 void AddOutputPort(const MidiPortInfo& info) override {
107 output_ports_.push_back(info); 107 output_ports_.push_back(info);
108 } 108 }
109 109
110 void SetInputPortState(uint32_t port_index, MidiPortState state) override {} 110 void SetInputPortState(uint32_t port_index, MidiPortState state) override {}
111 111
112 void SetOutputPortState(uint32_t port_index, MidiPortState state) override {} 112 void SetOutputPortState(uint32_t port_index, MidiPortState state) override {}
113 113
114 void CompleteStartSession(Result result) override { 114 void CompleteStartSession(mojom::Result result) override {
115 complete_start_session_ = true; 115 complete_start_session_ = true;
116 result_ = result; 116 result_ = result;
117 } 117 }
118 118
119 void ReceiveMidiData(uint32_t port_index, 119 void ReceiveMidiData(uint32_t port_index,
120 const uint8_t* data, 120 const uint8_t* data,
121 size_t size, 121 size_t size,
122 double timestamp) override { 122 double timestamp) override {
123 logger_->AddLog("MidiManagerClient::ReceiveMidiData "); 123 logger_->AddLog("MidiManagerClient::ReceiveMidiData ");
124 logger_->AddLog( 124 logger_->AddLog(
125 base::StringPrintf("usb:port_index = %d data =", port_index)); 125 base::StringPrintf("usb:port_index = %d data =", port_index));
126 for (size_t i = 0; i < size; ++i) 126 for (size_t i = 0; i < size; ++i)
127 logger_->AddLog(base::StringPrintf(" 0x%02x", data[i])); 127 logger_->AddLog(base::StringPrintf(" 0x%02x", data[i]));
128 logger_->AddLog("\n"); 128 logger_->AddLog("\n");
129 } 129 }
130 130
131 void AccumulateMidiBytesSent(size_t size) override { 131 void AccumulateMidiBytesSent(size_t size) override {
132 logger_->AddLog("MidiManagerClient::AccumulateMidiBytesSent "); 132 logger_->AddLog("MidiManagerClient::AccumulateMidiBytesSent ");
133 // Windows has no "%zu". 133 // Windows has no "%zu".
134 logger_->AddLog(base::StringPrintf("size = %u\n", 134 logger_->AddLog(base::StringPrintf("size = %u\n",
135 static_cast<unsigned>(size))); 135 static_cast<unsigned>(size)));
136 } 136 }
137 137
138 void Detach() override {} 138 void Detach() override {}
139 139
140 bool complete_start_session_; 140 bool complete_start_session_;
141 Result result_; 141 mojom::Result result_;
142 MidiPortInfoList input_ports_; 142 MidiPortInfoList input_ports_;
143 MidiPortInfoList output_ports_; 143 MidiPortInfoList output_ports_;
144 144
145 private: 145 private:
146 Logger* logger_; 146 Logger* logger_;
147 147
148 DISALLOW_COPY_AND_ASSIGN(FakeMidiManagerClient); 148 DISALLOW_COPY_AND_ASSIGN(FakeMidiManagerClient);
149 }; 149 };
150 150
151 class TestUsbMidiDeviceFactory : public UsbMidiDevice::Factory { 151 class TestUsbMidiDeviceFactory : public UsbMidiDevice::Factory {
(...skipping 11 matching lines...) Expand all
163 DISALLOW_COPY_AND_ASSIGN(TestUsbMidiDeviceFactory); 163 DISALLOW_COPY_AND_ASSIGN(TestUsbMidiDeviceFactory);
164 }; 164 };
165 165
166 class MidiManagerUsbForTesting : public MidiManagerUsb { 166 class MidiManagerUsbForTesting : public MidiManagerUsb {
167 public: 167 public:
168 explicit MidiManagerUsbForTesting( 168 explicit MidiManagerUsbForTesting(
169 std::unique_ptr<UsbMidiDevice::Factory> device_factory) 169 std::unique_ptr<UsbMidiDevice::Factory> device_factory)
170 : MidiManagerUsb(std::move(device_factory)) {} 170 : MidiManagerUsb(std::move(device_factory)) {}
171 ~MidiManagerUsbForTesting() override {} 171 ~MidiManagerUsbForTesting() override {}
172 172
173 void CallCompleteInitialization(Result result) { 173 void CallCompleteInitialization(mojom::Result result) {
174 CompleteInitialization(result); 174 CompleteInitialization(result);
175 base::RunLoop run_loop; 175 base::RunLoop run_loop;
176 run_loop.RunUntilIdle(); 176 run_loop.RunUntilIdle();
177 } 177 }
178 178
179 private: 179 private:
180 DISALLOW_COPY_AND_ASSIGN(MidiManagerUsbForTesting); 180 DISALLOW_COPY_AND_ASSIGN(MidiManagerUsbForTesting);
181 }; 181 };
182 182
183 class MidiManagerUsbTest : public ::testing::Test { 183 class MidiManagerUsbTest : public ::testing::Test {
(...skipping 22 matching lines...) Expand all
206 } 206 }
207 207
208 void Finalize() { 208 void Finalize() {
209 manager_->EndSession(client_.get()); 209 manager_->EndSession(client_.get());
210 } 210 }
211 211
212 bool IsInitializationCallbackInvoked() { 212 bool IsInitializationCallbackInvoked() {
213 return client_->complete_start_session_; 213 return client_->complete_start_session_;
214 } 214 }
215 215
216 Result GetInitializationResult() { return client_->result_; } 216 mojom::Result GetInitializationResult() { return client_->result_; }
217 217
218 void RunCallbackUntilCallbackInvoked( 218 void RunCallbackUntilCallbackInvoked(
219 bool result, UsbMidiDevice::Devices* devices) { 219 bool result, UsbMidiDevice::Devices* devices) {
220 factory_->callback_.Run(result, devices); 220 factory_->callback_.Run(result, devices);
221 while (!client_->complete_start_session_) { 221 while (!client_->complete_start_session_) {
222 base::RunLoop run_loop; 222 base::RunLoop run_loop;
223 run_loop.RunUntilIdle(); 223 run_loop.RunUntilIdle();
224 } 224 }
225 } 225 }
226 226
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 device->SetDescriptors(ToVector(descriptors)); 259 device->SetDescriptors(ToVector(descriptors));
260 device->SetManufacturer("vendor1"); 260 device->SetManufacturer("vendor1");
261 device->SetProductName("device1"); 261 device->SetProductName("device1");
262 device->SetDeviceVersion("1.02"); 262 device->SetDeviceVersion("1.02");
263 263
264 Initialize(); 264 Initialize();
265 ScopedVector<UsbMidiDevice> devices; 265 ScopedVector<UsbMidiDevice> devices;
266 devices.push_back(std::move(device)); 266 devices.push_back(std::move(device));
267 EXPECT_FALSE(IsInitializationCallbackInvoked()); 267 EXPECT_FALSE(IsInitializationCallbackInvoked());
268 RunCallbackUntilCallbackInvoked(true, &devices); 268 RunCallbackUntilCallbackInvoked(true, &devices);
269 EXPECT_EQ(Result::OK, GetInitializationResult()); 269 EXPECT_EQ(mojom::Result::OK, GetInitializationResult());
270 270
271 ASSERT_EQ(1u, input_ports().size()); 271 ASSERT_EQ(1u, input_ports().size());
272 EXPECT_EQ("usb:port-0-2", input_ports()[0].id); 272 EXPECT_EQ("usb:port-0-2", input_ports()[0].id);
273 EXPECT_EQ("vendor1", input_ports()[0].manufacturer); 273 EXPECT_EQ("vendor1", input_ports()[0].manufacturer);
274 EXPECT_EQ("device1", input_ports()[0].name); 274 EXPECT_EQ("device1", input_ports()[0].name);
275 EXPECT_EQ("1.02", input_ports()[0].version); 275 EXPECT_EQ("1.02", input_ports()[0].version);
276 276
277 ASSERT_EQ(2u, output_ports().size()); 277 ASSERT_EQ(2u, output_ports().size());
278 EXPECT_EQ("usb:port-0-0", output_ports()[0].id); 278 EXPECT_EQ("usb:port-0-0", output_ports()[0].id);
279 EXPECT_EQ("vendor1", output_ports()[0].manufacturer); 279 EXPECT_EQ("vendor1", output_ports()[0].manufacturer);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 device2->SetManufacturer("vendor2"); 320 device2->SetManufacturer("vendor2");
321 device2->SetProductName("device2"); 321 device2->SetProductName("device2");
322 device2->SetDeviceVersion("98.76"); 322 device2->SetDeviceVersion("98.76");
323 323
324 Initialize(); 324 Initialize();
325 ScopedVector<UsbMidiDevice> devices; 325 ScopedVector<UsbMidiDevice> devices;
326 devices.push_back(std::move(device1)); 326 devices.push_back(std::move(device1));
327 devices.push_back(std::move(device2)); 327 devices.push_back(std::move(device2));
328 EXPECT_FALSE(IsInitializationCallbackInvoked()); 328 EXPECT_FALSE(IsInitializationCallbackInvoked());
329 RunCallbackUntilCallbackInvoked(true, &devices); 329 RunCallbackUntilCallbackInvoked(true, &devices);
330 EXPECT_EQ(Result::OK, GetInitializationResult()); 330 EXPECT_EQ(mojom::Result::OK, GetInitializationResult());
331 331
332 ASSERT_EQ(2u, input_ports().size()); 332 ASSERT_EQ(2u, input_ports().size());
333 EXPECT_EQ("usb:port-0-2", input_ports()[0].id); 333 EXPECT_EQ("usb:port-0-2", input_ports()[0].id);
334 EXPECT_EQ("vendor1", input_ports()[0].manufacturer); 334 EXPECT_EQ("vendor1", input_ports()[0].manufacturer);
335 EXPECT_EQ("device1", input_ports()[0].name); 335 EXPECT_EQ("device1", input_ports()[0].name);
336 EXPECT_EQ("1.02", input_ports()[0].version); 336 EXPECT_EQ("1.02", input_ports()[0].version);
337 EXPECT_EQ("usb:port-1-2", input_ports()[1].id); 337 EXPECT_EQ("usb:port-1-2", input_ports()[1].id);
338 EXPECT_EQ("vendor2", input_ports()[1].manufacturer); 338 EXPECT_EQ("vendor2", input_ports()[1].manufacturer);
339 EXPECT_EQ("device2", input_ports()[1].name); 339 EXPECT_EQ("device2", input_ports()[1].name);
340 EXPECT_EQ("98.76", input_ports()[1].version); 340 EXPECT_EQ("98.76", input_ports()[1].version);
(...skipping 28 matching lines...) Expand all
369 "UsbMidiDevice::GetDescriptors\n" 369 "UsbMidiDevice::GetDescriptors\n"
370 "UsbMidiDevice::GetDescriptors\n", 370 "UsbMidiDevice::GetDescriptors\n",
371 logger_.TakeLog()); 371 logger_.TakeLog());
372 } 372 }
373 373
374 TEST_F(MidiManagerUsbTest, InitializeFail) { 374 TEST_F(MidiManagerUsbTest, InitializeFail) {
375 Initialize(); 375 Initialize();
376 376
377 EXPECT_FALSE(IsInitializationCallbackInvoked()); 377 EXPECT_FALSE(IsInitializationCallbackInvoked());
378 RunCallbackUntilCallbackInvoked(false, NULL); 378 RunCallbackUntilCallbackInvoked(false, NULL);
379 EXPECT_EQ(Result::INITIALIZATION_ERROR, GetInitializationResult()); 379 EXPECT_EQ(mojom::Result::INITIALIZATION_ERROR, GetInitializationResult());
380 } 380 }
381 381
382 TEST_F(MidiManagerUsbTest, InitializeFailBecauseOfInvalidDescriptors) { 382 TEST_F(MidiManagerUsbTest, InitializeFailBecauseOfInvalidDescriptors) {
383 std::unique_ptr<FakeUsbMidiDevice> device(new FakeUsbMidiDevice(&logger_)); 383 std::unique_ptr<FakeUsbMidiDevice> device(new FakeUsbMidiDevice(&logger_));
384 uint8_t descriptors[] = {0x04}; 384 uint8_t descriptors[] = {0x04};
385 device->SetDescriptors(ToVector(descriptors)); 385 device->SetDescriptors(ToVector(descriptors));
386 386
387 Initialize(); 387 Initialize();
388 ScopedVector<UsbMidiDevice> devices; 388 ScopedVector<UsbMidiDevice> devices;
389 devices.push_back(std::move(device)); 389 devices.push_back(std::move(device));
390 EXPECT_FALSE(IsInitializationCallbackInvoked()); 390 EXPECT_FALSE(IsInitializationCallbackInvoked());
391 RunCallbackUntilCallbackInvoked(true, &devices); 391 RunCallbackUntilCallbackInvoked(true, &devices);
392 EXPECT_EQ(Result::INITIALIZATION_ERROR, GetInitializationResult()); 392 EXPECT_EQ(mojom::Result::INITIALIZATION_ERROR, GetInitializationResult());
393 EXPECT_EQ("UsbMidiDevice::GetDescriptors\n", logger_.TakeLog()); 393 EXPECT_EQ("UsbMidiDevice::GetDescriptors\n", logger_.TakeLog());
394 } 394 }
395 395
396 TEST_F(MidiManagerUsbTest, Send) { 396 TEST_F(MidiManagerUsbTest, Send) {
397 Initialize(); 397 Initialize();
398 std::unique_ptr<FakeUsbMidiDevice> device(new FakeUsbMidiDevice(&logger_)); 398 std::unique_ptr<FakeUsbMidiDevice> device(new FakeUsbMidiDevice(&logger_));
399 uint8_t descriptors[] = { 399 uint8_t descriptors[] = {
400 0x12, 0x01, 0x10, 0x01, 0x00, 0x00, 0x00, 0x08, 0x86, 0x1a, 0x2d, 0x75, 400 0x12, 0x01, 0x10, 0x01, 0x00, 0x00, 0x00, 0x08, 0x86, 0x1a, 0x2d, 0x75,
401 0x54, 0x02, 0x00, 0x02, 0x00, 0x01, 0x09, 0x02, 0x75, 0x00, 0x02, 0x01, 401 0x54, 0x02, 0x00, 0x02, 0x00, 0x01, 0x09, 0x02, 0x75, 0x00, 0x02, 0x01,
402 0x00, 0x80, 0x30, 0x09, 0x04, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 402 0x00, 0x80, 0x30, 0x09, 0x04, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00,
(...skipping 10 matching lines...) Expand all
413 413
414 device->SetDescriptors(ToVector(descriptors)); 414 device->SetDescriptors(ToVector(descriptors));
415 uint8_t data[] = { 415 uint8_t data[] = {
416 0x90, 0x45, 0x7f, 0xf0, 0x00, 0x01, 0xf7, 416 0x90, 0x45, 0x7f, 0xf0, 0x00, 0x01, 0xf7,
417 }; 417 };
418 418
419 ScopedVector<UsbMidiDevice> devices; 419 ScopedVector<UsbMidiDevice> devices;
420 devices.push_back(std::move(device)); 420 devices.push_back(std::move(device));
421 EXPECT_FALSE(IsInitializationCallbackInvoked()); 421 EXPECT_FALSE(IsInitializationCallbackInvoked());
422 RunCallbackUntilCallbackInvoked(true, &devices); 422 RunCallbackUntilCallbackInvoked(true, &devices);
423 EXPECT_EQ(Result::OK, GetInitializationResult()); 423 EXPECT_EQ(mojom::Result::OK, GetInitializationResult());
424 ASSERT_EQ(2u, manager_->output_streams().size()); 424 ASSERT_EQ(2u, manager_->output_streams().size());
425 425
426 manager_->DispatchSendMidiData(client_.get(), 1, ToVector(data), 0); 426 manager_->DispatchSendMidiData(client_.get(), 1, ToVector(data), 0);
427 // Since UsbMidiDevice::Send is posted as a task, RunLoop should run to 427 // Since UsbMidiDevice::Send is posted as a task, RunLoop should run to
428 // invoke the task. 428 // invoke the task.
429 base::RunLoop run_loop; 429 base::RunLoop run_loop;
430 run_loop.RunUntilIdle(); 430 run_loop.RunUntilIdle();
431 EXPECT_EQ("UsbMidiDevice::GetDescriptors\n" 431 EXPECT_EQ("UsbMidiDevice::GetDescriptors\n"
432 "UsbMidiDevice::Send endpoint = 2 data = " 432 "UsbMidiDevice::Send endpoint = 2 data = "
433 "0x19 0x90 0x45 0x7f " 433 "0x19 0x90 0x45 0x7f "
(...skipping 23 matching lines...) Expand all
457 device->SetDescriptors(ToVector(descriptors)); 457 device->SetDescriptors(ToVector(descriptors));
458 uint8_t data[] = { 458 uint8_t data[] = {
459 0x90, 0x45, 0x7f, 0xf0, 0x00, 0x01, 0xf7, 459 0x90, 0x45, 0x7f, 0xf0, 0x00, 0x01, 0xf7,
460 }; 460 };
461 461
462 Initialize(); 462 Initialize();
463 ScopedVector<UsbMidiDevice> devices; 463 ScopedVector<UsbMidiDevice> devices;
464 devices.push_back(std::move(device)); 464 devices.push_back(std::move(device));
465 EXPECT_FALSE(IsInitializationCallbackInvoked()); 465 EXPECT_FALSE(IsInitializationCallbackInvoked());
466 RunCallbackUntilCallbackInvoked(true, &devices); 466 RunCallbackUntilCallbackInvoked(true, &devices);
467 EXPECT_EQ(Result::OK, GetInitializationResult()); 467 EXPECT_EQ(mojom::Result::OK, GetInitializationResult());
468 ASSERT_EQ(2u, manager_->output_streams().size()); 468 ASSERT_EQ(2u, manager_->output_streams().size());
469 EXPECT_EQ("UsbMidiDevice::GetDescriptors\n", logger_.TakeLog()); 469 EXPECT_EQ("UsbMidiDevice::GetDescriptors\n", logger_.TakeLog());
470 470
471 // The specified port index is invalid. The manager must ignore the request. 471 // The specified port index is invalid. The manager must ignore the request.
472 manager_->DispatchSendMidiData(client_.get(), 99, ToVector(data), 0); 472 manager_->DispatchSendMidiData(client_.get(), 99, ToVector(data), 0);
473 EXPECT_EQ("", logger_.TakeLog()); 473 EXPECT_EQ("", logger_.TakeLog());
474 474
475 // The specified port index is invalid. The manager must ignore the request. 475 // The specified port index is invalid. The manager must ignore the request.
476 manager_->DispatchSendMidiData(client_.get(), 2, ToVector(data), 0); 476 manager_->DispatchSendMidiData(client_.get(), 2, ToVector(data), 0);
477 EXPECT_EQ("", logger_.TakeLog()); 477 EXPECT_EQ("", logger_.TakeLog());
(...skipping 22 matching lines...) Expand all
500 0x01, 0x49, 0x90, 0x88, 0x99, // This data should be ignored (CN = 4). 500 0x01, 0x49, 0x90, 0x88, 0x99, // This data should be ignored (CN = 4).
501 0x05, 0xf7, 0x00, 0x00, 501 0x05, 0xf7, 0x00, 0x00,
502 }; 502 };
503 503
504 Initialize(); 504 Initialize();
505 ScopedVector<UsbMidiDevice> devices; 505 ScopedVector<UsbMidiDevice> devices;
506 UsbMidiDevice* device_raw = device.get(); 506 UsbMidiDevice* device_raw = device.get();
507 devices.push_back(std::move(device)); 507 devices.push_back(std::move(device));
508 EXPECT_FALSE(IsInitializationCallbackInvoked()); 508 EXPECT_FALSE(IsInitializationCallbackInvoked());
509 RunCallbackUntilCallbackInvoked(true, &devices); 509 RunCallbackUntilCallbackInvoked(true, &devices);
510 EXPECT_EQ(Result::OK, GetInitializationResult()); 510 EXPECT_EQ(mojom::Result::OK, GetInitializationResult());
511 511
512 manager_->ReceiveUsbMidiData(device_raw, 2, data, arraysize(data), 512 manager_->ReceiveUsbMidiData(device_raw, 2, data, arraysize(data),
513 base::TimeTicks()); 513 base::TimeTicks());
514 Finalize(); 514 Finalize();
515 515
516 EXPECT_EQ( 516 EXPECT_EQ(
517 "UsbMidiDevice::GetDescriptors\n" 517 "UsbMidiDevice::GetDescriptors\n"
518 "MidiManagerClient::ReceiveMidiData usb:port_index = 0 " 518 "MidiManagerClient::ReceiveMidiData usb:port_index = 0 "
519 "data = 0x90 0x45 0x7f\n" 519 "data = 0x90 0x45 0x7f\n"
520 "MidiManagerClient::ReceiveMidiData usb:port_index = 0 " 520 "MidiManagerClient::ReceiveMidiData usb:port_index = 0 "
(...skipping 15 matching lines...) Expand all
536 0x00, 0x09, 0x24, 0x03, 0x02, 0x05, 0x01, 0x03, 0x01, 0x00, 0x09, 0x05, 536 0x00, 0x09, 0x24, 0x03, 0x02, 0x05, 0x01, 0x03, 0x01, 0x00, 0x09, 0x05,
537 0x02, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x06, 0x25, 0x01, 0x02, 0x02, 537 0x02, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x06, 0x25, 0x01, 0x02, 0x02,
538 0x03, 0x09, 0x05, 0x82, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x05, 0x25, 538 0x03, 0x09, 0x05, 0x82, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x05, 0x25,
539 0x01, 0x01, 0x07, 539 0x01, 0x01, 0x07,
540 }; 540 };
541 541
542 Initialize(); 542 Initialize();
543 ScopedVector<UsbMidiDevice> devices; 543 ScopedVector<UsbMidiDevice> devices;
544 EXPECT_FALSE(IsInitializationCallbackInvoked()); 544 EXPECT_FALSE(IsInitializationCallbackInvoked());
545 RunCallbackUntilCallbackInvoked(true, &devices); 545 RunCallbackUntilCallbackInvoked(true, &devices);
546 EXPECT_EQ(Result::OK, GetInitializationResult()); 546 EXPECT_EQ(mojom::Result::OK, GetInitializationResult());
547 547
548 ASSERT_EQ(0u, input_ports().size()); 548 ASSERT_EQ(0u, input_ports().size());
549 ASSERT_EQ(0u, output_ports().size()); 549 ASSERT_EQ(0u, output_ports().size());
550 ASSERT_TRUE(manager_->input_stream()); 550 ASSERT_TRUE(manager_->input_stream());
551 std::vector<UsbMidiJack> jacks = manager_->input_stream()->jacks(); 551 std::vector<UsbMidiJack> jacks = manager_->input_stream()->jacks();
552 ASSERT_EQ(0u, manager_->output_streams().size()); 552 ASSERT_EQ(0u, manager_->output_streams().size());
553 ASSERT_EQ(0u, jacks.size()); 553 ASSERT_EQ(0u, jacks.size());
554 EXPECT_EQ("", logger_.TakeLog()); 554 EXPECT_EQ("", logger_.TakeLog());
555 555
556 std::unique_ptr<FakeUsbMidiDevice> new_device( 556 std::unique_ptr<FakeUsbMidiDevice> new_device(
557 new FakeUsbMidiDevice(&logger_)); 557 new FakeUsbMidiDevice(&logger_));
558 new_device->SetDescriptors(ToVector(descriptors)); 558 new_device->SetDescriptors(ToVector(descriptors));
559 manager_->OnDeviceAttached(std::move(new_device)); 559 manager_->OnDeviceAttached(std::move(new_device));
560 560
561 ASSERT_EQ(1u, input_ports().size()); 561 ASSERT_EQ(1u, input_ports().size());
562 ASSERT_EQ(2u, output_ports().size()); 562 ASSERT_EQ(2u, output_ports().size());
563 ASSERT_TRUE(manager_->input_stream()); 563 ASSERT_TRUE(manager_->input_stream());
564 jacks = manager_->input_stream()->jacks(); 564 jacks = manager_->input_stream()->jacks();
565 ASSERT_EQ(2u, manager_->output_streams().size()); 565 ASSERT_EQ(2u, manager_->output_streams().size());
566 EXPECT_EQ(2u, manager_->output_streams()[0]->jack().jack_id); 566 EXPECT_EQ(2u, manager_->output_streams()[0]->jack().jack_id);
567 EXPECT_EQ(3u, manager_->output_streams()[1]->jack().jack_id); 567 EXPECT_EQ(3u, manager_->output_streams()[1]->jack().jack_id);
568 ASSERT_EQ(1u, jacks.size()); 568 ASSERT_EQ(1u, jacks.size());
569 EXPECT_EQ(2, jacks[0].endpoint_number()); 569 EXPECT_EQ(2, jacks[0].endpoint_number());
570 EXPECT_EQ("UsbMidiDevice::GetDescriptors\n", logger_.TakeLog()); 570 EXPECT_EQ("UsbMidiDevice::GetDescriptors\n", logger_.TakeLog());
571 } 571 }
572 572
573 } // namespace 573 } // namespace
574 574
575 } // namespace midi 575 } // namespace midi
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698