1use lib "t/lib"; 2use Test::More tests=>132; 3 4BEGIN{ use_ok( "Net::XMPP" ); } 5 6require "t/mytestlib.pl"; 7 8my $debug = Net::XMPP::Debug->new(setdefault=>1, 9 level=>-1, 10 file=>"stdout", 11 header=>"test", 12 ); 13 14#------------------------------------------------------------------------------ 15# presence 16#------------------------------------------------------------------------------ 17my $presence = Net::XMPP::Presence->new(); 18ok( defined($presence), "new()"); 19isa_ok( $presence, "Net::XMPP::Presence"); 20 21testScalar($presence, "Error", "error"); 22testScalar($presence, "ErrorCode", "401"); 23testJID($presence, "From", "user1", "server1", "resource1"); 24testScalar($presence, "ID", "id"); 25testScalar($presence, "Priority", "priority"); 26testScalar($presence, "Show", "show"); 27testScalar($presence, "Status", "status"); 28testJID($presence, "To", "user2", "server2", "resource2"); 29testScalar($presence, "Type", "Type"); 30 31#------------------------------------------------------------------------------ 32# X 33#------------------------------------------------------------------------------ 34my $xoob = $presence->NewChild("__netxmpptest__:child:test"); 35ok( defined( $xoob ), "NewX - __netxmpptest__:child:test" ); 36isa_ok( $xoob, "Net::XMPP::Stanza" ); 37 38#------------------------------------------------------------------------------ 39# X 40#------------------------------------------------------------------------------ 41my @x = $presence->GetChild(); 42is( $x[0], $xoob, "Is the first x the oob?"); 43 44#------------------------------------------------------------------------------ 45# X 46#------------------------------------------------------------------------------ 47my $xroster = $presence->NewChild("__netxmpptest__:child:test:two"); 48ok( defined( $xoob ), "NewX - __netxmpptest__:child:test:two" ); 49isa_ok( $xoob, "Net::XMPP::Stanza" ); 50 51#------------------------------------------------------------------------------ 52# X 53#------------------------------------------------------------------------------ 54my @x2 = $presence->GetChild(); 55is( $x2[0], $xoob, "Is the first child test?"); 56is( $x2[1], $xroster, "Is the second child test two?"); 57 58#------------------------------------------------------------------------------ 59# X 60#------------------------------------------------------------------------------ 61my @x3 = $presence->GetChild("__netxmpptest__:child:test"); 62is( $#x3, 0, "filter on xmlns - only one child... right?"); 63is( $x3[0], $xoob, "Is the first child the oob?"); 64 65#------------------------------------------------------------------------------ 66# X 67#------------------------------------------------------------------------------ 68my @x4 = $presence->GetChild("__netxmpptest__:child:test:two"); 69is( $#x4, 0, "filter on xmlns - only one x... right?"); 70is( $x4[0], $xroster, "Is the first x the roster?"); 71 72ok( $presence->DefinedChild(), "DefinedChild - yes"); 73ok( $presence->DefinedChild("__netxmpptest__:child:test:two"), "DefinedChild - __netxmpptest__:child:test:two - yes"); 74ok( $presence->DefinedChild("__netxmpptest__:child:test"), "DefinedChild - __netxmpptest__:child:test - yes"); 75ok( !$presence->DefinedChild("foo:bar"), "DefinedChild - foo:bar - no"); 76 77#------------------------------------------------------------------------------ 78# presence 79#------------------------------------------------------------------------------ 80my $presence2 = Net::XMPP::Presence->new(); 81ok( defined($presence2), "new()"); 82isa_ok( $presence2, "Net::XMPP::Presence"); 83 84#------------------------------------------------------------------------------ 85# defined 86#------------------------------------------------------------------------------ 87is( $presence2->DefinedError(), '', "error not defined" ); 88is( $presence2->DefinedErrorCode(), '', "errorcode not defined" ); 89is( $presence2->DefinedFrom(), '', "from not defined" ); 90is( $presence2->DefinedID(), '', "id not defined" ); 91is( $presence2->DefinedPriority(), '', "priority not defined" ); 92is( $presence2->DefinedShow(), '', "show not defined" ); 93is( $presence2->DefinedStatus(), '', "status not defined" ); 94is( $presence2->DefinedTo(), '', "to not defined" ); 95is( $presence2->DefinedType(), '', "type not defined" ); 96 97#------------------------------------------------------------------------------ 98# set it 99#------------------------------------------------------------------------------ 100$presence2->SetPresence(error=>"error", 101 errorcode=>"401", 102 from=>"user1\@server1/resource1", 103 id=>"id", 104 priority=>"priority", 105 show=>"show", 106 status=>"status", 107 to=>"user2\@server2/resource2", 108 type=>"type"); 109 110testPostScalar($presence2, "Error", "error"); 111testPostScalar($presence2, "ErrorCode", "401"); 112testPostJID($presence2, "From", "user1", "server1", "resource1"); 113testPostScalar($presence2, "ID", "id"); 114testPostScalar($presence2, "Priority", "priority"); 115testPostScalar($presence2, "Show", "show"); 116testPostScalar($presence2, "Status", "status"); 117testPostJID($presence2, "To", "user2", "server2", "resource2"); 118testPostScalar($presence2, "Type", "type"); 119 120is( $presence2->GetXML(), "<presence from='user1\@server1/resource1' id='id' to='user2\@server2/resource2' type='type'><error code='401'>error</error><priority>priority</priority><show>show</show><status>status</status></presence>", "Full presence"); 121 122#------------------------------------------------------------------------------ 123# Reply 124#------------------------------------------------------------------------------ 125my $reply = $presence2->Reply(); 126isa_ok($reply,"Net::XMPP::Presence"); 127 128testPostJID($reply, "From", "user2", "server2", "resource2"); 129testPostScalar($reply, "ID", "id"); 130testPostJID($reply, "To", "user1", "server1", "resource1"); 131 132is($reply->GetXML(),"<presence from='user2\@server2/resource2' id='id' to='user1\@server1/resource1'/>","Reply - GetXML()"); 133 134 135#------------------------------------------------------------------------------ 136# Remove it 137#------------------------------------------------------------------------------ 138testRemove($presence2, "ErrorCode"); 139testRemove($presence2, "Error"); 140testRemove($presence2, "From"); 141testRemove($presence2, "ID"); 142testRemove($presence2, "Priority"); 143testRemove($presence2, "Show"); 144testRemove($presence2, "Status"); 145testRemove($presence2, "To"); 146testRemove($presence2, "Type"); 147 148is( $presence2->GetXML(), "<presence/>", "Empty presence"); 149 150