PageRenderTime 35ms CodeModel.GetById 13ms RepoModel.GetById 0ms app.codeStats 0ms

/test/discovery/tc_responder.rb

http://github.com/ln/xmpp4r
Ruby | 91 lines | 78 code | 12 blank | 1 comment | 0 complexity | 719d32d5b7cd97e6dd78120b62a2bc74 MD5 | raw file
Possible License(s): GPL-2.0
  1. #!/usr/bin/ruby
  2. $:.unshift File::dirname(__FILE__) + '/../../lib'
  3. require 'test/unit'
  4. require File::dirname(__FILE__) + '/../lib/clienttester'
  5. require 'xmpp4r/discovery/helper/responder'
  6. include Jabber
  7. class Discovery::ResponderTest < Test::Unit::TestCase
  8. include ClientTester
  9. def test_new
  10. r = Discovery::Responder.new(@client)
  11. assert_nil(r.node)
  12. assert_equal([], r.identities)
  13. assert_equal([], r.features)
  14. assert_equal([], r.forms)
  15. assert_equal([], r.items)
  16. end
  17. def test_new2
  18. r = Discovery::Responder.new(@client, 'xmpp4r',
  19. [Discovery::Identity.new('client', 'XMPP4R', 'bot'),
  20. Discovery::Identity.new('pubsub', 'Personal events', 'pep')],
  21. ['ipv6', Discovery::Feature.new('sslc2s')],
  22. [Discovery::Item.new('foo@bar', 'Foo', nil), Discovery::Item.new('bar@baz', 'Bar', 'barbaz')])
  23. assert_equal('xmpp4r', r.node)
  24. assert_equal([Discovery::Identity.new('client', 'XMPP4R', 'bot'),
  25. Discovery::Identity.new('pubsub', 'Personal events', 'pep')], r.identities)
  26. assert_equal([Discovery::Feature.new('ipv6'), Discovery::Feature.new('sslc2s')], r.features)
  27. assert_equal([], r.forms)
  28. assert_equal([Discovery::Item.new('foo@bar', 'Foo', nil), Discovery::Item.new('bar@baz', 'Bar', 'barbaz')], r.items)
  29. end
  30. def test_generate_item
  31. r = Discovery::Responder.new(@client, nil, [Discovery::Identity.new('client', 'XMPP4R', 'bot')])
  32. assert_equal(Discovery::Item.new(@client.jid, 'XMPP4R'), r.generate_item)
  33. end
  34. def test_query
  35. Discovery::Responder.new(@client, nil,
  36. [Discovery::Identity.new('client', 'XMPP4R', 'bot')],
  37. ['ipv6'],
  38. [Discovery::Item.new('foo@bar', 'Foo', nil)])
  39. iq1 = Iq.new(:get)
  40. iq1.add(Discovery::IqQueryDiscoInfo.new)
  41. reply1 = @server.send_with_id(iq1)
  42. assert_equal(:result, reply1.type)
  43. assert_kind_of(Discovery::IqQueryDiscoInfo, reply1.query)
  44. assert_nil(reply1.query.node)
  45. assert_equal(1, reply1.query.identities.size)
  46. assert_equal('XMPP4R', reply1.query.identities[0].iname)
  47. assert_equal(['ipv6'], reply1.query.features)
  48. iq2 = Iq.new(:get)
  49. iq2.add(Discovery::IqQueryDiscoItems.new)
  50. reply2 = @server.send_with_id(iq2)
  51. assert_equal(:result, reply2.type)
  52. assert_kind_of(Discovery::IqQueryDiscoItems, reply2.query)
  53. assert_nil(reply2.query.node)
  54. assert_equal(1, reply2.query.items.size)
  55. assert_equal(JID.new('foo@bar'), reply2.query.items[0].jid)
  56. end
  57. def test_linked
  58. class << @client
  59. remove_method(:jid) # avoids warning
  60. def jid
  61. JID.new('foo@bar/baz')
  62. end
  63. end
  64. r1 = Discovery::Responder.new(@client, 'child',
  65. [Discovery::Identity.new('client', 'Child', 'bot')])
  66. r2 = Discovery::Responder.new(@client, nil,
  67. [], [],
  68. [r1])
  69. iq = Iq.new(:get)
  70. iq.add(Discovery::IqQueryDiscoItems.new)
  71. reply = @server.send_with_id(iq)
  72. assert_kind_of(Discovery::IqQueryDiscoItems, reply.query)
  73. assert_nil(reply.query.node)
  74. assert_equal(1, reply.query.items.size)
  75. assert_equal(JID.new('foo@bar/baz'), reply.query.items[0].jid)
  76. assert_equal('Child', reply.query.items[0].iname)
  77. assert_equal('child', reply.query.items[0].node)
  78. end
  79. end