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

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

Issue 949683002: Web MIDI: running status should be reset on receiving a system message (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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
« no previous file with comments | « media/midi/midi_message_queue.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_message_queue.h" 5 #include "media/midi/midi_message_queue.h"
6 6
7 #include "testing/gtest/include/gtest/gtest.h" 7 #include "testing/gtest/include/gtest/gtest.h"
8 8
9 namespace media { 9 namespace media {
10 namespace { 10 namespace {
11 11
12 const uint8 kGMOn[] = { 0xf0, 0x7e, 0x7f, 0x09, 0x01, 0xf7 }; 12 const uint8 kGMOn[] = { 0xf0, 0x7e, 0x7f, 0x09, 0x01, 0xf7 };
13 const uint8 kGSOn[] = { 13 const uint8 kGSOn[] = {
14 0xf0, 0x41, 0x10, 0x42, 0x12, 0x40, 0x00, 0x7f, 0x00, 0x41, 0xf7, 14 0xf0, 0x41, 0x10, 0x42, 0x12, 0x40, 0x00, 0x7f, 0x00, 0x41, 0xf7,
15 }; 15 };
16 const uint8 kNoteOn[] = { 0x90, 0x3c, 0x7f }; 16 const uint8 kNoteOn[] = { 0x90, 0x3c, 0x7f };
17 const uint8 kNoteOnWithRunningStatus[] = { 17 const uint8 kNoteOnWithRunningStatus[] = {
18 0x90, 0x3c, 0x7f, 0x3c, 0x7f, 0x3c, 0x7f, 18 0x90, 0x3c, 0x7f, 0x3c, 0x7f, 0x3c, 0x7f,
19 }; 19 };
20 const uint8 kChannelPressure[] = { 0xd0, 0x01 }; 20 const uint8 kChannelPressure[] = { 0xd0, 0x01 };
21 const uint8 kChannelPressureWithRunningStatus[] = { 21 const uint8 kChannelPressureWithRunningStatus[] = {
22 0xd0, 0x01, 0x01, 0x01, 22 0xd0, 0x01, 0x01, 0x01,
23 }; 23 };
24 const uint8 kTimingClock[] = { 0xf8 }; 24 const uint8 kTimingClock[] = { 0xf8 };
25 const uint8 kMTCFrame[] = { 0xf1, 0x00 };
25 const uint8 kBrokenData1[] = { 0x90 }; 26 const uint8 kBrokenData1[] = { 0x90 };
26 const uint8 kBrokenData2[] = { 0xf7 }; 27 const uint8 kBrokenData2[] = { 0xf7 };
27 const uint8 kBrokenData3[] = { 0xf2, 0x00 }; 28 const uint8 kBrokenData3[] = { 0xf2, 0x00 };
28 const uint8 kDataByte0[] = { 0x00 }; 29 const uint8 kDataByte0[] = { 0x00 };
29 30
30 template <typename T, size_t N> 31 template <typename T, size_t N>
31 void Add(MidiMessageQueue* queue, const T(&array)[N]) { 32 void Add(MidiMessageQueue* queue, const T(&array)[N]) {
32 queue->Add(array, N); 33 queue->Add(array, N);
33 } 34 }
34 35
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 EXPECT_MESSAGE(kGSOn, message); 135 EXPECT_MESSAGE(kGSOn, message);
135 queue.Get(&message); 136 queue.Get(&message);
136 EXPECT_MESSAGE(kTimingClock, message); 137 EXPECT_MESSAGE(kTimingClock, message);
137 queue.Get(&message); 138 queue.Get(&message);
138 EXPECT_TRUE(message.empty()) 139 EXPECT_TRUE(message.empty())
139 << "Running status must not be applied to real time messages"; 140 << "Running status must not be applied to real time messages";
140 } 141 }
141 142
142 TEST(MidiMessageQueueTest, RunningStatusEnabledWithRealTimeEvent) { 143 TEST(MidiMessageQueueTest, RunningStatusEnabledWithRealTimeEvent) {
143 MidiMessageQueue queue(true); 144 MidiMessageQueue queue(true);
144 const uint8 kNoteOnWithRunningStatusWithkTimingClock[] = { 145 const uint8 kNoteOnWithRunningStatusWithTimingClock[] = {
145 0x90, 0xf8, 0x3c, 0xf8, 0x7f, 0xf8, 0x3c, 0xf8, 0x7f, 0xf8, 0x3c, 0xf8, 146 0x90, 0xf8, 0x3c, 0xf8, 0x7f, 0xf8, 0x3c, 0xf8, 0x7f, 0xf8, 0x3c, 0xf8,
146 0x7f, 147 0x7f,
147 }; 148 };
148 Add(&queue, kNoteOnWithRunningStatusWithkTimingClock); 149 Add(&queue, kNoteOnWithRunningStatusWithTimingClock);
149 std::vector<uint8> message; 150 std::vector<uint8> message;
150 queue.Get(&message); 151 queue.Get(&message);
151 EXPECT_MESSAGE(kTimingClock, message); 152 EXPECT_MESSAGE(kTimingClock, message);
152 queue.Get(&message); 153 queue.Get(&message);
153 EXPECT_MESSAGE(kTimingClock, message); 154 EXPECT_MESSAGE(kTimingClock, message);
154 queue.Get(&message); 155 queue.Get(&message);
155 EXPECT_MESSAGE(kNoteOn, message); 156 EXPECT_MESSAGE(kNoteOn, message);
156 queue.Get(&message); 157 queue.Get(&message);
157 EXPECT_MESSAGE(kTimingClock, message); 158 EXPECT_MESSAGE(kTimingClock, message);
158 queue.Get(&message); 159 queue.Get(&message);
159 EXPECT_MESSAGE(kTimingClock, message); 160 EXPECT_MESSAGE(kTimingClock, message);
160 queue.Get(&message); 161 queue.Get(&message);
161 EXPECT_MESSAGE(kNoteOn, message); 162 EXPECT_MESSAGE(kNoteOn, message);
162 queue.Get(&message); 163 queue.Get(&message);
163 EXPECT_MESSAGE(kTimingClock, message); 164 EXPECT_MESSAGE(kTimingClock, message);
164 queue.Get(&message); 165 queue.Get(&message);
165 EXPECT_MESSAGE(kTimingClock, message); 166 EXPECT_MESSAGE(kTimingClock, message);
166 queue.Get(&message); 167 queue.Get(&message);
167 EXPECT_MESSAGE(kNoteOn, message); 168 EXPECT_MESSAGE(kNoteOn, message);
168 queue.Get(&message); 169 queue.Get(&message);
169 EXPECT_TRUE(message.empty()); 170 EXPECT_TRUE(message.empty());
170 } 171 }
171 172
173 TEST(MidiMessageQueueTest, RunningStatusEnabledWithSystemCommonMessage) {
174 MidiMessageQueue queue(true);
175 const uint8 kNoteOnWithRunningStatusWithSystemCommonMessage[] = {
176 0x90, 0x3c, 0x7f, 0xf1, 0x00, 0x3c, 0x7f, 0xf8, 0x90, 0x3c, 0x7f,
177 };
178 Add(&queue, kNoteOnWithRunningStatusWithSystemCommonMessage);
179 std::vector<uint8> message;
180 queue.Get(&message);
181 EXPECT_MESSAGE(kNoteOn, message);
182 queue.Get(&message);
183 EXPECT_MESSAGE(kMTCFrame, message);
184 queue.Get(&message);
185 EXPECT_MESSAGE(kTimingClock, message) << "Running status should be reset";
186 queue.Get(&message);
187 EXPECT_MESSAGE(kNoteOn, message);
188 queue.Get(&message);
189 EXPECT_TRUE(message.empty());
190 }
191
172 } // namespace 192 } // namespace
173 } // namespace media 193 } // namespace media
OLDNEW
« no previous file with comments | « media/midi/midi_message_queue.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698