blob: 4323b2e5408c1e3a8806417f21f6a83fc3707501 [file] [log] [blame]
// Copyright (c) 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "content/renderer/media/midi_message_filter.h"
#include "base/message_loop/message_loop.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace content {
namespace {
using BlinkState = blink::WebMIDIAccessorClient::MIDIPortState;
} // namespace
TEST(MidiMessageFilterTest, CastMidiPortState) {
// Check if static_cast of ToMIDIPortState() just works fine for all states.
EXPECT_EQ(
BlinkState::MIDIPortStateDisconnected,
MidiMessageFilter::ToBlinkState(media::midi::MIDI_PORT_DISCONNECTED));
EXPECT_EQ(BlinkState::MIDIPortStateConnected,
MidiMessageFilter::ToBlinkState(media::midi::MIDI_PORT_CONNECTED));
// Web MIDI API manages DeviceState and ConnectionState separately.
// "open", "pending", or "closed" are managed separately for ConnectionState
// by Blink per MIDIAccess instance. So, MIDI_PORT_OPENED in content can be
// converted to MIDIPortStateConnected.
EXPECT_EQ(BlinkState::MIDIPortStateConnected,
MidiMessageFilter::ToBlinkState(media::midi::MIDI_PORT_OPENED));
// Check if we do not have any unknown MidiPortState that is added later.
EXPECT_EQ(media::midi::MIDI_PORT_OPENED, media::midi::MIDI_PORT_STATE_LAST);
}
} // namespace content