whois 2.0.7 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (224) hide show
  1. data/CHANGELOG.rdoc +84 -10
  2. data/Rakefile +0 -7
  3. data/lib/core_ext.rb +9 -45
  4. data/lib/core_ext/array/extract_options.rb +29 -0
  5. data/lib/core_ext/array/wrap.rb +48 -0
  6. data/lib/core_ext/class/attribute.rb +115 -0
  7. data/lib/core_ext/date_time/conversions.rb +15 -0
  8. data/lib/core_ext/kernel/singleton_class.rb +13 -0
  9. data/lib/core_ext/module/remove_method.rb +16 -0
  10. data/lib/whois.rb +0 -4
  11. data/lib/whois/definitions/tlds.rb +10 -5
  12. data/lib/whois/record.rb +0 -3
  13. data/lib/whois/record/parser.rb +3 -3
  14. data/lib/whois/record/parser/NOTES.txt +15 -8
  15. data/lib/whois/record/parser/base.rb +12 -35
  16. data/lib/whois/record/parser/base_afilias.rb +156 -0
  17. data/lib/whois/record/parser/example.rb +8 -4
  18. data/lib/whois/record/parser/jobswhois.verisign-grs.com.rb +2 -2
  19. data/lib/whois/record/parser/scanners/afilias.rb +13 -4
  20. data/lib/whois/record/parser/{features → scanners}/ast.rb +1 -1
  21. data/lib/whois/record/parser/scanners/base.rb +9 -0
  22. data/lib/whois/record/parser/scanners/cnnic.rb +2 -2
  23. data/lib/whois/record/parser/scanners/{whoisbiz.rb → whois.biz.rb} +2 -8
  24. data/lib/whois/record/parser/scanners/whois.denic.de.rb +117 -0
  25. data/lib/whois/record/parser/scanners/whois.nic.hu.rb +187 -0
  26. data/lib/whois/record/parser/scanners/{whoisit.rb → whois.nic.it.rb} +2 -2
  27. data/lib/whois/record/parser/scanners/whois.registry.qa.rb +54 -0
  28. data/lib/whois/record/parser/scanners/whois.tld.ee.rb +41 -0
  29. data/lib/whois/record/parser/whois.aero.rb +8 -46
  30. data/lib/whois/record/parser/whois.afilias-grs.info.rb +2 -51
  31. data/lib/whois/record/parser/whois.afilias.info.rb +2 -126
  32. data/lib/whois/record/parser/whois.biz.rb +6 -6
  33. data/lib/whois/record/parser/whois.cnnic.cn.rb +5 -5
  34. data/lib/whois/record/parser/whois.crsnic.net.rb +2 -2
  35. data/lib/whois/record/parser/whois.denic.de.rb +8 -105
  36. data/lib/whois/record/parser/whois.dotmobiregistry.net.rb +2 -51
  37. data/lib/whois/record/parser/whois.godaddy.com.rb +138 -0
  38. data/lib/whois/record/parser/whois.iana.org.rb +2 -2
  39. data/lib/whois/record/parser/whois.markmonitor.com.rb +13 -12
  40. data/lib/whois/record/parser/whois.meregistry.net.rb +45 -30
  41. data/lib/whois/record/parser/whois.nic.af.rb +6 -2
  42. data/lib/whois/record/parser/whois.nic.ag.rb +2 -51
  43. data/lib/whois/record/parser/whois.nic.asia.rb +47 -38
  44. data/lib/whois/record/parser/whois.nic.cc.rb +2 -2
  45. data/lib/whois/record/parser/whois.nic.hu.rb +7 -174
  46. data/lib/whois/record/parser/whois.nic.it.rb +6 -6
  47. data/lib/whois/record/parser/whois.nic.name.rb +1 -5
  48. data/lib/whois/record/parser/whois.nic.travel.rb +4 -12
  49. data/lib/whois/record/parser/whois.nic.tv.rb +2 -2
  50. data/lib/whois/record/parser/whois.nic.us.rb +4 -4
  51. data/lib/whois/record/parser/whois.nic.xxx.rb +5 -112
  52. data/lib/whois/record/parser/whois.publicinterestregistry.net.rb +8 -168
  53. data/lib/whois/record/parser/whois.registry.in.rb +2 -60
  54. data/lib/whois/record/parser/whois.registry.qa.rb +117 -0
  55. data/lib/whois/record/parser/whois.ripn.net.rb +4 -84
  56. data/lib/whois/record/parser/whois.sgnic.sg.rb +13 -5
  57. data/lib/whois/record/parser/whois.tcinet.ru.rb +102 -0
  58. data/lib/whois/record/parser/whois.tld.ee.rb +5 -26
  59. data/lib/whois/record/parser/whois.tonic.to.rb +0 -8
  60. data/lib/whois/server/adapters/base.rb +23 -10
  61. data/lib/whois/version.rb +2 -2
  62. data/spec/fixtures/responses/FIND.txt +1 -0
  63. data/spec/fixtures/responses/whois.aero/status_available.expected +35 -1
  64. data/spec/fixtures/responses/whois.aero/status_registered.expected +77 -1
  65. data/spec/fixtures/responses/whois.afilias-grs.info/bz/status_available.expected +34 -0
  66. data/spec/fixtures/responses/whois.afilias-grs.info/bz/status_registered.expected +39 -2
  67. data/spec/fixtures/responses/whois.afilias-grs.info/bz/status_registered.txt +2 -82
  68. data/spec/fixtures/responses/whois.afilias-grs.info/gi/status_available.expected +34 -0
  69. data/spec/fixtures/responses/whois.afilias-grs.info/gi/status_registered.expected +76 -0
  70. data/spec/fixtures/responses/whois.afilias-grs.info/hn/status_available.expected +34 -0
  71. data/spec/fixtures/responses/whois.afilias-grs.info/hn/status_registered.expected +76 -0
  72. data/spec/fixtures/responses/whois.afilias-grs.info/lc/status_available.expected +34 -0
  73. data/spec/fixtures/responses/whois.afilias-grs.info/lc/status_registered.expected +76 -0
  74. data/spec/fixtures/responses/whois.afilias-grs.info/mn/status_available.expected +34 -0
  75. data/spec/fixtures/responses/whois.afilias-grs.info/mn/status_registered.expected +76 -0
  76. data/spec/fixtures/responses/whois.afilias-grs.info/sc/status_available.expected +57 -0
  77. data/spec/fixtures/responses/whois.afilias-grs.info/sc/status_registered.expected +76 -0
  78. data/spec/fixtures/responses/whois.afilias-grs.info/vc/status_available.expected +34 -0
  79. data/spec/fixtures/responses/whois.afilias-grs.info/vc/status_registered.expected +76 -0
  80. data/spec/fixtures/responses/whois.dotmobiregistry.net/status_available.expected +35 -0
  81. data/spec/fixtures/responses/whois.dotmobiregistry.net/status_available.txt +1 -25
  82. data/spec/fixtures/responses/whois.dotmobiregistry.net/status_registered.expected +76 -0
  83. data/spec/fixtures/responses/whois.educause.edu/{properties_updated_on_unknown.expected → property_updated_on_unknown.expected} +0 -0
  84. data/spec/fixtures/responses/whois.educause.edu/{properties_updated_on_unknown.txt → property_updated_on_unknown.txt} +0 -0
  85. data/spec/fixtures/responses/whois.godaddy.com/status_registered.expected +87 -0
  86. data/spec/fixtures/responses/whois.godaddy.com/status_registered.txt +60 -0
  87. data/spec/fixtures/responses/whois.markmonitor.com/{properties_empty_contacts.expected → property_contacts_are_blank.expected} +0 -0
  88. data/spec/fixtures/responses/whois.markmonitor.com/{properties_empty_contacts.txt → property_contacts_are_blank.txt} +0 -0
  89. data/spec/fixtures/responses/whois.meregistry.net/{property_nameservers_is_missing.expected → property_nameservers_is_blank.expected} +0 -0
  90. data/spec/fixtures/responses/whois.meregistry.net/{property_nameservers_is_missing.txt → property_nameservers_is_blank.txt} +0 -0
  91. data/spec/fixtures/responses/whois.meregistry.net/status_available.expected +34 -0
  92. data/spec/fixtures/responses/whois.meregistry.net/status_registered.expected +77 -0
  93. data/spec/fixtures/responses/whois.meregistry.net/status_registered.txt +1 -1
  94. data/spec/fixtures/responses/{whois.nic.asia/property_status_client_delete_prohibited.expected → whois.nic.af/property_status_active.expected} +0 -0
  95. data/spec/fixtures/responses/whois.nic.af/property_status_active.txt +56 -0
  96. data/spec/fixtures/responses/{whois.nic.asia/property_status_client_transfer_prohibited.expected → whois.nic.af/property_status_delegated.expected} +0 -0
  97. data/spec/fixtures/responses/whois.nic.af/property_status_delegated.txt +46 -0
  98. data/spec/fixtures/responses/whois.nic.af/property_status_not_registered.expected +8 -0
  99. data/spec/fixtures/responses/whois.nic.af/property_status_not_registered.txt +13 -0
  100. data/spec/fixtures/responses/whois.nic.ag/status_available.expected +34 -0
  101. data/spec/fixtures/responses/whois.nic.ag/status_registered.expected +76 -0
  102. data/spec/fixtures/responses/whois.nic.asia/property_status_multiple.expected +8 -0
  103. data/spec/fixtures/responses/whois.nic.asia/{property_status_client_delete_prohibited.txt → property_status_multiple.txt} +0 -0
  104. data/spec/fixtures/responses/whois.nic.asia/property_status_single.expected +8 -0
  105. data/spec/fixtures/responses/whois.nic.asia/{property_status_client_transfer_prohibited.txt → property_status_single.txt} +76 -76
  106. data/spec/fixtures/responses/whois.nic.asia/status_available.expected +35 -1
  107. data/spec/fixtures/responses/whois.nic.asia/status_registered.expected +78 -1
  108. data/spec/fixtures/responses/whois.nic.dz/{status_available.expected → dz/status_available.expected} +0 -0
  109. data/spec/fixtures/responses/whois.nic.dz/{status_available.txt → dz/status_available.txt} +0 -0
  110. data/spec/fixtures/responses/whois.nic.dz/{status_registered.expected → dz/status_registered.expected} +0 -0
  111. data/spec/fixtures/responses/whois.nic.dz/{status_registered.txt → dz/status_registered.txt} +0 -0
  112. data/spec/fixtures/responses/whois.nic.name/status_available.expected +1 -1
  113. data/spec/fixtures/responses/whois.nic.name/status_registered.expected +1 -1
  114. data/spec/fixtures/responses/whois.nic.travel/property_status_multiple.expected +2 -0
  115. data/spec/fixtures/responses/whois.nic.travel/property_status_multiple.txt +83 -0
  116. data/spec/fixtures/responses/whois.nic.travel/property_status_single.expected +2 -0
  117. data/spec/fixtures/responses/whois.nic.travel/property_status_single.txt +75 -0
  118. data/spec/fixtures/responses/whois.nic.travel/status_available.expected +1 -1
  119. data/spec/fixtures/responses/whois.nic.travel/status_registered.expected +1 -1
  120. data/spec/fixtures/responses/whois.nic.xxx/property_updated_on_blank.expected +2 -0
  121. data/spec/fixtures/responses/whois.nic.xxx/property_updated_on_blank.txt +98 -0
  122. data/spec/fixtures/responses/whois.nic.xxx/status_registered.expected +45 -46
  123. data/spec/fixtures/responses/whois.nic.xxx/status_registered.txt +61 -61
  124. data/spec/fixtures/responses/whois.publicinterestregistry.net/status_available.expected +1 -1
  125. data/spec/fixtures/responses/whois.publicinterestregistry.net/status_registered.expected +8 -1
  126. data/spec/fixtures/responses/whois.registry.in/property_status_missing.expected +1 -1
  127. data/spec/fixtures/responses/whois.registry.in/property_status_multiple.expected +1 -1
  128. data/spec/fixtures/responses/whois.registry.in/property_status_ok.expected +1 -1
  129. data/spec/fixtures/responses/whois.registry.in/status_available.expected +31 -1
  130. data/spec/fixtures/responses/whois.registry.in/status_registered.expected +70 -1
  131. data/spec/fixtures/responses/whois.registry.qa/qa/status_available.expected +56 -0
  132. data/spec/fixtures/responses/whois.registry.qa/qa/status_available.txt +1 -0
  133. data/spec/fixtures/responses/whois.registry.qa/qa/status_registered.expected +91 -0
  134. data/spec/fixtures/responses/whois.registry.qa/qa/status_registered.txt +23 -0
  135. data/spec/fixtures/responses/whois.sgnic.sg/property_nameservers_schema_1_with_ip.expected +12 -0
  136. data/spec/fixtures/responses/whois.sgnic.sg/property_nameservers_schema_1_with_ip.txt +94 -0
  137. data/spec/fixtures/responses/{whois.ripn.net → whois.tcinet.ru}/ru/property_nameservers_with_ip.expected +0 -0
  138. data/spec/fixtures/responses/{whois.ripn.net → whois.tcinet.ru}/ru/property_nameservers_with_ip.txt +0 -0
  139. data/spec/fixtures/responses/{whois.ripn.net → whois.tcinet.ru}/ru/status_available.expected +0 -0
  140. data/spec/fixtures/responses/{whois.ripn.net → whois.tcinet.ru}/ru/status_available.txt +0 -0
  141. data/spec/fixtures/responses/{whois.ripn.net → whois.tcinet.ru}/ru/status_registered.expected +0 -0
  142. data/spec/fixtures/responses/{whois.ripn.net → whois.tcinet.ru}/ru/status_registered.txt +0 -0
  143. data/spec/fixtures/responses/{whois.ripn.net → whois.tcinet.ru}/su/status_available.expected +0 -0
  144. data/spec/fixtures/responses/{whois.ripn.net → whois.tcinet.ru}/su/status_available.txt +0 -0
  145. data/spec/fixtures/responses/{whois.ripn.net → whois.tcinet.ru}/su/status_registered.expected +0 -0
  146. data/spec/fixtures/responses/{whois.ripn.net → whois.tcinet.ru}/su/status_registered.txt +0 -0
  147. data/spec/fixtures/responses/{whois.ripn.net → whois.tcinet.ru}/xn--p1ai/status_available.expected +0 -0
  148. data/spec/fixtures/responses/{whois.ripn.net → whois.tcinet.ru}/xn--p1ai/status_available.txt +0 -0
  149. data/spec/fixtures/responses/{whois.ripn.net → whois.tcinet.ru}/xn--p1ai/status_registered.expected +0 -0
  150. data/spec/fixtures/responses/{whois.ripn.net → whois.tcinet.ru}/xn--p1ai/status_registered.txt +0 -0
  151. data/spec/integration_spec.rb +29 -12
  152. data/spec/support/helpers/spec_helper.rb +0 -10
  153. data/spec/tlds +1 -1
  154. data/spec/whois/record/parser/base_spec.rb +23 -51
  155. data/spec/whois/record/parser/responses/whois.aero/status_available_spec.rb +49 -1
  156. data/spec/whois/record/parser/responses/whois.aero/status_registered_spec.rb +91 -1
  157. data/spec/whois/record/parser/responses/whois.afilias-grs.info/bz/status_available_spec.rb +48 -0
  158. data/spec/whois/record/parser/responses/whois.afilias-grs.info/bz/status_registered_spec.rb +53 -2
  159. data/spec/whois/record/parser/responses/whois.afilias-grs.info/gi/status_available_spec.rb +48 -0
  160. data/spec/whois/record/parser/responses/whois.afilias-grs.info/gi/status_registered_spec.rb +90 -0
  161. data/spec/whois/record/parser/responses/whois.afilias-grs.info/hn/status_available_spec.rb +48 -0
  162. data/spec/whois/record/parser/responses/whois.afilias-grs.info/hn/status_registered_spec.rb +90 -0
  163. data/spec/whois/record/parser/responses/whois.afilias-grs.info/lc/status_available_spec.rb +48 -0
  164. data/spec/whois/record/parser/responses/whois.afilias-grs.info/lc/status_registered_spec.rb +90 -0
  165. data/spec/whois/record/parser/responses/whois.afilias-grs.info/mn/status_available_spec.rb +48 -0
  166. data/spec/whois/record/parser/responses/whois.afilias-grs.info/mn/status_registered_spec.rb +90 -0
  167. data/spec/whois/record/parser/responses/whois.afilias-grs.info/sc/status_available_spec.rb +48 -0
  168. data/spec/whois/record/parser/responses/whois.afilias-grs.info/sc/status_registered_spec.rb +90 -0
  169. data/spec/whois/record/parser/responses/whois.afilias-grs.info/vc/status_available_spec.rb +48 -0
  170. data/spec/whois/record/parser/responses/whois.afilias-grs.info/vc/status_registered_spec.rb +90 -0
  171. data/spec/whois/record/parser/responses/whois.dotmobiregistry.net/status_available_spec.rb +48 -0
  172. data/spec/whois/record/parser/responses/whois.dotmobiregistry.net/status_registered_spec.rb +90 -0
  173. data/spec/whois/record/parser/responses/whois.educause.edu/{properties_updated_on_unknown_spec.rb → property_updated_on_unknown_spec.rb} +3 -3
  174. data/spec/whois/record/parser/responses/whois.godaddy.com/status_registered_spec.rb +131 -0
  175. data/spec/whois/record/parser/responses/whois.markmonitor.com/{properties_empty_contacts_spec.rb → property_contacts_are_blank_spec.rb} +3 -3
  176. data/spec/whois/record/parser/responses/whois.meregistry.net/{property_nameservers_is_missing_spec.rb → property_nameservers_is_blank_spec.rb} +3 -3
  177. data/spec/whois/record/parser/responses/whois.meregistry.net/status_available_spec.rb +48 -0
  178. data/spec/whois/record/parser/responses/whois.meregistry.net/status_registered_spec.rb +91 -0
  179. data/spec/whois/record/parser/responses/whois.nic.af/property_status_active_spec.rb +39 -0
  180. data/spec/whois/record/parser/responses/whois.nic.af/property_status_delegated_spec.rb +39 -0
  181. data/spec/whois/record/parser/responses/whois.nic.af/property_status_not_registered_spec.rb +39 -0
  182. data/spec/whois/record/parser/responses/whois.nic.ag/status_available_spec.rb +48 -0
  183. data/spec/whois/record/parser/responses/whois.nic.ag/status_registered_spec.rb +90 -0
  184. data/spec/whois/record/parser/responses/whois.nic.asia/{property_status_client_delete_prohibited_spec.rb → property_status_multiple_spec.rb} +4 -4
  185. data/spec/whois/record/parser/responses/whois.nic.asia/{property_status_client_transfer_prohibited_spec.rb → property_status_single_spec.rb} +4 -4
  186. data/spec/whois/record/parser/responses/whois.nic.asia/status_available_spec.rb +49 -1
  187. data/spec/whois/record/parser/responses/whois.nic.asia/status_registered_spec.rb +92 -1
  188. data/spec/whois/record/parser/responses/whois.nic.dz/{status_available_spec.rb → dz/status_available_spec.rb} +2 -2
  189. data/spec/whois/record/parser/responses/whois.nic.dz/{status_registered_spec.rb → dz/status_registered_spec.rb} +2 -2
  190. data/spec/whois/record/parser/responses/whois.nic.name/status_available_spec.rb +1 -1
  191. data/spec/whois/record/parser/responses/whois.nic.name/status_registered_spec.rb +1 -1
  192. data/spec/whois/record/parser/responses/whois.nic.travel/property_status_multiple_spec.rb +29 -0
  193. data/spec/whois/record/parser/responses/whois.nic.travel/property_status_single_spec.rb +29 -0
  194. data/spec/whois/record/parser/responses/whois.nic.travel/status_available_spec.rb +1 -1
  195. data/spec/whois/record/parser/responses/whois.nic.travel/status_registered_spec.rb +1 -1
  196. data/spec/whois/record/parser/responses/whois.nic.xxx/property_updated_on_blank_spec.rb +29 -0
  197. data/spec/whois/record/parser/responses/whois.nic.xxx/status_registered_spec.rb +45 -46
  198. data/spec/whois/record/parser/responses/whois.publicinterestregistry.net/status_available_spec.rb +1 -1
  199. data/spec/whois/record/parser/responses/whois.publicinterestregistry.net/status_registered_spec.rb +11 -1
  200. data/spec/whois/record/parser/responses/whois.registry.in/property_status_missing_spec.rb +1 -1
  201. data/spec/whois/record/parser/responses/whois.registry.in/property_status_multiple_spec.rb +1 -1
  202. data/spec/whois/record/parser/responses/whois.registry.in/property_status_ok_spec.rb +1 -1
  203. data/spec/whois/record/parser/responses/whois.registry.in/status_available_spec.rb +44 -1
  204. data/spec/whois/record/parser/responses/whois.registry.in/status_registered_spec.rb +83 -1
  205. data/spec/whois/record/parser/responses/whois.registry.qa/qa/status_available_spec.rb +107 -0
  206. data/spec/whois/record/parser/responses/whois.registry.qa/qa/status_registered_spec.rb +142 -0
  207. data/spec/whois/record/parser/responses/whois.sgnic.sg/property_nameservers_schema_1_with_ip_spec.rb +39 -0
  208. data/spec/whois/record/parser/responses/{whois.ripn.net → whois.tcinet.ru}/ru/property_nameservers_with_ip_spec.rb +4 -4
  209. data/spec/whois/record/parser/responses/{whois.ripn.net/su → whois.tcinet.ru/ru}/status_available_spec.rb +4 -4
  210. data/spec/whois/record/parser/responses/{whois.ripn.net → whois.tcinet.ru}/ru/status_registered_spec.rb +4 -4
  211. data/spec/whois/record/parser/responses/{whois.ripn.net/ru → whois.tcinet.ru/su}/status_available_spec.rb +4 -4
  212. data/spec/whois/record/parser/responses/{whois.ripn.net → whois.tcinet.ru}/su/status_registered_spec.rb +4 -4
  213. data/spec/whois/record/parser/responses/{whois.ripn.net → whois.tcinet.ru}/xn--p1ai/status_available_spec.rb +4 -4
  214. data/spec/whois/record/parser/responses/{whois.ripn.net → whois.tcinet.ru}/xn--p1ai/status_registered_spec.rb +4 -4
  215. data/spec/whois/record_spec.rb +4 -4
  216. data/spec/whois/server/adapters/afilias_spec.rb +3 -3
  217. data/spec/whois/server/adapters/base_spec.rb +50 -10
  218. data/spec/whois/server/adapters/formatted_spec.rb +4 -4
  219. data/spec/whois/server/adapters/pir_spec.rb +3 -3
  220. data/spec/whois/server/adapters/standard_spec.rb +4 -4
  221. data/spec/whois/server/adapters/verisign_spec.rb +7 -7
  222. data/whois.gemspec +4 -4
  223. metadata +101 -57
  224. data/lib/whois/answer.rb +0 -14
@@ -21,6 +21,31 @@ describe Whois::Record::Parser::WhoisMeregistryNet, "status_available.expected"
21
21
  @parser = klass.new(part)
22
22
  end
23
23
 
24
+ describe "#disclaimer" do
25
+ it do
26
+ @parser.disclaimer.should == nil
27
+ end
28
+ end
29
+ describe "#domain" do
30
+ it do
31
+ @parser.domain.should == nil
32
+ end
33
+ end
34
+ describe "#domain_id" do
35
+ it do
36
+ @parser.domain_id.should == nil
37
+ end
38
+ end
39
+ describe "#referral_whois" do
40
+ it do
41
+ lambda { @parser.referral_whois }.should raise_error(Whois::PropertyNotSupported)
42
+ end
43
+ end
44
+ describe "#referral_url" do
45
+ it do
46
+ lambda { @parser.referral_url }.should raise_error(Whois::PropertyNotSupported)
47
+ end
48
+ end
24
49
  describe "#status" do
25
50
  it do
26
51
  @parser.status.should == []
@@ -51,6 +76,29 @@ describe Whois::Record::Parser::WhoisMeregistryNet, "status_available.expected"
51
76
  @parser.expires_on.should == nil
52
77
  end
53
78
  end
79
+ describe "#registrar" do
80
+ it do
81
+ @parser.registrar.should == nil
82
+ end
83
+ end
84
+ describe "#registrant_contacts" do
85
+ it do
86
+ @parser.registrant_contacts.should be_a(Array)
87
+ @parser.registrant_contacts.should == []
88
+ end
89
+ end
90
+ describe "#admin_contacts" do
91
+ it do
92
+ @parser.admin_contacts.should be_a(Array)
93
+ @parser.admin_contacts.should == []
94
+ end
95
+ end
96
+ describe "#technical_contacts" do
97
+ it do
98
+ @parser.technical_contacts.should be_a(Array)
99
+ @parser.technical_contacts.should == []
100
+ end
101
+ end
54
102
  describe "#nameservers" do
55
103
  it do
56
104
  @parser.nameservers.should be_a(Array)
@@ -21,6 +21,31 @@ describe Whois::Record::Parser::WhoisMeregistryNet, "status_registered.expected"
21
21
  @parser = klass.new(part)
22
22
  end
23
23
 
24
+ describe "#disclaimer" do
25
+ it do
26
+ @parser.disclaimer.should == "WHOIS TERMS & CONDITIONS: Access to .ME WHOIS information is provided to assist persons in determining the contents of a domain name registration record in the .ME registry database. The data in this record is provided by .ME Registry for informational purposes only, and .ME Registry does not guarantee its accuracy. This service is intended only for query-based access. You agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data to: (a) allow, enable, or otherwise support the transmission by e-mail, telephone, facsimile, or other electronic processes of mass unsolicited, commercial advertising or solicitations to entities other than the data recipient's own existing customers; or (b) enable high volume, automated, electronic processes that send queries or data to the systems of Registry Operator, except as reasonably necessary to register domain names or modify existing registrations. All rights reserved. .ME Registry reserves the right to modify these terms at any time. By submitting this query, you agree to abide by this policy."
27
+ end
28
+ end
29
+ describe "#domain" do
30
+ it do
31
+ @parser.domain.should == "google.me"
32
+ end
33
+ end
34
+ describe "#domain_id" do
35
+ it do
36
+ @parser.domain_id.should == "D11599-ME"
37
+ end
38
+ end
39
+ describe "#referral_whois" do
40
+ it do
41
+ lambda { @parser.referral_whois }.should raise_error(Whois::PropertyNotSupported)
42
+ end
43
+ end
44
+ describe "#referral_url" do
45
+ it do
46
+ lambda { @parser.referral_url }.should raise_error(Whois::PropertyNotSupported)
47
+ end
48
+ end
24
49
  describe "#status" do
25
50
  it do
26
51
  @parser.status.should == ["CLIENT DELETE PROHIBITED", "CLIENT TRANSFER PROHIBITED", "CLIENT UPDATE PROHIBITED"]
@@ -54,6 +79,72 @@ describe Whois::Record::Parser::WhoisMeregistryNet, "status_registered.expected"
54
79
  @parser.expires_on.should == Time.parse("2013-06-13 17:17:40 UTC")
55
80
  end
56
81
  end
82
+ describe "#registrar" do
83
+ it do
84
+ @parser.registrar.should be_a(_registrar)
85
+ @parser.registrar.id.should == "R45-ME"
86
+ @parser.registrar.name.should == "MarkMonitor Inc"
87
+ @parser.registrar.organization.should == "MarkMonitor Inc"
88
+ @parser.registrar.url.should == nil
89
+ end
90
+ end
91
+ describe "#registrant_contacts" do
92
+ it do
93
+ @parser.registrant_contacts.should be_a(Array)
94
+ @parser.registrant_contacts.should have(1).items
95
+ @parser.registrant_contacts[0].should be_a(_contact)
96
+ @parser.registrant_contacts[0].type.should == Whois::Record::Contact::TYPE_REGISTRANT
97
+ @parser.registrant_contacts[0].id.should == "mmr-32097"
98
+ @parser.registrant_contacts[0].name.should == "DNS Admin"
99
+ @parser.registrant_contacts[0].organization.should == "Google Inc."
100
+ @parser.registrant_contacts[0].address.should == "1600 Amphitheatre Parkway"
101
+ @parser.registrant_contacts[0].city.should == "Mountain View"
102
+ @parser.registrant_contacts[0].zip.should == "94043"
103
+ @parser.registrant_contacts[0].state.should == "CA"
104
+ @parser.registrant_contacts[0].country_code.should == "US"
105
+ @parser.registrant_contacts[0].phone.should == "+1.6506234000"
106
+ @parser.registrant_contacts[0].fax.should == "+1.6506188571"
107
+ @parser.registrant_contacts[0].email.should == "dotme@markmonitor.com"
108
+ end
109
+ end
110
+ describe "#admin_contacts" do
111
+ it do
112
+ @parser.admin_contacts.should be_a(Array)
113
+ @parser.admin_contacts.should have(1).items
114
+ @parser.admin_contacts[0].should be_a(_contact)
115
+ @parser.admin_contacts[0].type.should == Whois::Record::Contact::TYPE_ADMIN
116
+ @parser.admin_contacts[0].id.should == "mmr-32097"
117
+ @parser.admin_contacts[0].name.should == "DNS Admin"
118
+ @parser.admin_contacts[0].organization.should == "Google Inc."
119
+ @parser.admin_contacts[0].address.should == "1600 Amphitheatre Parkway"
120
+ @parser.admin_contacts[0].city.should == "Mountain View"
121
+ @parser.admin_contacts[0].zip.should == "94043"
122
+ @parser.admin_contacts[0].state.should == "CA"
123
+ @parser.admin_contacts[0].country_code.should == "US"
124
+ @parser.admin_contacts[0].phone.should == "+1.6506234000"
125
+ @parser.admin_contacts[0].fax.should == "+1.6506188571"
126
+ @parser.admin_contacts[0].email.should == "dotme@markmonitor.com"
127
+ end
128
+ end
129
+ describe "#technical_contacts" do
130
+ it do
131
+ @parser.technical_contacts.should be_a(Array)
132
+ @parser.technical_contacts.should have(1).items
133
+ @parser.technical_contacts[0].should be_a(_contact)
134
+ @parser.technical_contacts[0].type.should == Whois::Record::Contact::TYPE_TECHNICAL
135
+ @parser.technical_contacts[0].id.should == "mmr-32097"
136
+ @parser.technical_contacts[0].name.should == "DNS Admin"
137
+ @parser.technical_contacts[0].organization.should == "Google Inc."
138
+ @parser.technical_contacts[0].address.should == "1600 Amphitheatre Parkway"
139
+ @parser.technical_contacts[0].city.should == "Mountain View"
140
+ @parser.technical_contacts[0].zip.should == "94043"
141
+ @parser.technical_contacts[0].state.should == "CA"
142
+ @parser.technical_contacts[0].country_code.should == "US"
143
+ @parser.technical_contacts[0].phone.should == "+1.6506234000"
144
+ @parser.technical_contacts[0].fax.should == "+1.6506188571"
145
+ @parser.technical_contacts[0].email.should == "dotme@markmonitor.com"
146
+ end
147
+ end
57
148
  describe "#nameservers" do
58
149
  it do
59
150
  @parser.nameservers.should be_a(Array)
@@ -0,0 +1,39 @@
1
+ # encoding: utf-8
2
+
3
+ # This file is autogenerated. Do not edit it manually.
4
+ # If you want change the content of this file, edit
5
+ #
6
+ # /spec/fixtures/responses/whois.nic.af/property_status_active.expected
7
+ #
8
+ # and regenerate the tests with the following rake task
9
+ #
10
+ # $ rake genspec:parsers
11
+ #
12
+
13
+ require 'spec_helper'
14
+ require 'whois/record/parser/whois.nic.af.rb'
15
+
16
+ describe Whois::Record::Parser::WhoisNicAf, "property_status_active.expected" do
17
+
18
+ before(:each) do
19
+ file = fixture("responses", "whois.nic.af/property_status_active.txt")
20
+ part = Whois::Record::Part.new(:body => File.read(file))
21
+ @parser = klass.new(part)
22
+ end
23
+
24
+ describe "#status" do
25
+ it do
26
+ @parser.status.should == :registered
27
+ end
28
+ end
29
+ describe "#available?" do
30
+ it do
31
+ @parser.available?.should == false
32
+ end
33
+ end
34
+ describe "#registered?" do
35
+ it do
36
+ @parser.registered?.should == true
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,39 @@
1
+ # encoding: utf-8
2
+
3
+ # This file is autogenerated. Do not edit it manually.
4
+ # If you want change the content of this file, edit
5
+ #
6
+ # /spec/fixtures/responses/whois.nic.af/property_status_delegated.expected
7
+ #
8
+ # and regenerate the tests with the following rake task
9
+ #
10
+ # $ rake genspec:parsers
11
+ #
12
+
13
+ require 'spec_helper'
14
+ require 'whois/record/parser/whois.nic.af.rb'
15
+
16
+ describe Whois::Record::Parser::WhoisNicAf, "property_status_delegated.expected" do
17
+
18
+ before(:each) do
19
+ file = fixture("responses", "whois.nic.af/property_status_delegated.txt")
20
+ part = Whois::Record::Part.new(:body => File.read(file))
21
+ @parser = klass.new(part)
22
+ end
23
+
24
+ describe "#status" do
25
+ it do
26
+ @parser.status.should == :registered
27
+ end
28
+ end
29
+ describe "#available?" do
30
+ it do
31
+ @parser.available?.should == false
32
+ end
33
+ end
34
+ describe "#registered?" do
35
+ it do
36
+ @parser.registered?.should == true
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,39 @@
1
+ # encoding: utf-8
2
+
3
+ # This file is autogenerated. Do not edit it manually.
4
+ # If you want change the content of this file, edit
5
+ #
6
+ # /spec/fixtures/responses/whois.nic.af/property_status_not_registered.expected
7
+ #
8
+ # and regenerate the tests with the following rake task
9
+ #
10
+ # $ rake genspec:parsers
11
+ #
12
+
13
+ require 'spec_helper'
14
+ require 'whois/record/parser/whois.nic.af.rb'
15
+
16
+ describe Whois::Record::Parser::WhoisNicAf, "property_status_not_registered.expected" do
17
+
18
+ before(:each) do
19
+ file = fixture("responses", "whois.nic.af/property_status_not_registered.txt")
20
+ part = Whois::Record::Part.new(:body => File.read(file))
21
+ @parser = klass.new(part)
22
+ end
23
+
24
+ describe "#status" do
25
+ it do
26
+ @parser.status.should == :available
27
+ end
28
+ end
29
+ describe "#available?" do
30
+ it do
31
+ @parser.available?.should == true
32
+ end
33
+ end
34
+ describe "#registered?" do
35
+ it do
36
+ @parser.registered?.should == false
37
+ end
38
+ end
39
+ end
@@ -21,6 +21,31 @@ describe Whois::Record::Parser::WhoisNicAg, "status_available.expected" do
21
21
  @parser = klass.new(part)
22
22
  end
23
23
 
24
+ describe "#disclaimer" do
25
+ it do
26
+ @parser.disclaimer.should == nil
27
+ end
28
+ end
29
+ describe "#domain" do
30
+ it do
31
+ @parser.domain.should == nil
32
+ end
33
+ end
34
+ describe "#domain_id" do
35
+ it do
36
+ @parser.domain_id.should == nil
37
+ end
38
+ end
39
+ describe "#referral_whois" do
40
+ it do
41
+ lambda { @parser.referral_whois }.should raise_error(Whois::PropertyNotSupported)
42
+ end
43
+ end
44
+ describe "#referral_url" do
45
+ it do
46
+ lambda { @parser.referral_url }.should raise_error(Whois::PropertyNotSupported)
47
+ end
48
+ end
24
49
  describe "#status" do
25
50
  it do
26
51
  @parser.status.should == []
@@ -51,6 +76,29 @@ describe Whois::Record::Parser::WhoisNicAg, "status_available.expected" do
51
76
  @parser.expires_on.should == nil
52
77
  end
53
78
  end
79
+ describe "#registrar" do
80
+ it do
81
+ @parser.registrar.should == nil
82
+ end
83
+ end
84
+ describe "#registrant_contacts" do
85
+ it do
86
+ @parser.registrant_contacts.should be_a(Array)
87
+ @parser.registrant_contacts.should == []
88
+ end
89
+ end
90
+ describe "#admin_contacts" do
91
+ it do
92
+ @parser.admin_contacts.should be_a(Array)
93
+ @parser.admin_contacts.should == []
94
+ end
95
+ end
96
+ describe "#technical_contacts" do
97
+ it do
98
+ @parser.technical_contacts.should be_a(Array)
99
+ @parser.technical_contacts.should == []
100
+ end
101
+ end
54
102
  describe "#nameservers" do
55
103
  it do
56
104
  @parser.nameservers.should be_a(Array)
@@ -21,6 +21,31 @@ describe Whois::Record::Parser::WhoisNicAg, "status_registered.expected" do
21
21
  @parser = klass.new(part)
22
22
  end
23
23
 
24
+ describe "#disclaimer" do
25
+ it do
26
+ @parser.disclaimer.should == "Access to CCTLD WHOIS information is provided to assist persons in determining the contents of a domain name registration record in the Afilias registry database. The data in this record is provided by Afilias Limited for informational purposes only, and Afilias does not guarantee its accuracy. This service is intended only for query-based access. You agree that you will use this data only for lawful purposes and that, under no circumstances will you use this data to: (a) allow, enable, or otherwise support the transmission by e-mail, telephone, or facsimile of mass unsolicited, commercial advertising or solicitations to entities other than the data recipient's own existing customers; or (b) enable high volume, automated, electronic processes that send queries or data to the systems of Registry Operator, a Registrar, or Afilias except as reasonably necessary to register domain names or modify existing registrations. All rights reserved. Afilias reserves the right to modify these terms at any time. By submitting this query, you agree to abide by this policy."
27
+ end
28
+ end
29
+ describe "#domain" do
30
+ it do
31
+ @parser.domain.should == "google.ag"
32
+ end
33
+ end
34
+ describe "#domain_id" do
35
+ it do
36
+ @parser.domain_id.should == "D48552-LRCC"
37
+ end
38
+ end
39
+ describe "#referral_whois" do
40
+ it do
41
+ lambda { @parser.referral_whois }.should raise_error(Whois::PropertyNotSupported)
42
+ end
43
+ end
44
+ describe "#referral_url" do
45
+ it do
46
+ lambda { @parser.referral_url }.should raise_error(Whois::PropertyNotSupported)
47
+ end
48
+ end
24
49
  describe "#status" do
25
50
  it do
26
51
  @parser.status.should == ["CLIENT DELETE PROHIBITED", "CLIENT TRANSFER PROHIBITED", "CLIENT UPDATE PROHIBITED"]
@@ -54,6 +79,71 @@ describe Whois::Record::Parser::WhoisNicAg, "status_registered.expected" do
54
79
  @parser.expires_on.should == Time.parse("2011-01-05 14:06:59 UTC")
55
80
  end
56
81
  end
82
+ describe "#registrar" do
83
+ it do
84
+ @parser.registrar.should be_a(_registrar)
85
+ @parser.registrar.id.should == "R22-LRCC"
86
+ @parser.registrar.name.should == "MarkMonitor, Inc."
87
+ @parser.registrar.organization.should == "MarkMonitor, Inc."
88
+ end
89
+ end
90
+ describe "#registrant_contacts" do
91
+ it do
92
+ @parser.registrant_contacts.should be_a(Array)
93
+ @parser.registrant_contacts.should have(1).items
94
+ @parser.registrant_contacts[0].should be_a(_contact)
95
+ @parser.registrant_contacts[0].type.should == Whois::Record::Contact::TYPE_REGISTRANT
96
+ @parser.registrant_contacts[0].id.should == "AGRS-129819"
97
+ @parser.registrant_contacts[0].name.should == "DNS Admin"
98
+ @parser.registrant_contacts[0].organization.should == "Google Inc."
99
+ @parser.registrant_contacts[0].address.should == "1600 Amphitheatre Parkway"
100
+ @parser.registrant_contacts[0].city.should == "Mountain View"
101
+ @parser.registrant_contacts[0].zip.should == "94043"
102
+ @parser.registrant_contacts[0].state.should == "CA"
103
+ @parser.registrant_contacts[0].country_code.should == "US"
104
+ @parser.registrant_contacts[0].phone.should == "+1.6502530000"
105
+ @parser.registrant_contacts[0].fax.should == "+1.6506188571"
106
+ @parser.registrant_contacts[0].email.should == "dns-admin@google.com"
107
+ end
108
+ end
109
+ describe "#admin_contacts" do
110
+ it do
111
+ @parser.admin_contacts.should be_a(Array)
112
+ @parser.admin_contacts.should have(1).items
113
+ @parser.admin_contacts[0].should be_a(_contact)
114
+ @parser.admin_contacts[0].type.should == Whois::Record::Contact::TYPE_ADMIN
115
+ @parser.admin_contacts[0].id.should == "AGRS-129819"
116
+ @parser.admin_contacts[0].name.should == "DNS Admin"
117
+ @parser.admin_contacts[0].organization.should == "Google Inc."
118
+ @parser.admin_contacts[0].address.should == "1600 Amphitheatre Parkway"
119
+ @parser.admin_contacts[0].city.should == "Mountain View"
120
+ @parser.admin_contacts[0].zip.should == "94043"
121
+ @parser.admin_contacts[0].state.should == "CA"
122
+ @parser.admin_contacts[0].country_code.should == "US"
123
+ @parser.admin_contacts[0].phone.should == "+1.6502530000"
124
+ @parser.admin_contacts[0].fax.should == "+1.6506188571"
125
+ @parser.admin_contacts[0].email.should == "dns-admin@google.com"
126
+ end
127
+ end
128
+ describe "#technical_contacts" do
129
+ it do
130
+ @parser.technical_contacts.should be_a(Array)
131
+ @parser.technical_contacts.should have(1).items
132
+ @parser.technical_contacts[0].should be_a(_contact)
133
+ @parser.technical_contacts[0].type.should == Whois::Record::Contact::TYPE_TECHNICAL
134
+ @parser.technical_contacts[0].id.should == "AGRS-129819"
135
+ @parser.technical_contacts[0].name.should == "DNS Admin"
136
+ @parser.technical_contacts[0].organization.should == "Google Inc."
137
+ @parser.technical_contacts[0].address.should == "1600 Amphitheatre Parkway"
138
+ @parser.technical_contacts[0].city.should == "Mountain View"
139
+ @parser.technical_contacts[0].zip.should == "94043"
140
+ @parser.technical_contacts[0].state.should == "CA"
141
+ @parser.technical_contacts[0].country_code.should == "US"
142
+ @parser.technical_contacts[0].phone.should == "+1.6502530000"
143
+ @parser.technical_contacts[0].fax.should == "+1.6506188571"
144
+ @parser.technical_contacts[0].email.should == "dns-admin@google.com"
145
+ end
146
+ end
57
147
  describe "#nameservers" do
58
148
  it do
59
149
  @parser.nameservers.should be_a(Array)