Catalyst-Engine-XMPP2
view release on metacpan or search on metacpan
$c->engine->connection($c)
Access the connection object that generated the current request.
$c->engine->connections()
This returns a hashref identifying all the connections by the
resource name.
INTERNAL METHODS
$engine->handle_xmpp_node($app, $resource, $node)
This method is called by the stanza callbacks in the connections.
SEE ALSO
Catalyst::Engine, Catalyst::Engine::CGI, HTTP::Request, HTTP::Reponse,
Catalyst, Net::XMPP2::Connection, Catalyst::Engine::Embeddable
AUTHORS
Daniel Ruoso "daniel@ruoso.com"
BUG REPORTS
Please submit all bugs regarding "Catalyst::Engine::XMPP2" to
lib/Catalyst/Engine/XMPP2.pm view on Meta::CPAN
name.
=back
=head1 INTERNAL METHODS
=over
=item $engine->handle_xmpp_node($app, $resource, $node)
This method is called by the stanza callbacks in the connections.
=back
=head1 SEE ALSO
L<Catalyst::Engine>, L<Catalyst::Engine::CGI>, L<HTTP::Request>,
L<HTTP::Reponse>, L<Catalyst>, L<AnyEvent::XMPP::Connection>,
L<Catalyst::Engine::Embeddable>
=head1 AUTHORS
t/TestApp.t view on Meta::CPAN
};
my $last_set_callback;
my $expecting = '';
{ package Test::XMPP2;
sub connect {
return 1;
}
sub reg_cb {
my $self = shift;
my %callbacks = @_;
$self->{callbacks} = \%callbacks;
}
sub reply_iq_result {
my ($self, $id, $cb) = @_;
return unless $expecting eq 'iq_reply';
$last_set_callback = $cb;
}
sub send_message {
my ($self, $jid, $type, $cb, %attr) = @_;
return unless $expecting eq 'message';
$last_set_callback = $cb;
t/TestApp.t view on Meta::CPAN
} else {
fail('Unexpected resource '.$c);
}
}
for my $c (keys %expected_resources) {
fail('Missing resource '.$c);
}
# let's say the stream is ready
for my $c (keys %connections) {
$connections{$c}{callbacks}{stream_ready}->();
}
require AnyEvent::XMPP::Parser;
{
# now let's do an iq request...
my $parser = AnyEvent::XMPP::Parser->new();
$parser->set_stanza_cb
(sub {
my ($parser, $node) = @_;
return unless $node;
$last_set_callback = undef;
$expecting = 'iq_reply';
my $writer = Test::Writer->new();
$connections{'foo/iq_req'}{callbacks}{iq_get_request_xml}->($parser,$node);
ok($last_set_callback, 'reply sent');
$last_set_callback->($writer) if $last_set_callback;
is($writer->{data}, '<body>Hello World</body>', 'got correct iq reply');
});
$parser->set_error_cb
(sub {
my ($error, $data) = @_;
warn 'Failed!! '.$error.': '.$data;
});
t/TestApp.t view on Meta::CPAN
my $parser = AnyEvent::XMPP::Parser->new();
$parser->set_stanza_cb
(sub {
my ($parser, $node) = @_;
return unless $node;
$last_set_callback = undef;
$expecting = 'iq_reply';
my $writer = Test::Writer->new();
$connections{'foo/iq_req_xml'}{callbacks}{iq_set_request_xml}->($parser,$node);
ok($last_set_callback, 'reply sent');
$last_set_callback->($writer) if $last_set_callback;
is($writer->{data}, '<hello>World</hello>', 'got correct iq reply');
});
$parser->set_error_cb
(sub {
my ($error, $data) = @_;
warn 'Failed!! '.$error.': '.$data;
});
t/TestApp.t view on Meta::CPAN
my $parser = AnyEvent::XMPP::Parser->new();
$parser->set_stanza_cb
(sub {
my ($parser, $node) = @_;
return unless $node;
$last_set_callback = undef;
$expecting = 'message';
my $writer = Test::Writer->new();
$connections{'foo/message'}{callbacks}{message_xml}->($parser,$node);
ok($last_set_callback, 'reply sent');
$last_set_callback->($writer) if $last_set_callback;
is($writer->{data}, '<hello>World</hello>', 'got correct message');
});
$parser->set_error_cb
(sub {
my ($error, $data) = @_;
warn 'Failed!! '.$error.': '.$data;
});
t/TestApp.t view on Meta::CPAN
my $parser = AnyEvent::XMPP::Parser->new();
$parser->set_stanza_cb
(sub {
my ($parser, $node) = @_;
return unless $node;
$last_set_callback = undef;
$expecting = 'presence';
my $writer = Test::Writer->new();
$connections{'foo/presence'}{callbacks}{message_xml}->($parser,$node);
ok($last_set_callback, 'reply sent');
$last_set_callback->($writer) if $last_set_callback;
is($writer->{data}, '<hello><place>World</place></hello>', 'got correct presence');
});
$parser->set_error_cb
(sub {
my ($error, $data) = @_;
warn 'Failed!! '.$error.': '.$data;
});
( run in 0.693 second using v1.01-cache-2.11-cpan-9b1e4054eb1 )