#!/usr/bin/ruby
$:.unshift '../lib'
require 'test/unit'
require 'socket'
require 'xmpp4r/rexmladdons'
require 'xmpp4r/iq'
include Jabber
class IqTest < Test::Unit::TestCase
def test_create
x = Iq::new()
assert_equal("iq", x.name)
assert_equal("", x.to_s)
end
def test_iqauth
x = Iq::new_authset(JID::new('node@domain/resource'), 'password')
assert_equal("nodepasswordresource", x.to_s)
end
def test_iqauth_digest
x = Iq::new_authset_digest(JID::new('node@domain/resource'), '', 'password')
assert_equal("node#{Digest::SHA1.hexdigest('password')}resource", x.to_s)
end
def test_register
x1 = Iq::new_register
assert_equal("", x1.to_s)
x2 = Iq::new_register('node')
assert_equal("node", x2.to_s)
x3 = Iq::new_register('node', 'password')
assert_equal("nodepassword", x3.to_s)
end
def test_rosterget
x = Iq::new_rosterget
assert_equal("", x.to_s)
end
def test_rosterset
x = Iq::new_rosterset
assert_equal("", x.to_s)
end
def test_browseget
x = Iq::new_browseget
assert_equal("", x.to_s)
end
def test_types
iq = Iq::new
assert_equal(nil, iq.type)
iq.type = :get
assert_equal(:get, iq.type)
iq.type = :set
assert_equal(:set, iq.type)
iq.type = :result
assert_equal(:result, iq.type)
iq.type = :error
assert_equal(:error, iq.type)
iq.type = :invalid
assert_equal(nil, iq.type)
end
def test_query
x = Iq::new(:set)
assert_equal(nil, x.queryns)
query = REXML::Element::new('query')
x.add(query)
assert_equal('', x.queryns)
query.add_namespace('jabber:iq:auth')
assert_equal(query.to_s, x.query.to_s)
assert_equal('jabber:iq:auth', x.queryns)
query2 = REXML::Element::new('query')
x.query = query2
assert_equal('', x.queryns)
query2.add_namespace('jabber:iq:register')
assert_equal('jabber:iq:register', x.queryns)
end
def test_vcard
x = Iq::new
assert_equal(nil, x.vcard)
x.add(vcard = REXML::Element.new('vCard'))
assert_equal(vcard, x.vcard)
end
def test_error
x = Iq::new(:set)
e = REXML::Element::new('error')
x.add(e)
# test if, after an import, the error element is successfully changed
# into an Error object.
x2 = Iq::new.import(x)
assert_equal(Error, x2.first_element('error').class)
end
def test_new_query
x = Iq::new_query(:get, JID.new('a@b/c'))
assert_equal(:get, x.type)
assert_equal(nil, x.from)
assert_equal(JID.new('a@b/c'), x.to)
assert_kind_of(IqQuery, x.query)
assert_equal('', x.queryns)
end
end