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

Side by Side Diff: media/formats/webm/webm_content_encodings_client_unittest.cc

Issue 1310423003: Revert of MSE: Verify MediaLog events created by existing WebM unit tests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 4 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 "base/bind.h"
6 #include "media/formats/webm/webm_constants.h"
5 #include "media/formats/webm/webm_content_encodings_client.h" 7 #include "media/formats/webm/webm_content_encodings_client.h"
6
7 #include <string>
8
9 #include "base/bind.h"
10 #include "base/strings/string_number_conversions.h"
11 #include "media/base/mock_media_log.h"
12 #include "media/formats/webm/webm_constants.h"
13 #include "media/formats/webm/webm_parser.h" 8 #include "media/formats/webm/webm_parser.h"
14 #include "testing/gmock/include/gmock/gmock.h"
15 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
16 10
17 using ::testing::StrictMock;
18
19 namespace media { 11 namespace media {
20 12
21 // Matchers for verifying common media log entry strings.
22 MATCHER(MissingContentEncoding, "") {
23 return CONTAINS_STRING(arg, "Missing ContentEncoding.");
24 }
25
26 MATCHER(UnexpectedContentEncodingOrder, "") {
27 return CONTAINS_STRING(arg, "Unexpected ContentEncodingOrder.");
28 }
29
30 MATCHER(UnexpectedContentEncodingScope, "") {
31 return CONTAINS_STRING(arg, "Unexpected ContentEncodingScope.");
32 }
33
34 MATCHER(ContentCompressionNotSupported, "") {
35 return CONTAINS_STRING(arg, "ContentCompression not supported.");
36 }
37
38 MATCHER(MissingContentEncryption, "") {
39 return CONTAINS_STRING(
40 arg,
41 "ContentEncodingType is encryption but ContentEncryption is missing.");
42 }
43
44 MATCHER_P(UnexpectedContentEncAlgo, algo, "") {
45 return CONTAINS_STRING(
46 arg, "Unexpected ContentEncAlgo " + base::IntToString(algo) + ".");
47 }
48
49 class WebMContentEncodingsClientTest : public testing::Test { 13 class WebMContentEncodingsClientTest : public testing::Test {
50 public: 14 public:
51 WebMContentEncodingsClientTest() 15 WebMContentEncodingsClientTest()
52 : media_log_(new StrictMock<MockMediaLog>()), 16 : client_(new MediaLog()), parser_(kWebMIdContentEncodings, &client_) {}
53 client_(media_log_),
54 parser_(kWebMIdContentEncodings, &client_) {}
55 17
56 void ParseAndExpectToFail(const uint8* buf, int size) { 18 void ParseAndExpectToFail(const uint8* buf, int size) {
57 int result = parser_.Parse(buf, size); 19 int result = parser_.Parse(buf, size);
58 EXPECT_EQ(-1, result); 20 EXPECT_EQ(-1, result);
59 } 21 }
60 22
61 protected: 23 protected:
62 scoped_refptr<StrictMock<MockMediaLog>> media_log_;
63 WebMContentEncodingsClient client_; 24 WebMContentEncodingsClient client_;
64 WebMListParser parser_; 25 WebMListParser parser_;
65 }; 26 };
66 27
67 TEST_F(WebMContentEncodingsClientTest, EmptyContentEncodings) { 28 TEST_F(WebMContentEncodingsClientTest, EmptyContentEncodings) {
68 const uint8 kContentEncodings[] = { 29 const uint8 kContentEncodings[] = {
69 0x6D, 0x80, 0x80, // ContentEncodings (size = 0) 30 0x6D, 0x80, 0x80, // ContentEncodings (size = 0)
70 }; 31 };
71 int size = sizeof(kContentEncodings); 32 int size = sizeof(kContentEncodings);
72 EXPECT_MEDIA_LOG(MissingContentEncoding());
73 ParseAndExpectToFail(kContentEncodings, size); 33 ParseAndExpectToFail(kContentEncodings, size);
74 } 34 }
75 35
76 TEST_F(WebMContentEncodingsClientTest, EmptyContentEncoding) { 36 TEST_F(WebMContentEncodingsClientTest, EmptyContentEncoding) {
77 const uint8 kContentEncodings[] = { 37 const uint8 kContentEncodings[] = {
78 0x6D, 0x80, 0x83, // ContentEncodings (size = 3) 38 0x6D, 0x80, 0x83, // ContentEncodings (size = 3)
79 0x63, 0x40, 0x80, // ContentEncoding (size = 0) 39 0x63, 0x40, 0x80, // ContentEncoding (size = 0)
80 }; 40 };
81 int size = sizeof(kContentEncodings); 41 int size = sizeof(kContentEncodings);
82 ParseAndExpectToFail(kContentEncodings, size); 42 ParseAndExpectToFail(kContentEncodings, size);
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 175
216 TEST_F(WebMContentEncodingsClientTest, InvalidContentEncodingOrder) { 176 TEST_F(WebMContentEncodingsClientTest, InvalidContentEncodingOrder) {
217 const uint8 kContentEncodings[] = { 177 const uint8 kContentEncodings[] = {
218 0x6D, 0x80, 0x8E, // ContentEncodings (size = 14) 178 0x6D, 0x80, 0x8E, // ContentEncodings (size = 14)
219 0x62, 0x40, 0x8B, // ContentEncoding (size = 11) 179 0x62, 0x40, 0x8B, // ContentEncoding (size = 11)
220 0x50, 0x31, 0x81, 0xEE, // ContentEncodingOrder (size = 1), invalid 180 0x50, 0x31, 0x81, 0xEE, // ContentEncodingOrder (size = 1), invalid
221 0x50, 0x33, 0x81, 0x01, // ContentEncodingType (size = 1) 181 0x50, 0x33, 0x81, 0x01, // ContentEncodingType (size = 1)
222 0x50, 0x35, 0x80, // ContentEncryption (size = 0) 182 0x50, 0x35, 0x80, // ContentEncryption (size = 0)
223 }; 183 };
224 int size = sizeof(kContentEncodings); 184 int size = sizeof(kContentEncodings);
225 EXPECT_MEDIA_LOG(UnexpectedContentEncodingOrder());
226 ParseAndExpectToFail(kContentEncodings, size); 185 ParseAndExpectToFail(kContentEncodings, size);
227 } 186 }
228 187
229 TEST_F(WebMContentEncodingsClientTest, InvalidContentEncodingScope) { 188 TEST_F(WebMContentEncodingsClientTest, InvalidContentEncodingScope) {
230 const uint8 kContentEncodings[] = { 189 const uint8 kContentEncodings[] = {
231 0x6D, 0x80, 0x8E, // ContentEncodings (size = 14) 190 0x6D, 0x80, 0x8E, // ContentEncodings (size = 14)
232 0x62, 0x40, 0x8B, // ContentEncoding (size = 11) 191 0x62, 0x40, 0x8B, // ContentEncoding (size = 11)
233 0x50, 0x32, 0x81, 0xEE, // ContentEncodingScope (size = 1), invalid 192 0x50, 0x32, 0x81, 0xEE, // ContentEncodingScope (size = 1), invalid
234 0x50, 0x33, 0x81, 0x01, // ContentEncodingType (size = 1) 193 0x50, 0x33, 0x81, 0x01, // ContentEncodingType (size = 1)
235 0x50, 0x35, 0x80, // ContentEncryption (size = 0) 194 0x50, 0x35, 0x80, // ContentEncryption (size = 0)
236 }; 195 };
237 int size = sizeof(kContentEncodings); 196 int size = sizeof(kContentEncodings);
238 EXPECT_MEDIA_LOG(UnexpectedContentEncodingScope());
239 ParseAndExpectToFail(kContentEncodings, size); 197 ParseAndExpectToFail(kContentEncodings, size);
240 } 198 }
241 199
242 TEST_F(WebMContentEncodingsClientTest, InvalidContentEncodingType) { 200 TEST_F(WebMContentEncodingsClientTest, InvalidContentEncodingType) {
243 const uint8 kContentEncodings[] = { 201 const uint8 kContentEncodings[] = {
244 0x6D, 0x80, 0x8E, // ContentEncodings (size = 14) 202 0x6D, 0x80, 0x8E, // ContentEncodings (size = 14)
245 0x62, 0x40, 0x8B, // ContentEncoding (size = 11) 203 0x62, 0x40, 0x8B, // ContentEncoding (size = 11)
246 0x50, 0x33, 0x81, 0x00, // ContentEncodingType (size = 1), invalid 204 0x50, 0x33, 0x81, 0x00, // ContentEncodingType (size = 1), invalid
247 0x50, 0x35, 0x80, // ContentEncryption (size = 0) 205 0x50, 0x35, 0x80, // ContentEncryption (size = 0)
248 }; 206 };
249 int size = sizeof(kContentEncodings); 207 int size = sizeof(kContentEncodings);
250 EXPECT_MEDIA_LOG(ContentCompressionNotSupported());
251 ParseAndExpectToFail(kContentEncodings, size); 208 ParseAndExpectToFail(kContentEncodings, size);
252 } 209 }
253 210
254 // ContentEncodingType is encryption but no ContentEncryption present. 211 // ContentEncodingType is encryption but no ContentEncryption present.
255 TEST_F(WebMContentEncodingsClientTest, MissingContentEncryption) { 212 TEST_F(WebMContentEncodingsClientTest, MissingContentEncryption) {
256 const uint8 kContentEncodings[] = { 213 const uint8 kContentEncodings[] = {
257 0x6D, 0x80, 0x87, // ContentEncodings (size = 7) 214 0x6D, 0x80, 0x87, // ContentEncodings (size = 7)
258 0x62, 0x40, 0x84, // ContentEncoding (size = 4) 215 0x62, 0x40, 0x84, // ContentEncoding (size = 4)
259 0x50, 0x33, 0x81, 0x01, // ContentEncodingType (size = 1) 216 0x50, 0x33, 0x81, 0x01, // ContentEncodingType (size = 1)
260 // ContentEncryption missing 217 // ContentEncryption missing
261 }; 218 };
262 int size = sizeof(kContentEncodings); 219 int size = sizeof(kContentEncodings);
263 EXPECT_MEDIA_LOG(MissingContentEncryption());
264 ParseAndExpectToFail(kContentEncodings, size); 220 ParseAndExpectToFail(kContentEncodings, size);
265 } 221 }
266 222
267 TEST_F(WebMContentEncodingsClientTest, InvalidContentEncAlgo) { 223 TEST_F(WebMContentEncodingsClientTest, InvalidContentEncAlgo) {
268 const uint8 kContentEncodings[] = { 224 const uint8 kContentEncodings[] = {
269 0x6D, 0x80, 0x99, // ContentEncodings (size = 25) 225 0x6D, 0x80, 0x99, // ContentEncodings (size = 25)
270 0x62, 0x40, 0x96, // ContentEncoding (size = 22) 226 0x62, 0x40, 0x96, // ContentEncoding (size = 22)
271 0x50, 0x33, 0x81, 0x01, // ContentEncodingType (size = 1) 227 0x50, 0x33, 0x81, 0x01, // ContentEncodingType (size = 1)
272 0x50, 0x35, 0x8F, // ContentEncryption (size = 15) 228 0x50, 0x35, 0x8F, // ContentEncryption (size = 15)
273 0x47, 0xE1, 0x81, 0xEE, // ContentEncAlgo (size = 1), invalid 229 0x47, 0xE1, 0x81, 0xEE, // ContentEncAlgo (size = 1), invalid
274 0x47, 0xE2, 0x88, // ContentEncKeyID (size = 8) 230 0x47, 0xE2, 0x88, // ContentEncKeyID (size = 8)
275 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 231 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
276 }; 232 };
277 int size = sizeof(kContentEncodings); 233 int size = sizeof(kContentEncodings);
278 EXPECT_MEDIA_LOG(UnexpectedContentEncAlgo(0xEE));
279 ParseAndExpectToFail(kContentEncodings, size); 234 ParseAndExpectToFail(kContentEncodings, size);
280 } 235 }
281 236
282 } // namespace media 237 } // namespace media
OLDNEW
« no previous file with comments | « media/formats/webm/webm_cluster_parser_unittest.cc ('k') | media/formats/webm/webm_tracks_parser_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698