use lib "t/lib"; use Test::More tests=>167; BEGIN{ use_ok( "Net::Jabber" ); } require "t/mytestlib.pl"; my $query = new Net::Jabber::Stanza("item"); ok( defined($query), "new()" ); isa_ok( $query, "Net::Jabber::Stanza" ); isa_ok( $query, "Net::XMPP::Stanza" ); testScalar($query,"XMLNS","jabber:iq:browse"); testScalar($query,"Category","category"); testJID($query,"JID","user1","server1","resource1"); testScalar($query,"Name","name"); testScalar($query,"Type","type"); testScalar($query,"NS","ns"); is( $query->GetXML(), "ns", "GetXML()" ); my $item1 = $query->AddItem(); ok( defined($item1), "new()" ); isa_ok( $item1, "Net::Jabber::Stanza" ); isa_ok( $item1, "Net::XMPP::Stanza" ); testScalar($item1,"Category","category"); testJID($item1,"JID","user2","server2","resource2"); testScalar($item1,"Name","name"); testScalar($item1,"Type","type"); testScalar($item1,"NS","ns"); is( $item1->GetXML(), "ns", "GetXML()" ); my $item2 = $query->AddItem(category=>"category", jid=>"user3\@server3/resource3", name=>"name", type=>"type", ns=>["ns1","ns2"] ); ok( defined($item2), "new()" ); isa_ok( $item2, "Net::Jabber::Stanza" ); isa_ok( $item2, "Net::XMPP::Stanza" ); testPostScalar($item2,"Category","category"); testPostJID($item2,"JID","user3","server3","resource3"); testPostScalar($item2,"Name","name"); testPostScalar($item2,"Type","type"); is( $item2->GetXML(), "ns1ns2", "GetXML()" ); is( $query->GetXML(), "nsnsns1ns2", "GetXML()" ); my @items = $query->GetItems(); is( $#items, 1, "are there two items?" ); is( $items[0]->GetXML(), "ns", "GetXML()" ); is( $items[1]->GetXML(), "ns1ns2", "GetXML()" ); my $query2 = new Net::Jabber::Stanza("item"); ok( defined($query2), "new()" ); isa_ok( $query2, "Net::Jabber::Stanza" ); isa_ok( $query2, "Net::XMPP::Stanza" ); testScalar($query2,"XMLNS","jabber:iq:browse"); $query2->SetBrowse(category=>"category", jid=>"user2\@server2/resource2", name=>"name", type=>"type", ns=>["ns1","ns2"] ); testPostScalar($query2,"Category","category"); testPostJID($query2,"JID","user2","server2","resource2"); testPostScalar($query2,"Name","name"); testPostScalar($query2,"Type","type"); my @ns = $query2->GetNS(); is( $#ns, 1, "are there two ns?" ); is( $ns[0], "ns1", "ns[0] == 'ns1'" ); is( $ns[1], "ns2", "ns[1] == 'ns2'" ); is( $query2->GetXML(), "ns1ns2", "GetXML()" ); my $query3 = new Net::Jabber::Stanza("service"); ok( defined($query3), "new()" ); isa_ok( $query3, "Net::Jabber::Stanza" ); isa_ok( $query3, "Net::XMPP::Stanza" ); testScalar($query3,"XMLNS","jabber:iq:browse"); testJID($query3,"JID","user3","server3","resource3"); testScalar($query3,"Name","name"); testScalar($query3,"Type","type"); testScalar($query3,"NS","ns"); is( $query3->GetXML(), "ns", "GetXML()" ); my $item3 = $query3->AddItem("service"); ok( defined($item3), "new()" ); isa_ok( $item3, "Net::Jabber::Stanza" ); isa_ok( $item3, "Net::XMPP::Stanza" ); testJID($item3,"JID","user4","server4","resource4"); testScalar($item3,"Name","name"); testScalar($item3,"Type","type"); testScalar($item3,"NS","ns"); is( $item3->GetXML(), "ns", "GetXML()" ); my $item4 = $query3->AddItem("conference", jid=>"user5\@server5/resource5", name=>"name", type=>"type" ); ok( defined($item4), "new()" ); isa_ok( $item4, "Net::Jabber::Stanza" ); isa_ok( $item4, "Net::XMPP::Stanza" ); testPostJID($item4,"JID","user5","server5","resource5"); testPostScalar($item4,"Name","name"); testPostScalar($item4,"Type","type"); is( $item4->GetXML(), "", "GetXML()" ); is( $query3->GetXML(), "nsns", "GetXML()" ); @items = $query3->GetItems(); is( $#items, 1, "are there two items?" ); is( $items[0]->GetXML(), "ns", "GetXML()" ); is( $items[1]->GetXML(), "", "GetXML()" );