#!/usr/bin/ruby
$:.unshift File::dirname(__FILE__) + '/../../lib'
require 'test/unit'
require File::dirname(__FILE__) + '/../lib/clienttester'
require 'xmpp4r'
require 'xmpp4r/version/helper/responder'
require 'xmpp4r/version/helper/simpleresponder'
include Jabber
class Version::HelperTest < Test::Unit::TestCase
include ClientTester
def test_create
h = Version::Responder.new(@client)
assert_kind_of(Version::Responder, h)
assert_respond_to(h, :add_version_callback)
end
def test_callback
# Prepare helper
h = Version::Responder.new(@client)
calls = 0
h.add_version_callback { |iq,responder|
calls += 1
assert('jabber:iq:version', iq.queryns)
responder.call('Test program', '1.0', 'Ruby Test::Unit')
}
# Send stanzas which shouldn't match
@server.send("")
@server.send("")
assert_equal(0, calls)
# Send a query
@server.send("") { |reply|
assert_equal('Test program', reply.query.iname)
assert_equal('1.0', reply.query.version)
assert_equal('Ruby Test::Unit', reply.query.os)
true
}
assert_equal(1, calls)
end
def test_simple
h = Version::SimpleResponder.new(@client, 'Test program', '1.0', 'Ruby Test::Unit')
# Send a query
@server.send("") { |reply|
assert_equal('Test program', reply.query.iname)
assert_equal('1.0', reply.query.version)
assert_equal('Ruby Test::Unit', reply.query.os)
true
}
end
end