| Index: media/remoting/proto_utils_unittest.cc | 
| diff --git a/media/remoting/proto_utils_unittest.cc b/media/remoting/proto_utils_unittest.cc | 
| index 53ab59197d8ad3a1ab9b18d6678faf5edbac584c..c974c0f8825b37abcf81b22c0d8d08fd7f0ee87a 100644 | 
| --- a/media/remoting/proto_utils_unittest.cc | 
| +++ b/media/remoting/proto_utils_unittest.cc | 
| @@ -18,6 +18,7 @@ | 
| #include "media/base/decoder_buffer.h" | 
| #include "media/base/demuxer_stream.h" | 
| #include "media/base/eme_constants.h" | 
| +#include "media/base/test_helpers.h" | 
| #include "media/base/video_decoder_config.h" | 
| #include "media/remoting/rpc.pb.h" | 
| #include "testing/gmock/include/gmock/gmock.h" | 
| @@ -29,6 +30,17 @@ using testing::Return; | 
|  | 
| namespace media { | 
| namespace remoting { | 
| +namespace { | 
| + | 
| +void VerifyCdmPromiseResultsEqual(const CdmPromiseResult& cdm1, | 
| +                                  const CdmPromiseResult& cdm2) { | 
| +  ASSERT_EQ(cdm1.success(), cdm2.success()); | 
| +  ASSERT_EQ(cdm1.exception(), cdm2.exception()); | 
| +  ASSERT_EQ(cdm1.system_code(), cdm2.system_code()); | 
| +  ASSERT_EQ(cdm1.error_message(), cdm2.error_message()); | 
| +} | 
| + | 
| +}  // namespace | 
|  | 
| class ProtoUtilsTest : public testing::Test { | 
| protected: | 
| @@ -149,7 +161,15 @@ TEST_F(ProtoUtilsTest, PipelineStatisticsConversion) { | 
| EXPECT_EQ(0, memcmp(&original, &converted, sizeof(converted))); | 
| } | 
|  | 
| -// TODO(miu): Tests for all other conversion functions. | 
| +TEST_F(ProtoUtilsTest, VideoDecoderConfigConversionTest) { | 
| +  const VideoDecoderConfig video_config = TestVideoConfig::Normal(); | 
| +  ASSERT_TRUE(video_config.IsValidConfig()); | 
| +  pb::VideoDecoderConfig message; | 
| +  ConvertVideoDecoderConfigToProto(video_config, &message); | 
| +  VideoDecoderConfig converted; | 
| +  ASSERT_TRUE(ConvertProtoToVideoDecoderConfig(message, &converted)); | 
| +  ASSERT_TRUE(converted.Matches(video_config)); | 
| +} | 
|  | 
| TEST_F(ProtoUtilsTest, CdmPromiseResultConversion) { | 
| CdmPromiseResult success_result = CdmPromiseResult::SuccessResult(); | 
| @@ -160,10 +180,34 @@ TEST_F(ProtoUtilsTest, CdmPromiseResultConversion) { | 
| CdmPromiseResult output_result; | 
| ASSERT_TRUE(ConvertProtoToCdmPromise(promise_message, &output_result)); | 
|  | 
| -  ASSERT_EQ(success_result.success(), output_result.success()); | 
| -  ASSERT_EQ(success_result.exception(), output_result.exception()); | 
| -  ASSERT_EQ(success_result.system_code(), output_result.system_code()); | 
| -  ASSERT_EQ(success_result.error_message(), output_result.error_message()); | 
| +  VerifyCdmPromiseResultsEqual(success_result, output_result); | 
| +} | 
| + | 
| +TEST_F(ProtoUtilsTest, CdmPromiseResultWithCdmIdSessionIdConversion) { | 
| +  const int kCdmId = 5; | 
| +  const std::string kSessionId = "session3"; | 
| +  CdmPromiseResult success_result = CdmPromiseResult::SuccessResult(); | 
| + | 
| +  pb::RpcMessage rpc; | 
| +  rpc.set_handle(1); | 
| +  pb::CdmPromise* promise_message = rpc.mutable_cdm_promise_rpc(); | 
| + | 
| +  ConvertCdmPromiseWithSessionIdToProto(success_result, kSessionId, | 
| +                                        promise_message); | 
| +  CdmPromiseResult output_result; | 
| +  std::string converted_session_id; | 
| +  ASSERT_TRUE(ConvertProtoToCdmPromiseWithCdmIdSessionId( | 
| +      rpc, &output_result, nullptr, &converted_session_id)); | 
| +  VerifyCdmPromiseResultsEqual(success_result, output_result); | 
| +  ASSERT_EQ(converted_session_id, kSessionId); | 
| + | 
| +  ConvertCdmPromiseWithCdmIdToProto(success_result, kCdmId, promise_message); | 
| +  int converted_cdm_id; | 
| +  output_result = CdmPromiseResult(); | 
| +  ASSERT_TRUE(ConvertProtoToCdmPromiseWithCdmIdSessionId( | 
| +      rpc, &output_result, &converted_cdm_id, nullptr)); | 
| +  VerifyCdmPromiseResultsEqual(success_result, output_result); | 
| +  ASSERT_EQ(converted_cdm_id, kCdmId); | 
| } | 
|  | 
| TEST_F(ProtoUtilsTest, CdmKeyInformationConversion) { | 
|  |