| Index: media/midi/midi_manager_usb_unittest.cc
|
| diff --git a/media/midi/midi_manager_usb_unittest.cc b/media/midi/midi_manager_usb_unittest.cc
|
| index 4df64a62dcb43823847eab161597ab0f6c8c361d..8552403024765aad2ceef1427bd516ea73c5ee52 100644
|
| --- a/media/midi/midi_manager_usb_unittest.cc
|
| +++ b/media/midi/midi_manager_usb_unittest.cc
|
| @@ -316,6 +316,50 @@ TEST_F(MidiManagerUsbTest, Send) {
|
| logger_.TakeLog());
|
| }
|
|
|
| +TEST_F(MidiManagerUsbTest, SendFromCompromizedRenderer) {
|
| + scoped_ptr<FakeUsbMidiDevice> device(new FakeUsbMidiDevice(&logger_));
|
| + FakeMidiManagerClient client(&logger_);
|
| + uint8 descriptor[] = {
|
| + 0x12, 0x01, 0x10, 0x01, 0x00, 0x00, 0x00, 0x08, 0x86, 0x1a,
|
| + 0x2d, 0x75, 0x54, 0x02, 0x00, 0x02, 0x00, 0x01, 0x09, 0x02,
|
| + 0x75, 0x00, 0x02, 0x01, 0x00, 0x80, 0x30, 0x09, 0x04, 0x00,
|
| + 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x09, 0x24, 0x01, 0x00,
|
| + 0x01, 0x09, 0x00, 0x01, 0x01, 0x09, 0x04, 0x01, 0x00, 0x02,
|
| + 0x01, 0x03, 0x00, 0x00, 0x07, 0x24, 0x01, 0x00, 0x01, 0x51,
|
| + 0x00, 0x06, 0x24, 0x02, 0x01, 0x02, 0x00, 0x06, 0x24, 0x02,
|
| + 0x01, 0x03, 0x00, 0x06, 0x24, 0x02, 0x02, 0x06, 0x00, 0x09,
|
| + 0x24, 0x03, 0x01, 0x07, 0x01, 0x06, 0x01, 0x00, 0x09, 0x24,
|
| + 0x03, 0x02, 0x04, 0x01, 0x02, 0x01, 0x00, 0x09, 0x24, 0x03,
|
| + 0x02, 0x05, 0x01, 0x03, 0x01, 0x00, 0x09, 0x05, 0x02, 0x02,
|
| + 0x20, 0x00, 0x00, 0x00, 0x00, 0x06, 0x25, 0x01, 0x02, 0x02,
|
| + 0x03, 0x09, 0x05, 0x82, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00,
|
| + 0x05, 0x25, 0x01, 0x01, 0x07,
|
| + };
|
| +
|
| + device->SetDescriptor(ToVector(descriptor));
|
| + uint8 data[] = {
|
| + 0x90, 0x45, 0x7f,
|
| + 0xf0, 0x00, 0x01, 0xf7,
|
| + };
|
| +
|
| + Initialize();
|
| + ScopedVector<UsbMidiDevice> devices;
|
| + devices.push_back(device.release());
|
| + EXPECT_FALSE(IsInitializationCallbackInvoked());
|
| + RunCallbackUntilCallbackInvoked(true, &devices);
|
| + EXPECT_EQ(MIDI_OK, GetInitializationResult());
|
| + ASSERT_EQ(2u, manager_->output_streams().size());
|
| + EXPECT_EQ("UsbMidiDevice::GetDescriptor\n", logger_.TakeLog());
|
| +
|
| + // The specified port index is invalid. The manager must ignore the request.
|
| + manager_->DispatchSendMidiData(&client, 99, ToVector(data), 0);
|
| + EXPECT_EQ("", logger_.TakeLog());
|
| +
|
| + // The specified port index is invalid. The manager must ignore the request.
|
| + manager_->DispatchSendMidiData(&client, 2, ToVector(data), 0);
|
| + EXPECT_EQ("", logger_.TakeLog());
|
| +}
|
| +
|
| TEST_F(MidiManagerUsbTest, Receive) {
|
| scoped_ptr<FakeUsbMidiDevice> device(new FakeUsbMidiDevice(&logger_));
|
| uint8 descriptor[] = {
|
|
|