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