| Index: media/base/video_frame_unittest.cc
|
| diff --git a/media/base/video_frame_unittest.cc b/media/base/video_frame_unittest.cc
|
| index f2635f9650081a7a2ae839ac233b0aa63d04884f..5c2159f65f73a4f7d3bd7b271cadd8f4981f1952 100644
|
| --- a/media/base/video_frame_unittest.cc
|
| +++ b/media/base/video_frame_unittest.cc
|
| @@ -328,4 +328,83 @@ TEST(VideoFrame, ZeroInitialized) {
|
| EXPECT_EQ(0, frame->data(i)[0]);
|
| }
|
|
|
| +TEST(VideoFrameMetadata, SetAndThenGetAllKeysForAllTypes) {
|
| + VideoFrameMetadata metadata;
|
| +
|
| + for (int i = 0; i < VideoFrameMetadata::NUM_KEYS; ++i) {
|
| + const VideoFrameMetadata::Key key = static_cast<VideoFrameMetadata::Key>(i);
|
| +
|
| + EXPECT_FALSE(metadata.HasKey(key));
|
| + metadata.SetBoolean(key, true);
|
| + EXPECT_TRUE(metadata.HasKey(key));
|
| + bool bool_value = false;
|
| + EXPECT_TRUE(metadata.GetBoolean(key, &bool_value));
|
| + EXPECT_EQ(true, bool_value);
|
| + metadata.Clear();
|
| +
|
| + EXPECT_FALSE(metadata.HasKey(key));
|
| + metadata.SetInteger(key, i);
|
| + EXPECT_TRUE(metadata.HasKey(key));
|
| + int int_value = -999;
|
| + EXPECT_TRUE(metadata.GetInteger(key, &int_value));
|
| + EXPECT_EQ(i, int_value);
|
| + metadata.Clear();
|
| +
|
| + EXPECT_FALSE(metadata.HasKey(key));
|
| + metadata.SetDouble(key, 3.14 * i);
|
| + EXPECT_TRUE(metadata.HasKey(key));
|
| + double double_value = -999.99;
|
| + EXPECT_TRUE(metadata.GetDouble(key, &double_value));
|
| + EXPECT_EQ(3.14 * i, double_value);
|
| + metadata.Clear();
|
| +
|
| + EXPECT_FALSE(metadata.HasKey(key));
|
| + metadata.SetString(key, base::StringPrintf("\xfe%d\xff", i));
|
| + EXPECT_TRUE(metadata.HasKey(key));
|
| + std::string string_value;
|
| + EXPECT_TRUE(metadata.GetString(key, &string_value));
|
| + EXPECT_EQ(base::StringPrintf("\xfe%d\xff", i), string_value);
|
| + metadata.Clear();
|
| +
|
| + EXPECT_FALSE(metadata.HasKey(key));
|
| + metadata.SetTimeTicks(key, base::TimeTicks::FromInternalValue(~(0LL) + i));
|
| + EXPECT_TRUE(metadata.HasKey(key));
|
| + base::TimeTicks ticks_value;
|
| + EXPECT_TRUE(metadata.GetTimeTicks(key, &ticks_value));
|
| + EXPECT_EQ(base::TimeTicks::FromInternalValue(~(0LL) + i), ticks_value);
|
| + metadata.Clear();
|
| +
|
| + EXPECT_FALSE(metadata.HasKey(key));
|
| + metadata.SetValue(key,
|
| + scoped_ptr<base::Value>(base::Value::CreateNullValue()));
|
| + EXPECT_TRUE(metadata.HasKey(key));
|
| + const base::Value* const null_value = metadata.GetValue(key);
|
| + EXPECT_TRUE(null_value);
|
| + EXPECT_EQ(base::Value::TYPE_NULL, null_value->GetType());
|
| + metadata.Clear();
|
| + }
|
| +}
|
| +
|
| +TEST(VideoFrameMetadata, PassMetadataViaIntermediary) {
|
| + VideoFrameMetadata expected;
|
| + for (int i = 0; i < VideoFrameMetadata::NUM_KEYS; ++i) {
|
| + const VideoFrameMetadata::Key key = static_cast<VideoFrameMetadata::Key>(i);
|
| + expected.SetInteger(key, i);
|
| + }
|
| +
|
| + base::DictionaryValue tmp;
|
| + expected.MergeInternalValuesInto(&tmp);
|
| + EXPECT_EQ(static_cast<size_t>(VideoFrameMetadata::NUM_KEYS), tmp.size());
|
| +
|
| + VideoFrameMetadata result;
|
| + result.MergeInternalValuesFrom(tmp);
|
| +
|
| + for (int i = 0; i < VideoFrameMetadata::NUM_KEYS; ++i) {
|
| + const VideoFrameMetadata::Key key = static_cast<VideoFrameMetadata::Key>(i);
|
| + int value = -1;
|
| + EXPECT_TRUE(result.GetInteger(key, &value));
|
| + EXPECT_EQ(i, value);
|
| + }
|
| +}
|
| +
|
| } // namespace media
|
|
|