Index: media/formats/mp4/aac_unittest.cc |
diff --git a/media/formats/mp4/aac_unittest.cc b/media/formats/mp4/aac_unittest.cc |
index df1b596873161533a10705458c7b8d6066f7ddc9..264727f38c3e7ab8f19ee999cf50d40eb0355568 100644 |
--- a/media/formats/mp4/aac_unittest.cc |
+++ b/media/formats/mp4/aac_unittest.cc |
@@ -2,20 +2,33 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+#include <string> |
+ |
+#include "media/base/mock_media_log.h" |
#include "media/formats/mp4/aac.h" |
+#include "testing/gmock/include/gmock/gmock.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
+using ::testing::InSequence; |
+using ::testing::StrictMock; |
namespace media { |
namespace mp4 { |
+MATCHER_P(AudioCodecLog, codec_string, "") { |
+ return CONTAINS_STRING(arg, "Audio codec: " + std::string(codec_string)); |
+} |
+ |
class AACTest : public testing::Test { |
public: |
+ AACTest() : media_log_(new StrictMock<MockMediaLog>()) {} |
+ |
bool Parse(const std::vector<uint8>& data) { |
- return aac_.Parse(data, new MediaLog()); |
+ return aac_.Parse(data, media_log_); |
} |
+ scoped_refptr<StrictMock<MockMediaLog>> media_log_; |
AAC aac_; |
}; |
@@ -24,6 +37,8 @@ |
std::vector<uint8> data; |
data.assign(buffer, buffer + sizeof(buffer)); |
+ |
+ EXPECT_MEDIA_LOG(AudioCodecLog("mp4a.40.2")); |
EXPECT_TRUE(Parse(data)); |
EXPECT_EQ(aac_.GetOutputSamplesPerSecond(false), 44100); |
@@ -35,6 +50,8 @@ |
std::vector<uint8> data; |
data.assign(buffer, buffer + sizeof(buffer)); |
+ |
+ EXPECT_MEDIA_LOG(AudioCodecLog("mp4a.40.2")); |
EXPECT_TRUE(Parse(data)); |
EXPECT_EQ(aac_.GetOutputSamplesPerSecond(false), 48000); |
@@ -51,6 +68,8 @@ |
std::vector<uint8> data; |
data.assign(buffer, buffer + sizeof(buffer)); |
+ |
+ EXPECT_MEDIA_LOG(AudioCodecLog("mp4a.40.2")); |
EXPECT_TRUE(Parse(data)); |
@@ -70,6 +89,8 @@ |
data.assign(buffer, buffer + sizeof(buffer)); |
+ EXPECT_MEDIA_LOG(AudioCodecLog("mp4a.40.2")); |
+ |
EXPECT_TRUE(Parse(data)); |
// Test w/o implict SBR. |
@@ -87,6 +108,8 @@ |
data.assign(buffer, buffer + sizeof(buffer)); |
+ EXPECT_MEDIA_LOG(AudioCodecLog("mp4a.40.2")); |
+ |
EXPECT_TRUE(Parse(data)); |
EXPECT_EQ(aac_.GetOutputSamplesPerSecond(false), 48000); |
EXPECT_EQ(aac_.GetChannelLayout(false), CHANNEL_LAYOUT_5_1_BACK); |
@@ -102,17 +125,22 @@ |
} |
TEST_F(AACTest, IncorrectProfileTest) { |
+ InSequence s; |
uint8 buffer[] = {0x0, 0x08}; |
std::vector<uint8> data; |
data.assign(buffer, buffer + sizeof(buffer)); |
+ EXPECT_MEDIA_LOG(AudioCodecLog("mp4a.40.0")); |
EXPECT_FALSE(Parse(data)); |
data[0] = 0x08; |
+ EXPECT_MEDIA_LOG(AudioCodecLog("mp4a.40.1")); |
EXPECT_TRUE(Parse(data)); |
data[0] = 0x28; |
+ // No media log for this profile 5, since not enough bits are in |data| to |
+ // first parse profile 5's extension frequency index. |
EXPECT_FALSE(Parse(data)); |
} |
@@ -126,6 +154,7 @@ |
data[0] = 0x0e; |
data[1] = 0x08; |
+ EXPECT_MEDIA_LOG(AudioCodecLog("mp4a.40.1")); |
EXPECT_TRUE(Parse(data)); |
} |
@@ -134,6 +163,8 @@ |
std::vector<uint8> data; |
data.assign(buffer, buffer + sizeof(buffer)); |
+ |
+ EXPECT_MEDIA_LOG(AudioCodecLog("mp4a.40.1")).Times(2); |
EXPECT_FALSE(Parse(data)); |