Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(194)

Side by Side Diff: third_party/libjingle_xmpp/xmllite/xmlbuilder_unittest.cc

Issue 2443903004: Add xmllite and xmpp sources to third_party/ (Closed)
Patch Set: Fix GN and sort includes Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2004 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 <iostream>
6 #include <sstream>
7 #include <string>
8 #include "third_party/libjingle_xmpp/xmllite/xmlbuilder.h"
9 #include "third_party/libjingle_xmpp/xmllite/xmlelement.h"
10 #include "third_party/libjingle_xmpp/xmllite/xmlparser.h"
11 #include "webrtc/base/common.h"
12 #include "webrtc/base/gunit.h"
13
14 using buzz::XmlBuilder;
15 using buzz::XmlElement;
16 using buzz::XmlParser;
17
18 TEST(XmlBuilderTest, TestTrivial) {
19 XmlBuilder builder;
20 XmlParser::ParseXml(&builder, "<testing/>");
21 EXPECT_EQ("<testing/>", builder.BuiltElement()->Str());
22 }
23
24 TEST(XmlBuilderTest, TestAttributes1) {
25 XmlBuilder builder;
26 XmlParser::ParseXml(&builder, "<testing a='b'/>");
27 EXPECT_EQ("<testing a=\"b\"/>", builder.BuiltElement()->Str());
28 }
29
30 TEST(XmlBuilderTest, TestAttributes2) {
31 XmlBuilder builder;
32 XmlParser::ParseXml(&builder, "<testing e='' long='some text'/>");
33 EXPECT_EQ("<testing e=\"\" long=\"some text\"/>",
34 builder.BuiltElement()->Str());
35 }
36
37 TEST(XmlBuilderTest, TestNesting1) {
38 XmlBuilder builder;
39 XmlParser::ParseXml(&builder,
40 "<top><first/><second><third></third></second></top>");
41 EXPECT_EQ("<top><first/><second><third/></second></top>",
42 builder.BuiltElement()->Str());
43 }
44
45 TEST(XmlBuilderTest, TestNesting2) {
46 XmlBuilder builder;
47 XmlParser::ParseXml(&builder,
48 "<top><fifth><deeper><and><deeper/></and><sibling><leaf/>"
49 "</sibling></deeper></fifth><first/><second><third></third>"
50 "</second></top>");
51 EXPECT_EQ("<top><fifth><deeper><and><deeper/></and><sibling><leaf/>"
52 "</sibling></deeper></fifth><first/><second><third/>"
53 "</second></top>", builder.BuiltElement()->Str());
54 }
55
56 TEST(XmlBuilderTest, TestQuoting1) {
57 XmlBuilder builder;
58 XmlParser::ParseXml(&builder, "<testing a='>'/>");
59 EXPECT_EQ("<testing a=\"&gt;\"/>", builder.BuiltElement()->Str());
60 }
61
62 TEST(XmlBuilderTest, TestQuoting2) {
63 XmlBuilder builder;
64 XmlParser::ParseXml(&builder, "<testing a='&lt;>&amp;&quot;'/>");
65 EXPECT_EQ("<testing a=\"&lt;&gt;&amp;&quot;\"/>",
66 builder.BuiltElement()->Str());
67 }
68
69 TEST(XmlBuilderTest, TestQuoting3) {
70 XmlBuilder builder;
71 XmlParser::ParseXml(&builder, "<testing a='so &quot;important&quot;'/>");
72 EXPECT_EQ("<testing a=\"so &quot;important&quot;\"/>",
73 builder.BuiltElement()->Str());
74 }
75
76 TEST(XmlBuilderTest, TestQuoting4) {
77 XmlBuilder builder;
78 XmlParser::ParseXml(&builder, "<testing a='&quot;important&quot;, yes'/>");
79 EXPECT_EQ("<testing a=\"&quot;important&quot;, yes\"/>",
80 builder.BuiltElement()->Str());
81 }
82
83 TEST(XmlBuilderTest, TestQuoting5) {
84 XmlBuilder builder;
85 XmlParser::ParseXml(&builder,
86 "<testing a='&lt;what is &quot;important&quot;&gt;'/>");
87 EXPECT_EQ("<testing a=\"&lt;what is &quot;important&quot;&gt;\"/>",
88 builder.BuiltElement()->Str());
89 }
90
91 TEST(XmlBuilderTest, TestText1) {
92 XmlBuilder builder;
93 XmlParser::ParseXml(&builder, "<testing>></testing>");
94 EXPECT_EQ("<testing>&gt;</testing>", builder.BuiltElement()->Str());
95 }
96
97 TEST(XmlBuilderTest, TestText2) {
98 XmlBuilder builder;
99 XmlParser::ParseXml(&builder, "<testing>&lt;>&amp;&quot;</testing>");
100 EXPECT_EQ("<testing>&lt;&gt;&amp;\"</testing>",
101 builder.BuiltElement()->Str());
102 }
103
104 TEST(XmlBuilderTest, TestText3) {
105 XmlBuilder builder;
106 XmlParser::ParseXml(&builder, "<testing>so &lt;important&gt;</testing>");
107 EXPECT_EQ("<testing>so &lt;important&gt;</testing>",
108 builder.BuiltElement()->Str());
109 }
110
111 TEST(XmlBuilderTest, TestText4) {
112 XmlBuilder builder;
113 XmlParser::ParseXml(&builder, "<testing>&lt;important&gt;, yes</testing>");
114 EXPECT_EQ("<testing>&lt;important&gt;, yes</testing>",
115 builder.BuiltElement()->Str());
116 }
117
118 TEST(XmlBuilderTest, TestText5) {
119 XmlBuilder builder;
120 XmlParser::ParseXml(&builder,
121 "<testing>importance &amp;&lt;important&gt;&amp;</testing>");
122 EXPECT_EQ("<testing>importance &amp;&lt;important&gt;&amp;</testing>",
123 builder.BuiltElement()->Str());
124 }
125
126 TEST(XmlBuilderTest, TestNamespace1) {
127 XmlBuilder builder;
128 XmlParser::ParseXml(&builder, "<testing xmlns='foo'/>");
129 EXPECT_EQ("<testing xmlns=\"foo\"/>", builder.BuiltElement()->Str());
130 }
131
132 TEST(XmlBuilderTest, TestNamespace2) {
133 XmlBuilder builder;
134 XmlParser::ParseXml(&builder, "<testing xmlns:a='foo' a:b='c'/>");
135 EXPECT_EQ("<testing xmlns:a=\"foo\" a:b=\"c\"/>",
136 builder.BuiltElement()->Str());
137 }
138
139 TEST(XmlBuilderTest, TestNamespace3) {
140 XmlBuilder builder;
141 XmlParser::ParseXml(&builder, "<testing xmlns:a=''/>");
142 EXPECT_TRUE(NULL == builder.BuiltElement());
143 }
144
145 TEST(XmlBuilderTest, TestNamespace4) {
146 XmlBuilder builder;
147 XmlParser::ParseXml(&builder, "<testing a:b='c'/>");
148 EXPECT_TRUE(NULL == builder.BuiltElement());
149 }
150
151 TEST(XmlBuilderTest, TestAttrCollision1) {
152 XmlBuilder builder;
153 XmlParser::ParseXml(&builder, "<testing a='first' a='second'/>");
154 EXPECT_TRUE(NULL == builder.BuiltElement());
155 }
156
157 TEST(XmlBuilderTest, TestAttrCollision2) {
158 XmlBuilder builder;
159 XmlParser::ParseXml(&builder,
160 "<testing xmlns:a='foo' xmlns:b='foo' a:x='c' b:x='d'/>");
161 EXPECT_TRUE(NULL == builder.BuiltElement());
162 }
163
164 TEST(XmlBuilderTest, TestAttrCollision3) {
165 XmlBuilder builder;
166 XmlParser::ParseXml(&builder,
167 "<testing xmlns:a='foo'><nested xmlns:b='foo' a:x='c' b:x='d'/>"
168 "</testing>");
169 EXPECT_TRUE(NULL == builder.BuiltElement());
170 }
171
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698