#!perl use strict; no warnings; use Test::More; use AnyEvent::XMPP::TestClient; use AnyEvent::XMPP::IM::Message; use AnyEvent::XMPP::Util qw/bare_jid/; my $cl = AnyEvent::XMPP::TestClient->new_or_exit ( tests => 2, two_accounts => 1, finish_count => 2 ); my $C = $cl->client; my $src; my $recv_message = ""; my $dconmsg = ""; $C->reg_cb ( two_accounts_ready => sub { my ($C) = @_; my $con = $cl->{acc}->connection; $src = bare_jid $cl->{jid}; my $msg = AnyEvent::XMPP::IM::Message->new ( body => "test body", type => 'normal', to => $cl->{jid2}, ); $C->reg_cb (send_buffer_empty => sub { my ($C) = @_; $C->unreg_me; $con->disconnect ("done sending"); }); $msg->send ($con); }, disconnect => sub { my ($C, $acc, $h, $p, $msg) = @_; $dconmsg = $msg; $cl->finish; }, message => sub { my ($C, $acc, $msg) = @_; if (bare_jid ($msg->from) eq $src) { is ($msg->any_body, 'test body', "message body"); $cl->finish; } } ); $cl->wait; is ($dconmsg, "done sending", "disconnect message was ok");