OLD | NEW |
(Empty) | |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 #include "remoting/protocol/content_description.h" |
| 6 |
| 7 #include <string> |
| 8 |
| 9 #include "base/logging.h" |
| 10 #include "remoting/protocol/authenticator.h" |
| 11 #include "testing/gmock/include/gmock/gmock.h" |
| 12 #include "testing/gtest/include/gtest/gtest.h" |
| 13 #include "third_party/libjingle/source/talk/xmllite/xmlelement.h" |
| 14 |
| 15 namespace remoting { |
| 16 namespace protocol { |
| 17 |
| 18 TEST(ContentDescriptionTest, FormatAndParse) { |
| 19 scoped_ptr<CandidateSessionConfig> config = |
| 20 CandidateSessionConfig::CreateDefault(); |
| 21 ContentDescription description( |
| 22 config.Pass(), Authenticator::CreateEmptyAuthenticatorMessage()); |
| 23 scoped_ptr<buzz::XmlElement> xml(description.ToXml()); |
| 24 LOG(ERROR) << xml->Str(); |
| 25 scoped_ptr<ContentDescription> parsed( |
| 26 ContentDescription::ParseXml(xml.get())); |
| 27 ASSERT_TRUE(parsed.get()); |
| 28 EXPECT_TRUE(description.config()->control_configs() == |
| 29 parsed->config()->control_configs()); |
| 30 EXPECT_TRUE(description.config()->video_configs() == |
| 31 parsed->config()->video_configs()); |
| 32 EXPECT_TRUE(description.config()->event_configs() == |
| 33 parsed->config()->event_configs()); |
| 34 EXPECT_TRUE(description.config()->audio_configs() == |
| 35 parsed->config()->audio_configs()); |
| 36 } |
| 37 |
| 38 // Verify that we can still parse configs with transports that we don't |
| 39 // recognize. |
| 40 TEST(ContentDescription, ParseUnknown) { |
| 41 std::string kTestDescription = |
| 42 "<description xmlns=\"google:remoting\">" |
| 43 " <control transport=\"stream\" version=\"2\"/>" |
| 44 " <event transport=\"stream\" version=\"2\"/>" |
| 45 " <event transport=\"new_awesome_transport\" version=\"3\"/>" |
| 46 " <video transport=\"stream\" version=\"2\" codec=\"vp8\"/>" |
| 47 " <authentication/>" |
| 48 "</description>"; |
| 49 scoped_ptr<buzz::XmlElement> xml(buzz::XmlElement::ForStr(kTestDescription)); |
| 50 scoped_ptr<ContentDescription> parsed( |
| 51 ContentDescription::ParseXml(xml.get())); |
| 52 ASSERT_TRUE(parsed.get()); |
| 53 EXPECT_EQ(1U, parsed->config()->event_configs().size()); |
| 54 EXPECT_TRUE(parsed->config()->event_configs()[0] == |
| 55 ChannelConfig(ChannelConfig::TRANSPORT_STREAM, |
| 56 kDefaultStreamVersion, |
| 57 ChannelConfig::CODEC_UNDEFINED)); |
| 58 } |
| 59 |
| 60 } // namespace protocol |
| 61 } // namespace remoting |
| 62 |
OLD | NEW |