| // Copyright 2016 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "media/base/media_serializers.h" |
| |
| #include <memory> |
| |
| #include "base/json/json_writer.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| namespace media { |
| |
| std::string ToString(const base::Value& value) { |
| if (value.is_string()) { |
| return value.GetString(); |
| } |
| std::string output_str; |
| base::JSONWriter::Write(value, &output_str); |
| return output_str; |
| } |
| |
| TEST(MediaSerializersTest, BaseTypes) { |
| int a = 1; |
| int64_t b = 2; |
| bool c = false; |
| double d = 100; |
| float e = 4523; |
| std::string f = "foo"; |
| const char* g = "bar"; |
| |
| ASSERT_EQ(ToString(MediaSerialize(a)), "1"); |
| ASSERT_EQ(ToString(MediaSerialize(b)), "0x2"); |
| ASSERT_EQ(ToString(MediaSerialize(c)), "false"); |
| ASSERT_EQ(ToString(MediaSerialize(d)), "100.0"); |
| ASSERT_EQ(ToString(MediaSerialize(e)), "4523.0"); |
| ASSERT_EQ(ToString(MediaSerialize(f)), "foo"); |
| ASSERT_EQ(ToString(MediaSerialize(g)), "bar"); |
| |
| ASSERT_EQ(ToString(MediaSerialize("raw string")), "raw string"); |
| } |
| |
| TEST(MediaSerializersTest, Optional) { |
| absl::optional<int> foo; |
| ASSERT_EQ(ToString(MediaSerialize(foo)), "unset"); |
| |
| foo = 1; |
| ASSERT_EQ(ToString(MediaSerialize(foo)), "1"); |
| } |
| |
| TEST(MediaSerializersTest, Vector) { |
| std::vector<int> foo = {1, 2, 3, 6, 78, 8}; |
| ASSERT_EQ(ToString(MediaSerialize(foo)), "[1,2,3,6,78,8]"); |
| |
| std::vector<std::string> bar = {"1", "3"}; |
| ASSERT_EQ(ToString(MediaSerialize(bar)), "[\"1\",\"3\"]"); |
| } |
| |
| } // namespace media |