148a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org/* 248a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org * Copyright 2004 The WebRTC Project Authors. All rights reserved. 348a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org * 448a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org * Use of this source code is governed by a BSD-style license 548a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org * that can be found in the LICENSE file in the root of the source 648a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org * tree. An additional intellectual property rights grant can be found 748a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org * in the file PATENTS. All contributing project authors may 848a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org * be found in the AUTHORS file in the root of the source tree. 948a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org */ 1048a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org 1148a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org#include <string> 1248a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org#include "webrtc/libjingle/xmllite/qname.h" 1348a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org#include "webrtc/base/gunit.h" 1448a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org 1548a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.orgusing buzz::StaticQName; 1648a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.orgusing buzz::QName; 1748a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org 1848a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.orgTEST(QNameTest, TestTrivial) { 1948a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org QName name("test"); 2048a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_EQ(name.LocalPart(), "test"); 2148a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_EQ(name.Namespace(), ""); 2248a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org} 2348a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org 2448a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.orgTEST(QNameTest, TestSplit) { 2548a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org QName name("a:test"); 2648a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_EQ(name.LocalPart(), "test"); 2748a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_EQ(name.Namespace(), "a"); 2848a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org QName name2("a-very:long:namespace:test-this"); 2948a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_EQ(name2.LocalPart(), "test-this"); 3048a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_EQ(name2.Namespace(), "a-very:long:namespace"); 3148a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org} 3248a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org 3348a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.orgTEST(QNameTest, TestMerge) { 3448a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org QName name("a", "test"); 3548a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_EQ(name.LocalPart(), "test"); 3648a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_EQ(name.Namespace(), "a"); 3748a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_EQ(name.Merged(), "a:test"); 3848a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org QName name2("a-very:long:namespace", "test-this"); 3948a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_EQ(name2.LocalPart(), "test-this"); 4048a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_EQ(name2.Namespace(), "a-very:long:namespace"); 4148a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_EQ(name2.Merged(), "a-very:long:namespace:test-this"); 4248a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org} 4348a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org 4448a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.orgTEST(QNameTest, TestAssignment) { 4548a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org QName name("a", "test"); 4648a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org // copy constructor 4748a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org QName namecopy(name); 4848a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_EQ(namecopy.LocalPart(), "test"); 4948a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_EQ(namecopy.Namespace(), "a"); 5048a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org QName nameassigned(""); 5148a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org nameassigned = name; 5248a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_EQ(nameassigned.LocalPart(), "test"); 5348a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_EQ(nameassigned.Namespace(), "a"); 5448a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org} 5548a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org 5648a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.orgTEST(QNameTest, TestConstAssignment) { 5748a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org StaticQName name = { "a", "test" }; 5848a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org QName namecopy(name); 5948a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_EQ(namecopy.LocalPart(), "test"); 6048a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_EQ(namecopy.Namespace(), "a"); 6148a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org QName nameassigned(""); 6248a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org nameassigned = name; 6348a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_EQ(nameassigned.LocalPart(), "test"); 6448a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_EQ(nameassigned.Namespace(), "a"); 6548a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org} 6648a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org 6748a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.orgTEST(QNameTest, TestEquality) { 6848a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org QName name("a-very:long:namespace:test-this"); 6948a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org QName name2("a-very:long:namespace", "test-this"); 7048a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org QName name3("a-very:long:namespaxe", "test-this"); 7148a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_TRUE(name == name2); 7248a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_FALSE(name == name3); 7348a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org} 7448a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org 7548a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.orgTEST(QNameTest, TestCompare) { 7648a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org QName name("a"); 7748a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org QName name2("nsa", "a"); 7848a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org QName name3("nsa", "b"); 7948a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org QName name4("nsb", "b"); 8048a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org 8148a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_TRUE(name < name2); 8248a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_FALSE(name2 < name); 8348a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org 8448a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_FALSE(name2 < name2); 8548a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org 8648a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_TRUE(name2 < name3); 8748a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_FALSE(name3 < name2); 8848a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org 8948a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_TRUE(name3 < name4); 9048a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_FALSE(name4 < name3); 9148a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org} 9248a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org 9348a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.orgTEST(QNameTest, TestStaticQName) { 9448a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org const StaticQName const_name1 = { "namespace", "local-name1" }; 9548a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org const StaticQName const_name2 = { "namespace", "local-name2" }; 9648a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org const QName name("namespace", "local-name1"); 9748a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org const QName name1 = const_name1; 9848a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org const QName name2 = const_name2; 9948a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org 10048a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_TRUE(name == const_name1); 10148a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_TRUE(const_name1 == name); 10248a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_FALSE(name != const_name1); 10348a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_FALSE(const_name1 != name); 10448a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org 10548a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_TRUE(name == name1); 10648a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_TRUE(name1 == name); 10748a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_FALSE(name != name1); 10848a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_FALSE(name1 != name); 10948a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org 11048a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_FALSE(name == name2); 11148a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_FALSE(name2 == name); 11248a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_TRUE(name != name2); 11348a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org EXPECT_TRUE(name2 != name); 11448a7b2e84057589be933b5182cded67c9885f8e8henrike@webrtc.org} 115