diff options
author | henrike@webrtc.org <henrike@webrtc.org> | 2014-09-02 15:41:12 +0000 |
---|---|---|
committer | henrike@webrtc.org <henrike@webrtc.org> | 2014-09-02 15:41:12 +0000 |
commit | 48a7b2e84057589be933b5182cded67c9885f8e8 (patch) | |
tree | 05a4d533a009a53f5a344de2acb203d76dd7dd59 /libjingle/xmllite/xmlbuilder_unittest.cc | |
parent | 79426b9ef9171ddbd673373e62e0142e51ee89f8 (diff) | |
download | webrtc-48a7b2e84057589be933b5182cded67c9885f8e8.tar.gz |
Create a copy of talk/xmllite under webrtc/xmllite.
BUG=3379
R=andrew@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/22249004
git-svn-id: http://webrtc.googlecode.com/svn/trunk/webrtc@7027 4adac7df-926f-26a2-2b94-8c16560cd09d
Diffstat (limited to 'libjingle/xmllite/xmlbuilder_unittest.cc')
-rw-r--r-- | libjingle/xmllite/xmlbuilder_unittest.cc | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/libjingle/xmllite/xmlbuilder_unittest.cc b/libjingle/xmllite/xmlbuilder_unittest.cc new file mode 100644 index 00000000..8a5ce08d --- /dev/null +++ b/libjingle/xmllite/xmlbuilder_unittest.cc @@ -0,0 +1,177 @@ +/* + * Copyright 2004 The WebRTC Project Authors. All rights reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#include <iostream> +#include <sstream> +#include <string> +#include "webrtc/libjingle/xmllite/xmlbuilder.h" +#include "webrtc/libjingle/xmllite/xmlelement.h" +#include "webrtc/libjingle/xmllite/xmlparser.h" +#include "webrtc/base/common.h" +#include "webrtc/base/gunit.h" + +using buzz::XmlBuilder; +using buzz::XmlElement; +using buzz::XmlParser; + +TEST(XmlBuilderTest, TestTrivial) { + XmlBuilder builder; + XmlParser::ParseXml(&builder, "<testing/>"); + EXPECT_EQ("<testing/>", builder.BuiltElement()->Str()); +} + +TEST(XmlBuilderTest, TestAttributes1) { + XmlBuilder builder; + XmlParser::ParseXml(&builder, "<testing a='b'/>"); + EXPECT_EQ("<testing a=\"b\"/>", builder.BuiltElement()->Str()); +} + +TEST(XmlBuilderTest, TestAttributes2) { + XmlBuilder builder; + XmlParser::ParseXml(&builder, "<testing e='' long='some text'/>"); + EXPECT_EQ("<testing e=\"\" long=\"some text\"/>", + builder.BuiltElement()->Str()); +} + +TEST(XmlBuilderTest, TestNesting1) { + XmlBuilder builder; + XmlParser::ParseXml(&builder, + "<top><first/><second><third></third></second></top>"); + EXPECT_EQ("<top><first/><second><third/></second></top>", + builder.BuiltElement()->Str()); +} + +TEST(XmlBuilderTest, TestNesting2) { + XmlBuilder builder; + XmlParser::ParseXml(&builder, + "<top><fifth><deeper><and><deeper/></and><sibling><leaf/>" + "</sibling></deeper></fifth><first/><second><third></third>" + "</second></top>"); + EXPECT_EQ("<top><fifth><deeper><and><deeper/></and><sibling><leaf/>" + "</sibling></deeper></fifth><first/><second><third/>" + "</second></top>", builder.BuiltElement()->Str()); +} + +TEST(XmlBuilderTest, TestQuoting1) { + XmlBuilder builder; + XmlParser::ParseXml(&builder, "<testing a='>'/>"); + EXPECT_EQ("<testing a=\">\"/>", builder.BuiltElement()->Str()); +} + +TEST(XmlBuilderTest, TestQuoting2) { + XmlBuilder builder; + XmlParser::ParseXml(&builder, "<testing a='<>&"'/>"); + EXPECT_EQ("<testing a=\"<>&"\"/>", + builder.BuiltElement()->Str()); +} + +TEST(XmlBuilderTest, TestQuoting3) { + XmlBuilder builder; + XmlParser::ParseXml(&builder, "<testing a='so "important"'/>"); + EXPECT_EQ("<testing a=\"so "important"\"/>", + builder.BuiltElement()->Str()); +} + +TEST(XmlBuilderTest, TestQuoting4) { + XmlBuilder builder; + XmlParser::ParseXml(&builder, "<testing a='"important", yes'/>"); + EXPECT_EQ("<testing a=\""important", yes\"/>", + builder.BuiltElement()->Str()); +} + +TEST(XmlBuilderTest, TestQuoting5) { + XmlBuilder builder; + XmlParser::ParseXml(&builder, + "<testing a='<what is "important">'/>"); + EXPECT_EQ("<testing a=\"<what is "important">\"/>", + builder.BuiltElement()->Str()); +} + +TEST(XmlBuilderTest, TestText1) { + XmlBuilder builder; + XmlParser::ParseXml(&builder, "<testing>></testing>"); + EXPECT_EQ("<testing>></testing>", builder.BuiltElement()->Str()); +} + +TEST(XmlBuilderTest, TestText2) { + XmlBuilder builder; + XmlParser::ParseXml(&builder, "<testing><>&"</testing>"); + EXPECT_EQ("<testing><>&\"</testing>", + builder.BuiltElement()->Str()); +} + +TEST(XmlBuilderTest, TestText3) { + XmlBuilder builder; + XmlParser::ParseXml(&builder, "<testing>so <important></testing>"); + EXPECT_EQ("<testing>so <important></testing>", + builder.BuiltElement()->Str()); +} + +TEST(XmlBuilderTest, TestText4) { + XmlBuilder builder; + XmlParser::ParseXml(&builder, "<testing><important>, yes</testing>"); + EXPECT_EQ("<testing><important>, yes</testing>", + builder.BuiltElement()->Str()); +} + +TEST(XmlBuilderTest, TestText5) { + XmlBuilder builder; + XmlParser::ParseXml(&builder, + "<testing>importance &<important>&</testing>"); + EXPECT_EQ("<testing>importance &<important>&</testing>", + builder.BuiltElement()->Str()); +} + +TEST(XmlBuilderTest, TestNamespace1) { + XmlBuilder builder; + XmlParser::ParseXml(&builder, "<testing xmlns='foo'/>"); + EXPECT_EQ("<testing xmlns=\"foo\"/>", builder.BuiltElement()->Str()); +} + +TEST(XmlBuilderTest, TestNamespace2) { + XmlBuilder builder; + XmlParser::ParseXml(&builder, "<testing xmlns:a='foo' a:b='c'/>"); + EXPECT_EQ("<testing xmlns:a=\"foo\" a:b=\"c\"/>", + builder.BuiltElement()->Str()); +} + +TEST(XmlBuilderTest, TestNamespace3) { + XmlBuilder builder; + XmlParser::ParseXml(&builder, "<testing xmlns:a=''/>"); + EXPECT_TRUE(NULL == builder.BuiltElement()); +} + +TEST(XmlBuilderTest, TestNamespace4) { + XmlBuilder builder; + XmlParser::ParseXml(&builder, "<testing a:b='c'/>"); + EXPECT_TRUE(NULL == builder.BuiltElement()); +} + +TEST(XmlBuilderTest, TestAttrCollision1) { + XmlBuilder builder; + XmlParser::ParseXml(&builder, "<testing a='first' a='second'/>"); + EXPECT_TRUE(NULL == builder.BuiltElement()); +} + +TEST(XmlBuilderTest, TestAttrCollision2) { + XmlBuilder builder; + XmlParser::ParseXml(&builder, + "<testing xmlns:a='foo' xmlns:b='foo' a:x='c' b:x='d'/>"); + EXPECT_TRUE(NULL == builder.BuiltElement()); +} + +TEST(XmlBuilderTest, TestAttrCollision3) { + XmlBuilder builder; + XmlParser::ParseXml(&builder, + "<testing xmlns:a='foo'><nested xmlns:b='foo' a:x='c' b:x='d'/>" + "</testing>"); + EXPECT_TRUE(NULL == builder.BuiltElement()); +} + |