1use lib "t/lib"; 2use Test::More tests=>67; 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","http://jabber.org/protocol/disco#info"); 14 15testScalar($query,"Node","node"); 16 17is( $query->GetXML(), "<query node='node' xmlns='http://jabber.org/protocol/disco#info'/>", "GetXML()" ); 18 19 20my $query2 = new Net::Jabber::Stanza("query"); 21ok( defined($query2), "new()" ); 22isa_ok( $query2, "Net::Jabber::Stanza" ); 23isa_ok( $query2, "Net::XMPP::Stanza" ); 24 25testScalar($query2,"XMLNS","http://jabber.org/protocol/disco#info"); 26 27$query2->SetDiscoInfo(node=>'node'); 28 29testPostScalar($query2,"Node","node"); 30 31is( $query2->GetXML(), "<query node='node' xmlns='http://jabber.org/protocol/disco#info'/>", "GetXML()" ); 32 33 34my $query3 = new Net::Jabber::Stanza("query"); 35ok( defined($query3), "new()" ); 36isa_ok( $query3, "Net::Jabber::Stanza" ); 37isa_ok( $query3, "Net::XMPP::Stanza" ); 38 39testScalar($query3,"XMLNS","http://jabber.org/protocol/disco#info"); 40 41testScalar($query3,"Node","node"); 42 43my $item = $query3->AddIdentity(); 44isa_ok( $item, "Net::Jabber::Stanza" ); 45isa_ok( $item, "Net::XMPP::Stanza" ); 46 47testScalar($item,"Category","category1"); 48testScalar($item,"Name","name1"); 49testScalar($item,"Type","type1"); 50 51 52is( $query3->GetXML(), "<query node='node' xmlns='http://jabber.org/protocol/disco#info'><identity category='category1' name='name1' type='type1'/></query>", "GetXML()" ); 53 54my $feature = $query3->AddFeature(); 55isa_ok( $feature, "Net::Jabber::Stanza" ); 56isa_ok( $feature, "Net::XMPP::Stanza" ); 57 58testScalar($feature,"Var","var1"); 59 60 61is( $query3->GetXML(), "<query node='node' xmlns='http://jabber.org/protocol/disco#info'><identity category='category1' name='name1' type='type1'/><feature var='var1'/></query>", "GetXML()" ); 62 63my $item2 = $query3->AddIdentity(category=>"category2", 64 name=>"name2", 65 type=>"type2" 66 ); 67isa_ok( $item2, "Net::Jabber::Stanza" ); 68isa_ok( $item2, "Net::XMPP::Stanza" ); 69 70testPostScalar($item2,"Category","category2"); 71testPostScalar($item2,"Name","name2"); 72testPostScalar($item2,"Type","type2"); 73 74 75is( $query3->GetXML(), "<query node='node' xmlns='http://jabber.org/protocol/disco#info'><identity category='category1' name='name1' type='type1'/><feature var='var1'/><identity category='category2' name='name2' type='type2'/></query>", "GetXML()" ); 76 77my $feature2 = $query3->AddFeature(var=>"var2"); 78isa_ok( $feature2, "Net::Jabber::Stanza" ); 79isa_ok( $feature2, "Net::XMPP::Stanza" ); 80 81testPostScalar($feature2,"Var","var2"); 82 83 84is( $query3->GetXML(), "<query node='node' xmlns='http://jabber.org/protocol/disco#info'><identity category='category1' name='name1' type='type1'/><feature var='var1'/><identity category='category2' name='name2' type='type2'/><feature var='var2'/></query>", "GetXML()" ); 85 86 87my @idents = $query3->GetIdentities(); 88is($#idents,1,"two identities"); 89 90is( $idents[0]->GetXML(), "<identity category='category1' name='name1' type='type1'/>","item 1 - GetXML()"); 91is( $idents[1]->GetXML(), "<identity category='category2' name='name2' type='type2'/>","item 2 - GetXML()"); 92 93my @feats = $query3->GetFeatures(); 94is($#feats,1,"two features"); 95 96is( $feats[0]->GetXML(), "<feature var='var1'/>","item 1 - GetXML()"); 97is( $feats[1]->GetXML(), "<feature var='var2'/>","item 2 - GetXML()"); 98 99 100 101