1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
|
#!/usr/bin/ruby
$:.unshift '../lib'
require 'test/unit'
require 'xmpp4r'
require 'xmpp4r/rexmladdons'
require 'xmpp4r/message'
include Jabber
class ServerErrorTest < Test::Unit::TestCase
def test_create_with_empty_error
e = ErrorResponse.new()
ee = ServerError.new(e)
assert_equal(nil, e.error)
end
def test_create_with_error_code
e = ErrorResponse.new('payment-required')
ee = ServerError.new(e)
assert_equal("payment-required: ", ee.to_s)
end
def test_create_invalid
assert_raise(Jabber::ArgumentError) {
e = ErrorResponse.new('invalid error')
ee = ServerError.new(e)
}
end
def test_to_s_with_error_code_but_no_text
e = ErrorResponse.new('payment-required')
ee = ServerError.new(e)
assert_equal("payment-required: ", ee.to_s)
assert_equal('payment-required', e.error)
assert_equal(402, ee.error.code)
assert_equal(:auth, ee.error.type)
assert_equal(nil, ee.error.text)
end
def test_to_s_with_error_code_and_text
e = ErrorResponse.new('payment-required', 'cuz you are a deadbeat.')
ee = ServerError.new(e)
assert_equal("payment-required: cuz you are a deadbeat.", ee.to_s)
assert_equal('payment-required', e.error)
assert_equal(402, ee.error.code)
assert_equal(:auth, ee.error.type)
assert_equal("cuz you are a deadbeat.", ee.error.text)
end
end
class ErrorTest < Test::Unit::TestCase
def test_create
e = ErrorResponse.new
assert_equal(nil, e.error)
assert_equal(nil, e.code)
assert_equal(nil, e.type)
assert_equal(nil, e.text)
end
def test_create2
e = ErrorResponse.new('payment-required')
assert_equal('payment-required', e.error)
assert_equal(402, e.code)
assert_equal(:auth, e.type)
assert_equal(nil, e.text)
end
def test_create3
e = ErrorResponse.new('gone', 'User moved to afterlife.gov')
assert_equal('gone', e.error)
assert_equal(302, e.code)
assert_equal(:modify, e.type)
assert_equal('User moved to afterlife.gov', e.text)
end
def test_create_invalid
assert_raise(Jabber::ArgumentError) {
e = ErrorResponse.new('invalid error')
}
end
def test_type
e = ErrorResponse.new
assert_nil(e.type)
e.type = :auth
assert_equal(:auth, e.type)
e.type = :cancel
assert_equal(:cancel, e.type)
e.type = :continue
assert_equal(:continue, e.type)
e.type = :modify
assert_equal(:modify, e.type)
e.type = :wait
assert_equal(:wait, e.type)
e.type = nil
assert_nil(e.type)
end
def test_code
e = ErrorResponse.new
assert_nil(e.code)
e.code = 404
assert_equal(404, e.code)
assert_equal("<error code='404'/>", e.to_s)
e.code = nil
assert_nil(e.code)
end
def test_error
e = ErrorResponse.new
assert_nil(e.error)
e.error = 'gone'
assert_equal('gone', e.error)
assert_raise(RuntimeError) {
e.error = nil
}
end
def test_stanzas
m = Message.new
assert_equal(nil, m.error)
m.typed_add(ErrorResponse.new)
assert_equal('<error/>', m.error.to_s)
end
def test_sample_normal
src = '<error code="302" type="modify"><gone xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/><text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">...</text></error>'
e = ErrorResponse.new.import(REXML::Document.new(src).root)
assert_equal(:modify, e.type)
assert_equal(302, e.code)
assert_equal('gone', e.error)
assert_equal('...', e.text)
end
def test_sample_muc
src = '<error code="409">Please choose a different nickname.</error>'
e = ErrorResponse.new.import(REXML::Document.new(src).root)
assert_equal(nil, e.type)
assert_equal(409, e.code)
assert_equal(nil, e.error)
assert_equal('Please choose a different nickname.', e.text)
end
end
|