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