#!/usr/bin/ruby $:.unshift '../lib' require 'test/unit' require 'socket' require 'xmpp4r/rexmladdons' require 'xmpp4r/iq' require 'xmpp4r/errors' include Jabber require File::dirname(__FILE__) + '/lib/assert_equal_xml' class IqTest < Test::Unit::TestCase def test_create x = Iq.new() assert_equal("iq", x.name) assert_equal("jabber:client", x.namespace) assert_equal_xml("", x) end def test_iqauth x = Iq.new_authset(JID.new('node@domain/resource'), 'password') assert_equal_xml("nodepasswordresource", x) end def test_iqauth_digest x = Iq.new_authset_digest(JID.new('node@domain/resource'), '', 'password') assert_equal_xml("node#{Digest::SHA1.hexdigest('password')}resource", x) end def test_register x1 = Iq.new_register assert_equal_xml("", x1) x2 = Iq.new_register('node') assert_equal_xml("node", x2) x3 = Iq.new_register('node', 'password') assert_equal_xml("nodepassword", x3) end def test_rosterget x = Iq.new_rosterget assert_equal_xml("", x) end def test_rosterset x = Iq.new_rosterset assert_equal_xml("", x) end def test_browseget x = Iq.new_browseget assert_equal_xml("", x) 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('jabber:client', 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('jabber:client', 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 ErrorResponse object. x2 = Iq.new.import(x) assert_equal(ErrorResponse, 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('jabber:client', x.queryns) end end