15976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org// Copyright 2004 Google Inc. All Rights Reserved
25976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
35976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
45976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org#include "talk/base/gunit.h"
55976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org#include "talk/xmpp/jid.h"
65976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
75976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgusing buzz::Jid;
85976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
95976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST(JidTest, TestDomain) {
105976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  Jid jid("dude");
115976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("", jid.node());
125976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("dude", jid.domain());
135976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("", jid.resource());
145976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("dude", jid.Str());
155976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("dude", jid.BareJid().Str());
165976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_TRUE(jid.IsValid());
175976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_TRUE(jid.IsBare());
185976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_FALSE(jid.IsFull());
195976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
205976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
215976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST(JidTest, TestNodeDomain) {
225976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  Jid jid("walter@dude");
235976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("walter", jid.node());
245976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("dude", jid.domain());
255976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("", jid.resource());
265976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("walter@dude", jid.Str());
275976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("walter@dude", jid.BareJid().Str());
285976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_TRUE(jid.IsValid());
295976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_TRUE(jid.IsBare());
305976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_FALSE(jid.IsFull());
315976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
325976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
335976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST(JidTest, TestDomainResource) {
345976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  Jid jid("dude/bowlingalley");
355976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("", jid.node());
365976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("dude", jid.domain());
375976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("bowlingalley", jid.resource());
385976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("dude/bowlingalley", jid.Str());
395976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("dude", jid.BareJid().Str());
405976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_TRUE(jid.IsValid());
415976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_FALSE(jid.IsBare());
425976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_TRUE(jid.IsFull());
435976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
445976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
455976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST(JidTest, TestNodeDomainResource) {
465976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  Jid jid("walter@dude/bowlingalley");
475976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("walter", jid.node());
485976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("dude", jid.domain());
495976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("bowlingalley", jid.resource());
505976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("walter@dude/bowlingalley", jid.Str());
515976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("walter@dude", jid.BareJid().Str());
525976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_TRUE(jid.IsValid());
535976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_FALSE(jid.IsBare());
545976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_TRUE(jid.IsFull());
555976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
565976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
575976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST(JidTest, TestNode) {
585976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  Jid jid("walter@");
595976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("", jid.node());
605976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("", jid.domain());
615976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("", jid.resource());
625976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("", jid.Str());
635976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("", jid.BareJid().Str());
645976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_FALSE(jid.IsValid());
655976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_TRUE(jid.IsBare());
665976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_FALSE(jid.IsFull());
675976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
685976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
695976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST(JidTest, TestResource) {
705976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  Jid jid("/bowlingalley");
715976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("", jid.node());
725976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("", jid.domain());
735976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("", jid.resource());
745976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("", jid.Str());
755976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("", jid.BareJid().Str());
765976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_FALSE(jid.IsValid());
775976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_TRUE(jid.IsBare());
785976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_FALSE(jid.IsFull());
795976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
805976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
815976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST(JidTest, TestNodeResource) {
825976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  Jid jid("walter@/bowlingalley");
835976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("", jid.node());
845976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("", jid.domain());
855976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("", jid.resource());
865976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("", jid.Str());
875976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("", jid.BareJid().Str());
885976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_FALSE(jid.IsValid());
895976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_TRUE(jid.IsBare());
905976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_FALSE(jid.IsFull());
915976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
925976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
935976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST(JidTest, TestFunky) {
945976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  Jid jid("bowling@muchat/walter@dude");
955976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("bowling", jid.node());
965976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("muchat", jid.domain());
975976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("walter@dude", jid.resource());
985976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("bowling@muchat/walter@dude", jid.Str());
995976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("bowling@muchat", jid.BareJid().Str());
1005976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_TRUE(jid.IsValid());
1015976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_FALSE(jid.IsBare());
1025976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_TRUE(jid.IsFull());
1035976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
1045976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
1055976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST(JidTest, TestFunky2) {
1065976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  Jid jid("muchat/walter@dude");
1075976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("", jid.node());
1085976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("muchat", jid.domain());
1095976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("walter@dude", jid.resource());
1105976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("muchat/walter@dude", jid.Str());
1115976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_EQ("muchat", jid.BareJid().Str());
1125976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_TRUE(jid.IsValid());
1135976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_FALSE(jid.IsBare());
1145976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_TRUE(jid.IsFull());
1155976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
116