#!perl
use strict;
no warnings;
use Test::More;
use AnyEvent::XMPP::Namespaces qw/xmpp_ns/;
use AnyEvent::XMPP::TestClient;
use AnyEvent::XMPP::IM::Message;
use AnyEvent::XMPP::Util qw/bare_jid prep_bare_jid split_jid cmp_jid/;
use AnyEvent::XMPP::Ext::MUC;
my $cl =
AnyEvent::XMPP::TestClient->new_or_exit (
tests => 4, two_accounts => 1, muc_test => 1, finish_count => 1
);
my $C = $cl->client;
my ($nickjids, $users_r1, $users_r2) = ("nonickjids", "nousers", "nootherusers");
my $discoerror;
my $discofeat;
$C->reg_cb (
two_rooms_joined => sub {
my ($C) = @_;
$nickjids = join '', sort ($cl->{room}->nick_jid, $cl->{room2}->nick_jid);
$users_r1 = join '', sort map { $_->jid } $cl->{room}->users;
$users_r2 = join '', sort map { $_->jid } $cl->{room2}->users;
$cl->{disco}->request_info ($cl->{acc}->connection, $cl->{jid2}, undef, sub {
my ($disco, $info, $error) = @_;
if ($error) {
$discoerror = $error;
} else {
($discofeat) = grep { xmpp_ns ('muc') eq $_ } keys %{$info->features};
}
$cl->finish;
});
}
);
$cl->wait;
is ($users_r1, $nickjids, 'room only has our two test bots');
is ($users_r1, $users_r2, 'the room lists match for both extensions');
ok (!$discoerror, 'disco was successful');
is ($discofeat, 'http://jabber.org/protocol/muc', 'disco feature of client ok');