1use lib "t/lib"; 2use Test::More tests=>140; 3 4BEGIN{ use_ok( "Net::Jabber" ); } 5 6require "t/mytestlib.pl"; 7 8my $query = new Net::Jabber::Stanza("query"); 9ok( defined($query), "new()" ); 10isa_ok( $query, "Net::Jabber::Stanza" ); 11isa_ok( $query, "Net::XMPP::Stanza" ); 12 13testScalar($query,"XMLNS","jabber:iq:search"); 14 15testScalar($query,"Email","email"); 16testScalar($query,"Family","family"); 17testScalar($query,"First","first"); 18testScalar($query,"Given","given"); 19testScalar($query,"Instructions","instructions"); 20testScalar($query,"Key","key"); 21testScalar($query,"Last","last"); 22testScalar($query,"Name","name"); 23testScalar($query,"Nick","nick"); 24testFlag($query,"Truncated"); 25 26is( $query->GetXML(), "<query xmlns='jabber:iq:search'><email>email</email><family>family</family><first>first</first><given>given</given><instructions>instructions</instructions><key>key</key><last>last</last><name>name</name><nick>nick</nick><truncated/></query>", "GetXML()" ); 27 28 29my $query2 = new Net::Jabber::Stanza("query"); 30ok( defined($query2), "new()" ); 31isa_ok( $query2, "Net::Jabber::Stanza" ); 32isa_ok( $query2, "Net::XMPP::Stanza" ); 33 34testScalar($query2,"XMLNS","jabber:iq:search"); 35 36$query2->SetSearch(email=>"email", 37 family=>"family", 38 first=>"first", 39 given=>"given", 40 instructions=>"instructions", 41 key=>"key", 42 last=>"last", 43 name=>"name", 44 nick=>"nick", 45 truncated=>1, 46 ); 47 48testPostScalar($query2,"Email","email"); 49testPostScalar($query2,"Family","family"); 50testPostScalar($query2,"First","first"); 51testPostScalar($query2,"Given","given"); 52testPostScalar($query2,"Instructions","instructions"); 53testPostScalar($query2,"Key","key"); 54testPostScalar($query2,"Last","last"); 55testPostScalar($query2,"Name","name"); 56testPostScalar($query2,"Nick","nick"); 57testPostFlag($query2,"Truncated"); 58 59is( $query2->GetXML(), "<query xmlns='jabber:iq:search'><email>email</email><family>family</family><first>first</first><given>given</given><instructions>instructions</instructions><key>key</key><last>last</last><name>name</name><nick>nick</nick><truncated/></query>", "GetXML()" ); 60 61 62my $query3 = new Net::Jabber::Stanza("query"); 63ok( defined($query3), "new()" ); 64isa_ok( $query3, "Net::Jabber::Stanza" ); 65isa_ok( $query3, "Net::XMPP::Stanza" ); 66 67testScalar($query3,"XMLNS","jabber:iq:search"); 68 69my $item1 = $query3->AddItem(); 70ok( defined($item1), "new()" ); 71isa_ok( $item1, "Net::Jabber::Stanza" ); 72isa_ok( $item1, "Net::XMPP::Stanza" ); 73 74testScalar($item1,"Email","email"); 75testScalar($item1,"Family","family"); 76testScalar($item1,"First","first"); 77testScalar($item1,"Given","given"); 78testJID($item1,"JID","user1","server1","resource1"); 79testScalar($item1,"Key","key"); 80testScalar($item1,"Last","last"); 81testScalar($item1,"Name","name"); 82testScalar($item1,"Nick","nick"); 83 84is( $query3->GetXML(), "<query xmlns='jabber:iq:search'><item jid='user1\@server1/resource1'><email>email</email><family>family</family><first>first</first><given>given</given><key>key</key><last>last</last><name>name</name><nick>nick</nick></item></query>", "GetXML()" ); 85 86my $item2 = $query3->AddItem(email=>"email", 87 family=>"family", 88 first=>"first", 89 given=>"given", 90 jid=>"user2\@server2/resource2", 91 key=>"key", 92 last=>"last", 93 name=>"name", 94 nick=>"nick", 95 ); 96ok( defined($item2), "new()" ); 97isa_ok( $item2, "Net::Jabber::Stanza" ); 98isa_ok( $item2, "Net::XMPP::Stanza" ); 99 100testPostScalar($item2,"Email","email"); 101testPostScalar($item2,"Family","family"); 102testPostScalar($item2,"First","first"); 103testPostScalar($item2,"Given","given"); 104testPostJID($item2,"JID","user2","server2","resource2"); 105testPostScalar($item2,"Key","key"); 106testPostScalar($item2,"Last","last"); 107testPostScalar($item2,"Name","name"); 108testPostScalar($item2,"Nick","nick"); 109 110is( $query3->GetXML(), "<query xmlns='jabber:iq:search'><item jid='user1\@server1/resource1'><email>email</email><family>family</family><first>first</first><given>given</given><key>key</key><last>last</last><name>name</name><nick>nick</nick></item><item jid='user2\@server2/resource2'><email>email</email><family>family</family><first>first</first><given>given</given><key>key</key><last>last</last><name>name</name><nick>nick</nick></item></query>", "GetXML()" ); 111 112my @items = $query3->GetItems(); 113is( $#items, 1, "are there two items?" ); 114is( $items[0]->GetXML(), "<item jid='user1\@server1/resource1'><email>email</email><family>family</family><first>first</first><given>given</given><key>key</key><last>last</last><name>name</name><nick>nick</nick></item>", "GetXML()" ); 115is( $items[1]->GetXML(), "<item jid='user2\@server2/resource2'><email>email</email><family>family</family><first>first</first><given>given</given><key>key</key><last>last</last><name>name</name><nick>nick</nick></item>", "GetXML()" ); 116 117