#!/usr/bin/ruby
$:.unshift File::dirname(__FILE__) + '/../../lib'
require 'test/unit'
require File::dirname(__FILE__) + '/../lib/clienttester'
require 'xmpp4r/muc'
include Jabber
class SimpleMUCClientTest < Test::Unit::TestCase
include ClientTester
def test_new1
m = MUC::SimpleMUCClient.new(@client)
assert_equal(nil, m.jid)
assert_equal(nil, m.my_jid)
assert_equal({}, m.roster)
assert(!m.active?)
end
def test_complex
m = MUC::SimpleMUCClient.new(@client)
block_args = []
wait = Mutex.new
block = lambda { |*a| block_args = a; wait.unlock }
m.on_room_message(&block)
m.on_message(&block)
m.on_private_message(&block)
m.on_subject(&block)
m.on_join(&block)
m.on_leave(&block)
m.on_self_leave(&block)
state { |pres|
assert_kind_of(Presence, pres)
assert_equal(JID.new('hag66@shakespeare.lit/pda'), pres.from)
assert_equal(JID.new('darkcave@macbeth.shakespeare.lit/thirdwitch'), pres.to)
send("" +
" " +
"" +
"" +
" " +
"" +
"" +
" " +
"")
}
m.my_jid = 'hag66@shakespeare.lit/pda'
assert_equal(m, m.join('darkcave@macbeth.shakespeare.lit/thirdwitch'))
assert(m.active?)
assert_equal(3, m.roster.size)
state { |msg|
assert_kind_of(Message, msg)
assert_equal(:groupchat, msg.type)
assert_equal(JID.new('hag66@shakespeare.lit/pda'), msg.from)
assert_equal(JID.new('darkcave@macbeth.shakespeare.lit'), msg.to)
assert_equal('TestCasing room', msg.subject)
assert_nil(msg.body)
send(msg.set_from('darkcave@macbeth.shakespeare.lit/thirdwitch').set_to('hag66@shakespeare.lit/pda'))
}
assert_nil(m.subject)
wait.lock
m.subject = 'TestCasing room'
wait.lock
assert_equal([nil, 'thirdwitch', 'TestCasing room'], block_args)
assert_equal('TestCasing room', m.subject)
end
end