1 // Copyright (c) 2011 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 "jingle/notifier/listener/xml_element_util.h" 6 7 #include <sstream> 8 #include <string> 9 10 #include "base/memory/scoped_ptr.h" 11 #include "testing/gtest/include/gtest/gtest.h" 12 #include "third_party/webrtc/libjingle/xmllite/qname.h" 13 #include "third_party/webrtc/libjingle/xmllite/xmlelement.h" 14 #include "third_party/webrtc/libjingle/xmllite/xmlprinter.h" 15 16 namespace buzz { 17 class XmlElement; 18 } 19 20 namespace notifier { 21 namespace { 22 23 class XmlElementUtilTest : public testing::Test {}; 24 25 TEST_F(XmlElementUtilTest, XmlElementToString) { 26 const buzz::QName kQName("namespace", "element"); 27 const buzz::XmlElement kXmlElement(kQName, true); 28 std::ostringstream expected_xml_stream; 29 buzz::XmlPrinter::PrintXml(&expected_xml_stream, &kXmlElement); 30 EXPECT_EQ(expected_xml_stream.str(), XmlElementToString(kXmlElement)); 31 } 32 33 TEST_F(XmlElementUtilTest, MakeBoolXmlElement) { 34 scoped_ptr<buzz::XmlElement> foo_false( 35 MakeBoolXmlElement("foo", false)); 36 EXPECT_EQ("<foo xmlns=\"\" bool=\"false\"/>", XmlElementToString(*foo_false)); 37 38 scoped_ptr<buzz::XmlElement> bar_true( 39 MakeBoolXmlElement("bar", true)); 40 EXPECT_EQ("<bar xmlns=\"\" bool=\"true\"/>", XmlElementToString(*bar_true)); 41 } 42 43 TEST_F(XmlElementUtilTest, MakeIntXmlElement) { 44 scoped_ptr<buzz::XmlElement> int_xml_element( 45 MakeIntXmlElement("foo", 35)); 46 EXPECT_EQ("<foo xmlns=\"\" int=\"35\"/>", 47 XmlElementToString(*int_xml_element)); 48 } 49 50 TEST_F(XmlElementUtilTest, MakeStringXmlElement) { 51 scoped_ptr<buzz::XmlElement> string_xml_element( 52 MakeStringXmlElement("foo", "bar")); 53 EXPECT_EQ("<foo xmlns=\"\" data=\"bar\"/>", 54 XmlElementToString(*string_xml_element)); 55 } 56 57 } // namespace 58 } // namespace notifier 59