OLD | NEW |
| (Empty) |
1 /* | |
2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. | |
3 * | |
4 * Use of this source code is governed by a BSD-style license | |
5 * that can be found in the LICENSE file in the root of the source | |
6 * tree. An additional intellectual property rights grant can be found | |
7 * in the file PATENTS. All contributing project authors may | |
8 * be found in the AUTHORS file in the root of the source tree. | |
9 */ | |
10 | |
11 #include <string> | |
12 #include "webrtc/libjingle/xmllite/qname.h" | |
13 #include "webrtc/base/gunit.h" | |
14 | |
15 using buzz::StaticQName; | |
16 using buzz::QName; | |
17 | |
18 TEST(QNameTest, TestTrivial) { | |
19 QName name("test"); | |
20 EXPECT_EQ(name.LocalPart(), "test"); | |
21 EXPECT_EQ(name.Namespace(), ""); | |
22 } | |
23 | |
24 TEST(QNameTest, TestSplit) { | |
25 QName name("a:test"); | |
26 EXPECT_EQ(name.LocalPart(), "test"); | |
27 EXPECT_EQ(name.Namespace(), "a"); | |
28 QName name2("a-very:long:namespace:test-this"); | |
29 EXPECT_EQ(name2.LocalPart(), "test-this"); | |
30 EXPECT_EQ(name2.Namespace(), "a-very:long:namespace"); | |
31 } | |
32 | |
33 TEST(QNameTest, TestMerge) { | |
34 QName name("a", "test"); | |
35 EXPECT_EQ(name.LocalPart(), "test"); | |
36 EXPECT_EQ(name.Namespace(), "a"); | |
37 EXPECT_EQ(name.Merged(), "a:test"); | |
38 QName name2("a-very:long:namespace", "test-this"); | |
39 EXPECT_EQ(name2.LocalPart(), "test-this"); | |
40 EXPECT_EQ(name2.Namespace(), "a-very:long:namespace"); | |
41 EXPECT_EQ(name2.Merged(), "a-very:long:namespace:test-this"); | |
42 } | |
43 | |
44 TEST(QNameTest, TestAssignment) { | |
45 QName name("a", "test"); | |
46 // copy constructor | |
47 QName namecopy(name); | |
48 EXPECT_EQ(namecopy.LocalPart(), "test"); | |
49 EXPECT_EQ(namecopy.Namespace(), "a"); | |
50 QName nameassigned(""); | |
51 nameassigned = name; | |
52 EXPECT_EQ(nameassigned.LocalPart(), "test"); | |
53 EXPECT_EQ(nameassigned.Namespace(), "a"); | |
54 } | |
55 | |
56 TEST(QNameTest, TestConstAssignment) { | |
57 StaticQName name = { "a", "test" }; | |
58 QName namecopy(name); | |
59 EXPECT_EQ(namecopy.LocalPart(), "test"); | |
60 EXPECT_EQ(namecopy.Namespace(), "a"); | |
61 QName nameassigned(""); | |
62 nameassigned = name; | |
63 EXPECT_EQ(nameassigned.LocalPart(), "test"); | |
64 EXPECT_EQ(nameassigned.Namespace(), "a"); | |
65 } | |
66 | |
67 TEST(QNameTest, TestEquality) { | |
68 QName name("a-very:long:namespace:test-this"); | |
69 QName name2("a-very:long:namespace", "test-this"); | |
70 QName name3("a-very:long:namespaxe", "test-this"); | |
71 EXPECT_TRUE(name == name2); | |
72 EXPECT_FALSE(name == name3); | |
73 } | |
74 | |
75 TEST(QNameTest, TestCompare) { | |
76 QName name("a"); | |
77 QName name2("nsa", "a"); | |
78 QName name3("nsa", "b"); | |
79 QName name4("nsb", "b"); | |
80 | |
81 EXPECT_TRUE(name < name2); | |
82 EXPECT_FALSE(name2 < name); | |
83 | |
84 EXPECT_FALSE(name2 < name2); | |
85 | |
86 EXPECT_TRUE(name2 < name3); | |
87 EXPECT_FALSE(name3 < name2); | |
88 | |
89 EXPECT_TRUE(name3 < name4); | |
90 EXPECT_FALSE(name4 < name3); | |
91 } | |
92 | |
93 TEST(QNameTest, TestStaticQName) { | |
94 const StaticQName const_name1 = { "namespace", "local-name1" }; | |
95 const StaticQName const_name2 = { "namespace", "local-name2" }; | |
96 const QName name("namespace", "local-name1"); | |
97 const QName name1 = const_name1; | |
98 const QName name2 = const_name2; | |
99 | |
100 EXPECT_TRUE(name == const_name1); | |
101 EXPECT_TRUE(const_name1 == name); | |
102 EXPECT_FALSE(name != const_name1); | |
103 EXPECT_FALSE(const_name1 != name); | |
104 | |
105 EXPECT_TRUE(name == name1); | |
106 EXPECT_TRUE(name1 == name); | |
107 EXPECT_FALSE(name != name1); | |
108 EXPECT_FALSE(name1 != name); | |
109 | |
110 EXPECT_FALSE(name == name2); | |
111 EXPECT_FALSE(name2 == name); | |
112 EXPECT_TRUE(name != name2); | |
113 EXPECT_TRUE(name2 != name); | |
114 } | |
OLD | NEW |