10e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org// Copyright 2004 Google Inc. All Rights Reserved
20e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org
30e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org
40e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org#include "talk/xmpp/jid.h"
5cf81adffe15fa8ea0f333432e41f6d504148f18abuildbot@webrtc.org#include "webrtc/base/gunit.h"
60e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org
70e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgusing buzz::Jid;
80e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org
90e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgTEST(JidTest, TestDomain) {
100e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  Jid jid("dude");
110e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("", jid.node());
120e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("dude", jid.domain());
130e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("", jid.resource());
140e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("dude", jid.Str());
150e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("dude", jid.BareJid().Str());
160e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_TRUE(jid.IsValid());
170e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_TRUE(jid.IsBare());
180e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_FALSE(jid.IsFull());
190e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org}
200e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org
210e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgTEST(JidTest, TestNodeDomain) {
220e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  Jid jid("walter@dude");
230e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("walter", jid.node());
240e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("dude", jid.domain());
250e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("", jid.resource());
260e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("walter@dude", jid.Str());
270e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("walter@dude", jid.BareJid().Str());
280e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_TRUE(jid.IsValid());
290e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_TRUE(jid.IsBare());
300e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_FALSE(jid.IsFull());
310e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org}
320e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org
330e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgTEST(JidTest, TestDomainResource) {
340e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  Jid jid("dude/bowlingalley");
350e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("", jid.node());
360e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("dude", jid.domain());
370e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("bowlingalley", jid.resource());
380e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("dude/bowlingalley", jid.Str());
390e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("dude", jid.BareJid().Str());
400e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_TRUE(jid.IsValid());
410e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_FALSE(jid.IsBare());
420e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_TRUE(jid.IsFull());
430e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org}
440e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org
450e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgTEST(JidTest, TestNodeDomainResource) {
460e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  Jid jid("walter@dude/bowlingalley");
470e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("walter", jid.node());
480e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("dude", jid.domain());
490e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("bowlingalley", jid.resource());
500e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("walter@dude/bowlingalley", jid.Str());
510e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("walter@dude", jid.BareJid().Str());
520e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_TRUE(jid.IsValid());
530e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_FALSE(jid.IsBare());
540e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_TRUE(jid.IsFull());
550e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org}
560e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org
570e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgTEST(JidTest, TestNode) {
580e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  Jid jid("walter@");
590e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("", jid.node());
600e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("", jid.domain());
610e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("", jid.resource());
620e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("", jid.Str());
630e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("", jid.BareJid().Str());
640e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_FALSE(jid.IsValid());
650e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_TRUE(jid.IsBare());
660e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_FALSE(jid.IsFull());
670e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org}
680e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org
690e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgTEST(JidTest, TestResource) {
700e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  Jid jid("/bowlingalley");
710e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("", jid.node());
720e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("", jid.domain());
730e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("", jid.resource());
740e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("", jid.Str());
750e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("", jid.BareJid().Str());
760e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_FALSE(jid.IsValid());
770e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_TRUE(jid.IsBare());
780e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_FALSE(jid.IsFull());
790e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org}
800e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org
810e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgTEST(JidTest, TestNodeResource) {
820e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  Jid jid("walter@/bowlingalley");
830e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("", jid.node());
840e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("", jid.domain());
850e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("", jid.resource());
860e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("", jid.Str());
870e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("", jid.BareJid().Str());
880e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_FALSE(jid.IsValid());
890e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_TRUE(jid.IsBare());
900e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_FALSE(jid.IsFull());
910e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org}
920e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org
930e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgTEST(JidTest, TestFunky) {
940e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  Jid jid("bowling@muchat/walter@dude");
950e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("bowling", jid.node());
960e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("muchat", jid.domain());
970e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("walter@dude", jid.resource());
980e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("bowling@muchat/walter@dude", jid.Str());
990e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("bowling@muchat", jid.BareJid().Str());
1000e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_TRUE(jid.IsValid());
1010e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_FALSE(jid.IsBare());
1020e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_TRUE(jid.IsFull());
1030e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org}
1040e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org
1050e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.orgTEST(JidTest, TestFunky2) {
1060e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  Jid jid("muchat/walter@dude");
1070e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("", jid.node());
1080e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("muchat", jid.domain());
1090e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("walter@dude", jid.resource());
1100e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("muchat/walter@dude", jid.Str());
1110e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_EQ("muchat", jid.BareJid().Str());
1120e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_TRUE(jid.IsValid());
1130e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_FALSE(jid.IsBare());
1140e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org  EXPECT_TRUE(jid.IsFull());
1150e118e7129884fbea117e78d6f2068139a414dbhenrike@webrtc.org}
116