PageRenderTime 30ms CodeModel.GetById 8ms RepoModel.GetById 0ms app.codeStats 0ms

/test/test_dnssd_reply_query_record.rb

http://github.com/tenderlove/dnssd
Ruby | 91 lines | 63 code | 28 blank | 0 comment | 0 complexity | fcee628cb1995fd308c4a4079bdcd828 MD5 | raw file
  1. require 'helper'
  2. class TestDNSSDReplyQueryRecord < DNSSD::Test
  3. def setup
  4. @fullname = 'blackjack._blackjack._tcp.test.'
  5. @IN = DNSSD::Record::IN
  6. @ipv4 = "\300\000\002\001"
  7. @ipv6 = " \001\r\270\000\000\000\000\000\000\000\000\000\000\000\001"
  8. @nowhere = "\007nowhere\007example\000"
  9. end
  10. def test_record_data_A
  11. qr = util_qr DNSSD::Record::A, @ipv4
  12. assert_equal IPAddr.new_ntoh(@ipv4), qr.record_data
  13. end
  14. def test_record_data_AAAA
  15. qr = util_qr DNSSD::Record::A, @ipv6
  16. assert_equal IPAddr.new_ntoh(@ipv6), qr.record_data
  17. end
  18. def test_record_data_CNAME
  19. qr = util_qr DNSSD::Record::CNAME, @nowhere
  20. assert_equal 'nowhere.example.', qr.record_data
  21. end
  22. def test_record_data_MX
  23. qr = util_qr DNSSD::Record::MX, "\000\010#{@nowhere}"
  24. assert_equal [8, 'nowhere.example.'], qr.record_data
  25. end
  26. def test_record_data_NS
  27. qr = util_qr DNSSD::Record::NS, @nowhere
  28. assert_equal 'nowhere.example.', qr.record_data
  29. end
  30. def test_record_data_PTR
  31. qr = util_qr DNSSD::Record::PTR, @nowhere
  32. assert_equal 'nowhere.example.', qr.record_data
  33. end
  34. def test_record_data_SOA
  35. serial = 1
  36. refresh = 86400
  37. rtry = 3600
  38. expire = 86400 * 2
  39. minimum = 3600 * 12
  40. data = "#{@nowhere}\002me#{@nowhere}#{[serial, refresh, rtry, expire, minimum].pack 'NNNNN'}"
  41. qr = util_qr DNSSD::Record::SOA, data
  42. expected = [
  43. 'nowhere.example.', 'me.nowhere.example.',
  44. serial, refresh, rtry, expire, minimum
  45. ]
  46. assert_equal expected, qr.record_data
  47. end
  48. def test_record_data_SRV
  49. priority = 1
  50. weight = 5
  51. port = 1025
  52. data = "#{[priority, weight, port].pack 'nnn'}#{@nowhere}"
  53. qr = util_qr DNSSD::Record::SRV, data
  54. assert_equal [1, 5, 1025, 'nowhere.example.'], qr.record_data
  55. end
  56. def test_record_data_TXT
  57. qr = util_qr DNSSD::Record::TXT, "\005Hello\006World!"
  58. assert_equal %w[Hello World!], qr.record_data
  59. end
  60. def util_qr(rtype, rdata)
  61. DNSSD::Reply::QueryRecord.new nil, 0, 0, @fullname, rtype, @IN, rdata, 120
  62. end
  63. end