Index: content/renderer/media/media_recorder_handler_unittest.cc |
diff --git a/content/renderer/media/media_recorder_handler_unittest.cc b/content/renderer/media/media_recorder_handler_unittest.cc |
index 12870f0655eee1d2ee4a4f3dc9b261d3e27598cf..b3ac9d1d0f4832959c012b03b6af16a64286ffe1 100644 |
--- a/content/renderer/media/media_recorder_handler_unittest.cc |
+++ b/content/renderer/media/media_recorder_handler_unittest.cc |
@@ -19,6 +19,8 @@ using ::testing::AtLeast; |
using ::testing::InSequence; |
using ::testing::Lt; |
using ::testing::Mock; |
+using ::testing::TestWithParam; |
+using ::testing::ValuesIn; |
using blink::WebString; |
@@ -31,9 +33,18 @@ ACTION_P(RunClosure, closure) { |
static const std::string kTestStreamUrl = "stream_url"; |
static const std::string kTestVideoTrackId = "video_track_id"; |
-class MediaRecorderHandlerTest |
- : public testing::Test |
- , public blink::WebMediaRecorderHandlerClient { |
+struct MediaRecorderTestParams { |
+ const char* const mime_type; |
+ const size_t first_encoded_frame_size; |
+ const size_t second_encoded_frame_size; |
+}; |
+ |
+static const MediaRecorderTestParams kMediaRecorderTestParams[] = { |
+ {"video/vp8", 52, 32}, |
+ {"video/vp9", 33, 18}}; |
+ |
+class MediaRecorderHandlerTest : public TestWithParam<MediaRecorderTestParams>, |
+ public blink::WebMediaRecorderHandlerClient { |
public: |
MediaRecorderHandlerTest() |
: media_recorder_handler_(new MediaRecorderHandler()) { |
@@ -79,8 +90,11 @@ class MediaRecorderHandlerTest |
// Checks that canSupportMimeType() works as expected. |
// TODO(mcasas): revisit this when canSupportMimeType() is fully implemented. |
TEST_F(MediaRecorderHandlerTest, CanSupportMimeType) { |
- const WebString good_mime_type(base::UTF8ToUTF16("video/vp8")); |
- EXPECT_TRUE(media_recorder_handler_->canSupportMimeType(good_mime_type)); |
+ const WebString good_mime_type_vp8(base::UTF8ToUTF16("video/vp8")); |
+ EXPECT_TRUE(media_recorder_handler_->canSupportMimeType(good_mime_type_vp8)); |
+ |
+ const WebString good_mime_type_vp9(base::UTF8ToUTF16("video/vp9")); |
+ EXPECT_TRUE(media_recorder_handler_->canSupportMimeType(good_mime_type_vp9)); |
const WebString bad_mime_type(base::UTF8ToUTF16("video/unsupportedcodec")); |
EXPECT_FALSE(media_recorder_handler_->canSupportMimeType(bad_mime_type)); |
@@ -90,11 +104,11 @@ TEST_F(MediaRecorderHandlerTest, CanSupportMimeType) { |
} |
// Checks that the initialization-destruction sequence works fine. |
-TEST_F(MediaRecorderHandlerTest, InitializeStartStop) { |
- const WebString mime_type(base::UTF8ToUTF16("")); |
+TEST_P(MediaRecorderHandlerTest, InitializeStartStop) { |
+ const WebString mime_type(base::UTF8ToUTF16(GetParam().mime_type)); |
EXPECT_TRUE(media_recorder_handler_->initialize(this, |
- registry_.test_stream(), |
- mime_type)); |
+ registry_.test_stream(), |
+ mime_type)); |
EXPECT_FALSE(recording()); |
EXPECT_FALSE(hasVideoRecorders()); |
@@ -112,8 +126,8 @@ TEST_F(MediaRecorderHandlerTest, InitializeStartStop) { |
} |
// Sends 2 frames and expect them as WebM contained encoded data in writeData(). |
-TEST_F(MediaRecorderHandlerTest, EncodeVideoFrames) { |
- const WebString mime_type(base::UTF8ToUTF16("video/vp8")); |
+TEST_P(MediaRecorderHandlerTest, EncodeVideoFrames) { |
+ const WebString mime_type(base::UTF8ToUTF16(GetParam().mime_type)); |
EXPECT_TRUE(media_recorder_handler_->initialize(this, registry_.test_stream(), |
mime_type)); |
EXPECT_TRUE(media_recorder_handler_->start()); |
@@ -127,10 +141,10 @@ TEST_F(MediaRecorderHandlerTest, EncodeVideoFrames) { |
base::Closure quit_closure = run_loop.QuitClosure(); |
// writeData() is pinged a number of times as the WebM header is written; |
// the last time it is called it has the encoded data. |
- const size_t kEncodedDataSize = 52; |
- EXPECT_CALL(*this, writeData(_, Lt(kEncodedDataSize), false)) |
+ const size_t encoded_data_size = GetParam().first_encoded_frame_size; |
+ EXPECT_CALL(*this, writeData(_, Lt(encoded_data_size), false)) |
.Times(AtLeast(1)); |
- EXPECT_CALL(*this, writeData(_, kEncodedDataSize, false)) |
+ EXPECT_CALL(*this, writeData(_, encoded_data_size, false)) |
.Times(1) |
.WillOnce(RunClosure(quit_closure)); |
@@ -143,10 +157,10 @@ TEST_F(MediaRecorderHandlerTest, EncodeVideoFrames) { |
base::Closure quit_closure = run_loop.QuitClosure(); |
// The second time around writeData() is called a number of times to write |
// the WebM frame header, and then is pinged with the encoded data. |
- const size_t kSecondEncodedDataSize = 32; |
- EXPECT_CALL(*this, writeData(_, Lt(kSecondEncodedDataSize), false)) |
+ const size_t encoded_data_size = GetParam().second_encoded_frame_size; |
+ EXPECT_CALL(*this, writeData(_, Lt(encoded_data_size), false)) |
.Times(AtLeast(1)); |
- EXPECT_CALL(*this, writeData(_, kSecondEncodedDataSize, false)) |
+ EXPECT_CALL(*this, writeData(_, encoded_data_size, false)) |
.Times(1) |
.WillOnce(RunClosure(quit_closure)); |
@@ -161,4 +175,8 @@ TEST_F(MediaRecorderHandlerTest, EncodeVideoFrames) { |
media_recorder_handler_.reset(); |
} |
+INSTANTIATE_TEST_CASE_P(, |
+ MediaRecorderHandlerTest, |
+ ValuesIn(kMediaRecorderTestParams)); |
+ |
} // namespace content |