ln-xmpp4r 0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. data/CHANGELOG +91 -0
  2. data/COPYING +340 -0
  3. data/LICENSE +59 -0
  4. data/README.rdoc +113 -0
  5. data/README_ruby19.txt +43 -0
  6. data/Rakefile +252 -0
  7. data/data/doc/xmpp4r/examples/advanced/adventure/README +56 -0
  8. data/data/doc/xmpp4r/examples/advanced/adventure/adventure.rb +23 -0
  9. data/data/doc/xmpp4r/examples/advanced/adventure/adventuremuc.rb +136 -0
  10. data/data/doc/xmpp4r/examples/advanced/adventure/cube.xml +15 -0
  11. data/data/doc/xmpp4r/examples/advanced/adventure/tower.xml +69 -0
  12. data/data/doc/xmpp4r/examples/advanced/adventure/world.rb +424 -0
  13. data/data/doc/xmpp4r/examples/advanced/fileserve.conf +11 -0
  14. data/data/doc/xmpp4r/examples/advanced/fileserve.rb +346 -0
  15. data/data/doc/xmpp4r/examples/advanced/getonline.rb +56 -0
  16. data/data/doc/xmpp4r/examples/advanced/gtkmucclient.rb +315 -0
  17. data/data/doc/xmpp4r/examples/advanced/migrate.rb +88 -0
  18. data/data/doc/xmpp4r/examples/advanced/minimuc.rb +266 -0
  19. data/data/doc/xmpp4r/examples/advanced/pep-aggregator/index.xsl +235 -0
  20. data/data/doc/xmpp4r/examples/advanced/pep-aggregator/pep-aggregator.rb +147 -0
  21. data/data/doc/xmpp4r/examples/advanced/recvfile.rb +84 -0
  22. data/data/doc/xmpp4r/examples/advanced/rosterdiscovery.rb +129 -0
  23. data/data/doc/xmpp4r/examples/advanced/sendfile.conf +10 -0
  24. data/data/doc/xmpp4r/examples/advanced/sendfile.rb +72 -0
  25. data/data/doc/xmpp4r/examples/advanced/shellmgr/shellmgr.rb +51 -0
  26. data/data/doc/xmpp4r/examples/advanced/shellmgr/shellmgr_jabber.rb +43 -0
  27. data/data/doc/xmpp4r/examples/advanced/shellmgr/shellmgr_test.rb +10 -0
  28. data/data/doc/xmpp4r/examples/advanced/versionpoll.rb +109 -0
  29. data/data/doc/xmpp4r/examples/advanced/xmpping.rb +146 -0
  30. data/data/doc/xmpp4r/examples/advanced/xmppingrc.sample +14 -0
  31. data/data/doc/xmpp4r/examples/basic/change_password.rb +41 -0
  32. data/data/doc/xmpp4r/examples/basic/client.rb +70 -0
  33. data/data/doc/xmpp4r/examples/basic/component.rb +11 -0
  34. data/data/doc/xmpp4r/examples/basic/echo.rb +37 -0
  35. data/data/doc/xmpp4r/examples/basic/jabbersend.rb +41 -0
  36. data/data/doc/xmpp4r/examples/basic/mass_sender.rb +68 -0
  37. data/data/doc/xmpp4r/examples/basic/muc_owner_config.rb +12 -0
  38. data/data/doc/xmpp4r/examples/basic/mucinfo.rb +41 -0
  39. data/data/doc/xmpp4r/examples/basic/mucsimplebot.rb +82 -0
  40. data/data/doc/xmpp4r/examples/basic/register.rb +42 -0
  41. data/data/doc/xmpp4r/examples/basic/remove_registration.rb +18 -0
  42. data/data/doc/xmpp4r/examples/basic/roster.rb +44 -0
  43. data/data/doc/xmpp4r/examples/basic/rosterprint.rb +50 -0
  44. data/data/doc/xmpp4r/examples/basic/rosterrename.rb +34 -0
  45. data/data/doc/xmpp4r/examples/basic/rosterwatch.rb +171 -0
  46. data/data/doc/xmpp4r/examples/basic/send_vcard.rb +67 -0
  47. data/data/doc/xmpp4r/examples/basic/tune_client.rb +56 -0
  48. data/data/doc/xmpp4r/examples/basic/tune_server.rb +58 -0
  49. data/data/doc/xmpp4r/examples/basic/versionbot.rb +75 -0
  50. data/lib/xmpp4r.rb +116 -0
  51. data/lib/xmpp4r/base64.rb +32 -0
  52. data/lib/xmpp4r/bytestreams.rb +15 -0
  53. data/lib/xmpp4r/bytestreams/helper/filetransfer.rb +319 -0
  54. data/lib/xmpp4r/bytestreams/helper/ibb/base.rb +257 -0
  55. data/lib/xmpp4r/bytestreams/helper/ibb/initiator.rb +31 -0
  56. data/lib/xmpp4r/bytestreams/helper/ibb/target.rb +54 -0
  57. data/lib/xmpp4r/bytestreams/helper/socks5bytestreams/base.rb +152 -0
  58. data/lib/xmpp4r/bytestreams/helper/socks5bytestreams/initiator.rb +86 -0
  59. data/lib/xmpp4r/bytestreams/helper/socks5bytestreams/server.rb +198 -0
  60. data/lib/xmpp4r/bytestreams/helper/socks5bytestreams/socks5.rb +65 -0
  61. data/lib/xmpp4r/bytestreams/helper/socks5bytestreams/target.rb +79 -0
  62. data/lib/xmpp4r/bytestreams/iq/bytestreams.rb +170 -0
  63. data/lib/xmpp4r/bytestreams/iq/si.rb +206 -0
  64. data/lib/xmpp4r/callbacks.rb +133 -0
  65. data/lib/xmpp4r/caps.rb +1 -0
  66. data/lib/xmpp4r/caps/c.rb +67 -0
  67. data/lib/xmpp4r/caps/helper/generator.rb +160 -0
  68. data/lib/xmpp4r/caps/helper/helper.rb +84 -0
  69. data/lib/xmpp4r/client.rb +344 -0
  70. data/lib/xmpp4r/command/helper/responder.rb +53 -0
  71. data/lib/xmpp4r/command/iq/command.rb +154 -0
  72. data/lib/xmpp4r/component.rb +103 -0
  73. data/lib/xmpp4r/connection.rb +223 -0
  74. data/lib/xmpp4r/dataforms.rb +5 -0
  75. data/lib/xmpp4r/dataforms/x/data.rb +297 -0
  76. data/lib/xmpp4r/debuglog.rb +63 -0
  77. data/lib/xmpp4r/delay.rb +5 -0
  78. data/lib/xmpp4r/delay/x/delay.rb +99 -0
  79. data/lib/xmpp4r/discovery.rb +8 -0
  80. data/lib/xmpp4r/discovery/helper/helper.rb +58 -0
  81. data/lib/xmpp4r/discovery/helper/responder.rb +165 -0
  82. data/lib/xmpp4r/discovery/iq/discoinfo.rb +211 -0
  83. data/lib/xmpp4r/discovery/iq/discoitems.rb +147 -0
  84. data/lib/xmpp4r/errors.rb +284 -0
  85. data/lib/xmpp4r/feature_negotiation.rb +5 -0
  86. data/lib/xmpp4r/feature_negotiation/iq/feature.rb +28 -0
  87. data/lib/xmpp4r/framework/base.rb +55 -0
  88. data/lib/xmpp4r/framework/bot.rb +148 -0
  89. data/lib/xmpp4r/httpbinding.rb +5 -0
  90. data/lib/xmpp4r/httpbinding/client.rb +275 -0
  91. data/lib/xmpp4r/idgenerator.rb +37 -0
  92. data/lib/xmpp4r/iq.rb +221 -0
  93. data/lib/xmpp4r/jid.rb +167 -0
  94. data/lib/xmpp4r/last.rb +2 -0
  95. data/lib/xmpp4r/last/helper/helper.rb +37 -0
  96. data/lib/xmpp4r/last/iq/last.rb +67 -0
  97. data/lib/xmpp4r/location.rb +2 -0
  98. data/lib/xmpp4r/location/helper/helper.rb +56 -0
  99. data/lib/xmpp4r/location/location.rb +179 -0
  100. data/lib/xmpp4r/message.rb +180 -0
  101. data/lib/xmpp4r/muc.rb +14 -0
  102. data/lib/xmpp4r/muc/helper/mucbrowser.rb +92 -0
  103. data/lib/xmpp4r/muc/helper/mucclient.rb +462 -0
  104. data/lib/xmpp4r/muc/helper/simplemucclient.rb +332 -0
  105. data/lib/xmpp4r/muc/iq/mucadmin.rb +23 -0
  106. data/lib/xmpp4r/muc/iq/mucadminitem.rb +20 -0
  107. data/lib/xmpp4r/muc/iq/mucowner.rb +15 -0
  108. data/lib/xmpp4r/muc/item.rb +143 -0
  109. data/lib/xmpp4r/muc/x/muc.rb +70 -0
  110. data/lib/xmpp4r/muc/x/mucuserinvite.rb +60 -0
  111. data/lib/xmpp4r/muc/x/mucuseritem.rb +36 -0
  112. data/lib/xmpp4r/presence.rb +232 -0
  113. data/lib/xmpp4r/pubsub.rb +8 -0
  114. data/lib/xmpp4r/pubsub/children/configuration.rb +86 -0
  115. data/lib/xmpp4r/pubsub/children/event.rb +49 -0
  116. data/lib/xmpp4r/pubsub/children/item.rb +35 -0
  117. data/lib/xmpp4r/pubsub/children/items.rb +53 -0
  118. data/lib/xmpp4r/pubsub/children/node_config.rb +48 -0
  119. data/lib/xmpp4r/pubsub/children/publish.rb +38 -0
  120. data/lib/xmpp4r/pubsub/children/retract.rb +41 -0
  121. data/lib/xmpp4r/pubsub/children/subscription.rb +62 -0
  122. data/lib/xmpp4r/pubsub/children/subscription_config.rb +67 -0
  123. data/lib/xmpp4r/pubsub/children/unsubscribe.rb +48 -0
  124. data/lib/xmpp4r/pubsub/helper/nodebrowser.rb +129 -0
  125. data/lib/xmpp4r/pubsub/helper/nodehelper.rb +156 -0
  126. data/lib/xmpp4r/pubsub/helper/oauth_service_helper.rb +90 -0
  127. data/lib/xmpp4r/pubsub/helper/servicehelper.rb +456 -0
  128. data/lib/xmpp4r/pubsub/iq/pubsub.rb +19 -0
  129. data/lib/xmpp4r/query.rb +15 -0
  130. data/lib/xmpp4r/reliable.rb +168 -0
  131. data/lib/xmpp4r/rexmladdons.rb +157 -0
  132. data/lib/xmpp4r/roster.rb +7 -0
  133. data/lib/xmpp4r/roster/helper/roster.rb +522 -0
  134. data/lib/xmpp4r/roster/iq/roster.rb +215 -0
  135. data/lib/xmpp4r/roster/x/roster.rb +138 -0
  136. data/lib/xmpp4r/rpc.rb +2 -0
  137. data/lib/xmpp4r/rpc/helper/client.rb +123 -0
  138. data/lib/xmpp4r/rpc/helper/server.rb +74 -0
  139. data/lib/xmpp4r/rpc/helper/xmlrpcaddons.rb +67 -0
  140. data/lib/xmpp4r/rpc/iq/rpc.rb +23 -0
  141. data/lib/xmpp4r/sasl.rb +248 -0
  142. data/lib/xmpp4r/semaphore.rb +38 -0
  143. data/lib/xmpp4r/stream.rb +599 -0
  144. data/lib/xmpp4r/streamparser.rb +85 -0
  145. data/lib/xmpp4r/test/listener_mocker.rb +118 -0
  146. data/lib/xmpp4r/tune.rb +2 -0
  147. data/lib/xmpp4r/tune/helper/helper.rb +58 -0
  148. data/lib/xmpp4r/tune/tune.rb +113 -0
  149. data/lib/xmpp4r/vcard.rb +6 -0
  150. data/lib/xmpp4r/vcard/helper/vcard.rb +84 -0
  151. data/lib/xmpp4r/vcard/iq/vcard.rb +109 -0
  152. data/lib/xmpp4r/version.rb +7 -0
  153. data/lib/xmpp4r/version/helper/responder.rb +72 -0
  154. data/lib/xmpp4r/version/helper/simpleresponder.rb +44 -0
  155. data/lib/xmpp4r/version/iq/version.rb +105 -0
  156. data/lib/xmpp4r/x.rb +37 -0
  157. data/lib/xmpp4r/xhtml.rb +1 -0
  158. data/lib/xmpp4r/xhtml/html.rb +115 -0
  159. data/lib/xmpp4r/xmpp4r.rb +20 -0
  160. data/lib/xmpp4r/xmppelement.rb +168 -0
  161. data/lib/xmpp4r/xmppstanza.rb +162 -0
  162. data/setup.rb +1586 -0
  163. data/test/bytestreams/tc_ibb.rb +188 -0
  164. data/test/bytestreams/tc_socks5bytestreams.rb +114 -0
  165. data/test/caps/tc_helper.rb +158 -0
  166. data/test/dataforms/tc_data.rb +81 -0
  167. data/test/delay/tc_xdelay.rb +51 -0
  168. data/test/discovery/tc_responder.rb +91 -0
  169. data/test/last/tc_helper.rb +75 -0
  170. data/test/lib/assert_equal_xml.rb +14 -0
  171. data/test/lib/clienttester.rb +149 -0
  172. data/test/muc/tc_muc_mucclient.rb +834 -0
  173. data/test/muc/tc_muc_simplemucclient.rb +114 -0
  174. data/test/muc/tc_mucowner.rb +50 -0
  175. data/test/pubsub/tc_helper.rb +785 -0
  176. data/test/pubsub/tc_nodeconfig.rb +61 -0
  177. data/test/pubsub/tc_subscriptionconfig.rb +41 -0
  178. data/test/reliable/tc_disconnect_cleanup.rb +334 -0
  179. data/test/reliable/tc_disconnect_exception.rb +37 -0
  180. data/test/reliable/tc_listener_mocked_test.rb +68 -0
  181. data/test/reliable/tc_reliable_connection.rb +31 -0
  182. data/test/roster/tc_helper.rb +524 -0
  183. data/test/roster/tc_iqqueryroster.rb +173 -0
  184. data/test/roster/tc_xroster.rb +73 -0
  185. data/test/rpc/tc_helper.rb +96 -0
  186. data/test/tc_callbacks.rb +129 -0
  187. data/test/tc_class_names.rb +146 -0
  188. data/test/tc_client.rb +30 -0
  189. data/test/tc_errors.rb +146 -0
  190. data/test/tc_idgenerator.rb +30 -0
  191. data/test/tc_iq.rb +113 -0
  192. data/test/tc_iqquery.rb +31 -0
  193. data/test/tc_jid.rb +204 -0
  194. data/test/tc_message.rb +131 -0
  195. data/test/tc_presence.rb +150 -0
  196. data/test/tc_rexml.rb +139 -0
  197. data/test/tc_stream.rb +167 -0
  198. data/test/tc_streamComponent.rb +95 -0
  199. data/test/tc_streamError.rb +129 -0
  200. data/test/tc_streamSend.rb +59 -0
  201. data/test/tc_streamparser.rb +125 -0
  202. data/test/tc_xmppstanza.rb +135 -0
  203. data/test/ts_xmpp4r.rb +44 -0
  204. data/test/tune/tc_helper_recv.rb +82 -0
  205. data/test/tune/tc_helper_send.rb +74 -0
  206. data/test/tune/tc_tune.rb +79 -0
  207. data/test/vcard/tc_helper.rb +49 -0
  208. data/test/vcard/tc_iqvcard.rb +62 -0
  209. data/test/version/tc_helper.rb +60 -0
  210. data/test/version/tc_iqqueryversion.rb +97 -0
  211. data/test/xhtml/tc_html.rb +41 -0
  212. data/tools/gen_requires.bash +31 -0
  213. data/tools/xmpp4r-gemspec-test.rb +11 -0
  214. data/xmpp4r.gemspec +238 -0
  215. metadata +280 -0
@@ -0,0 +1,146 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $:.unshift '../lib'
4
+
5
+ require 'test/unit'
6
+ require 'xmpp4r'
7
+ # No include Jabber, test full namespace
8
+
9
+ class JIDTest < Test::Unit::TestCase
10
+ def test_base
11
+ assert_kind_of(Module, Jabber)
12
+ assert_kind_of(Class, Jabber::JabberError)
13
+ assert_kind_of(Class, Jabber::ErrorResponse)
14
+ assert_kind_of(Class, Jabber::ClientAuthenticationFailure)
15
+ assert_kind_of(Class, Jabber::ComponentAuthenticationFailure)
16
+ assert_kind_of(Class, Jabber::Client)
17
+ assert_kind_of(Class, Jabber::Component)
18
+ assert_kind_of(Class, Jabber::Connection)
19
+ assert_kind_of(Class, Jabber::ErrorResponse)
20
+ assert_kind_of(Class, Jabber::ServerError)
21
+ assert_kind_of(Class, Jabber::IdGenerator)
22
+ assert_kind_of(Class, Jabber::Iq)
23
+ assert_kind_of(Class, Jabber::IqQuery)
24
+ assert_kind_of(Class, Jabber::JID)
25
+ assert_kind_of(Class, Jabber::Message)
26
+ assert_kind_of(Class, Jabber::Presence)
27
+ assert_kind_of(Module, Jabber::SASL)
28
+ assert_respond_to(Jabber::SASL, :new)
29
+ assert_kind_of(Class, Jabber::SASL::Base)
30
+ assert_kind_of(Class, Jabber::SASL::Plain)
31
+ assert_kind_of(Class, Jabber::SASL::DigestMD5)
32
+ assert_kind_of(Class, Jabber::Stream)
33
+ assert_kind_of(Class, Jabber::StreamParser)
34
+ assert_kind_of(Class, Jabber::X)
35
+ assert_kind_of(Class, Jabber::XMPPElement)
36
+ assert_kind_of(Class, Jabber::XMPPStanza)
37
+ end
38
+
39
+ def test_roster
40
+ require 'xmpp4r/roster'
41
+ assert_kind_of(Module, Jabber::Roster)
42
+ assert_kind_of(Class, Jabber::Roster::Helper)
43
+ assert_kind_of(Class, Jabber::Roster::Helper::RosterItem)
44
+ assert_kind_of(Class, Jabber::Roster::RosterItem)
45
+ assert_kind_of(Class, Jabber::Roster::IqQueryRoster)
46
+ assert_kind_of(Class, Jabber::Roster::XRoster)
47
+ assert_kind_of(Class, Jabber::Roster::XRosterItem)
48
+ end
49
+
50
+ def test_muc
51
+ require 'xmpp4r/muc'
52
+ assert_kind_of(Module, Jabber::MUC)
53
+ assert_kind_of(Class, Jabber::MUC::MUCBrowser)
54
+ assert_kind_of(Class, Jabber::MUC::MUCClient)
55
+ assert_kind_of(Class, Jabber::MUC::SimpleMUCClient)
56
+ assert_kind_of(Class, Jabber::MUC::XMUC)
57
+ assert_kind_of(Class, Jabber::MUC::XMUCUser)
58
+ assert_kind_of(Class, Jabber::MUC::XMUCUserInvite)
59
+ end
60
+
61
+ def test_bytestreams
62
+ require 'xmpp4r/bytestreams'
63
+ assert_kind_of(Class, Jabber::SOCKS5Error)
64
+ assert_kind_of(Module, Jabber::FileTransfer)
65
+ assert_kind_of(Module, Jabber::FileTransfer::TransferSource)
66
+ assert_kind_of(Class, Jabber::FileTransfer::FileSource)
67
+ assert_kind_of(Class, Jabber::FileTransfer::Helper)
68
+ assert_kind_of(Class, Jabber::Bytestreams::SOCKS5BytestreamsServer)
69
+ assert_kind_of(Class, Jabber::Bytestreams::SOCKS5BytestreamsServerStreamHost)
70
+ assert_kind_of(Class, Jabber::Bytestreams::SOCKS5BytestreamsPeer)
71
+ assert_kind_of(Class, Jabber::Bytestreams::IqQueryBytestreams)
72
+ assert_kind_of(Class, Jabber::Bytestreams::StreamHost)
73
+ assert_kind_of(Class, Jabber::Bytestreams::StreamHostUsed)
74
+ assert_kind_of(Class, Jabber::Bytestreams::IqSi)
75
+ assert_kind_of(Class, Jabber::Bytestreams::IqSiFile)
76
+ assert_kind_of(Class, Jabber::Bytestreams::IqSiFileRange)
77
+ assert_kind_of(Class, Jabber::Bytestreams::IBB)
78
+ assert_kind_of(Class, Jabber::Bytestreams::IBBQueueItem)
79
+ assert_kind_of(Class, Jabber::Bytestreams::IBBInitiator)
80
+ assert_kind_of(Class, Jabber::Bytestreams::IBBTarget)
81
+ assert_kind_of(Class, Jabber::Bytestreams::SOCKS5Bytestreams)
82
+ assert_kind_of(Class, Jabber::Bytestreams::SOCKS5BytestreamsInitiator)
83
+ assert_kind_of(Class, Jabber::Bytestreams::SOCKS5BytestreamsTarget)
84
+ assert_kind_of(Class, Jabber::Bytestreams::SOCKS5Socket)
85
+ end
86
+
87
+ def test_dataforms
88
+ require 'xmpp4r/dataforms'
89
+ assert_kind_of(Module, Jabber::Dataforms)
90
+ assert_kind_of(Class, Jabber::Dataforms::XData)
91
+ assert_kind_of(Class, Jabber::Dataforms::XDataTitle)
92
+ assert_kind_of(Class, Jabber::Dataforms::XDataInstructions)
93
+ assert_kind_of(Class, Jabber::Dataforms::XDataField)
94
+ assert_kind_of(Class, Jabber::Dataforms::XDataReported)
95
+ end
96
+
97
+ def test_delay
98
+ require 'xmpp4r/delay'
99
+ assert_kind_of(Module, Jabber::Delay)
100
+ assert_kind_of(Class, Jabber::Delay::XDelay)
101
+ end
102
+
103
+ def test_discovery
104
+ require 'xmpp4r/discovery'
105
+ assert_kind_of(Module, Jabber::Discovery)
106
+ assert_kind_of(Class, Jabber::Discovery::IqQueryDiscoInfo)
107
+ assert_kind_of(Class, Jabber::Discovery::Identity)
108
+ assert_kind_of(Class, Jabber::Discovery::Feature)
109
+ assert_kind_of(Class, Jabber::Discovery::IqQueryDiscoItems)
110
+ assert_kind_of(Class, Jabber::Discovery::Item)
111
+ end
112
+
113
+ def test_feature_negotiation
114
+ require 'xmpp4r/feature_negotiation'
115
+ assert_kind_of(Module, Jabber::FeatureNegotiation)
116
+ assert_kind_of(Class, Jabber::FeatureNegotiation::IqFeature)
117
+ end
118
+
119
+ def test_vcard
120
+ require 'xmpp4r/vcard'
121
+ assert_kind_of(Module, Jabber::Vcard)
122
+ assert_kind_of(Class, Jabber::Vcard::Helper)
123
+ assert_kind_of(Class, Jabber::Vcard::IqVcard)
124
+ end
125
+
126
+ def test_version
127
+ require 'xmpp4r/version'
128
+ assert_kind_of(Module, Jabber::Version)
129
+ assert_kind_of(Class, Jabber::Version::Responder)
130
+ assert_kind_of(Class, Jabber::Version::SimpleResponder)
131
+ assert_kind_of(Class, Jabber::Version::IqQueryVersion)
132
+ end
133
+
134
+ def test_rpc
135
+ require 'xmpp4r/rpc'
136
+ assert_kind_of(Module, Jabber::RPC)
137
+ assert_kind_of(Class, Jabber::RPC::Server)
138
+ assert_kind_of(Class, Jabber::RPC::Client)
139
+ end
140
+
141
+ def test_pubsub
142
+ require 'xmpp4r/pubsub'
143
+ assert_kind_of(Module, Jabber::PubSub)
144
+ assert_kind_of(Class, Jabber::PubSub::ServiceHelper)
145
+ end
146
+ end
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $:.unshift '../lib'
4
+
5
+ require 'test/unit'
6
+ require 'xmpp4r/client'
7
+ include Jabber
8
+
9
+ class ClientTest < Test::Unit::TestCase
10
+ def test_client1
11
+ =begin
12
+ c = Client.new(JID.new('client1@localhost/res'))
13
+ assert_nothing_raised("Couldn't connect") {
14
+ c.connect
15
+ }
16
+ assert_nothing_raised("Couldn't authenticate") {
17
+ c.auth('pw')
18
+ }
19
+ =end
20
+ end
21
+
22
+ def test_jid_is_jid
23
+ c1 = Client.new(JID.new('user@host/resource'))
24
+ assert_kind_of(JID, c1.jid)
25
+ assert_equal('user@host/resource', c1.jid.to_s)
26
+ c2 = Client.new('user@host/resource')
27
+ assert_kind_of(JID, c2.jid)
28
+ assert_equal('user@host/resource', c2.jid.to_s)
29
+ end
30
+ end
@@ -0,0 +1,146 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $:.unshift '../lib'
4
+
5
+ require 'test/unit'
6
+ require 'xmpp4r'
7
+ require 'xmpp4r/rexmladdons'
8
+ require 'xmpp4r/message'
9
+ include Jabber
10
+
11
+ class ServerErrorTest < Test::Unit::TestCase
12
+
13
+ def test_create_with_empty_error
14
+ e = ErrorResponse.new()
15
+ ee = ServerError.new(e)
16
+ assert_equal(nil, e.error)
17
+ end
18
+
19
+ def test_create_with_error_code
20
+ e = ErrorResponse.new('payment-required')
21
+ ee = ServerError.new(e)
22
+ assert_equal("payment-required: ", ee.to_s)
23
+ end
24
+
25
+ def test_create_invalid
26
+ assert_raise(Jabber::ArgumentError) {
27
+ e = ErrorResponse.new('invalid error')
28
+ ee = ServerError.new(e)
29
+ }
30
+ end
31
+
32
+ def test_to_s_with_error_code_but_no_text
33
+ e = ErrorResponse.new('payment-required')
34
+ ee = ServerError.new(e)
35
+ assert_equal("payment-required: ", ee.to_s)
36
+ assert_equal('payment-required', e.error)
37
+ assert_equal(402, ee.error.code)
38
+ assert_equal(:auth, ee.error.type)
39
+ assert_equal(nil, ee.error.text)
40
+ end
41
+
42
+ def test_to_s_with_error_code_and_text
43
+ e = ErrorResponse.new('payment-required', 'cuz you are a deadbeat.')
44
+ ee = ServerError.new(e)
45
+ assert_equal("payment-required: cuz you are a deadbeat.", ee.to_s)
46
+ assert_equal('payment-required', e.error)
47
+ assert_equal(402, ee.error.code)
48
+ assert_equal(:auth, ee.error.type)
49
+ assert_equal("cuz you are a deadbeat.", ee.error.text)
50
+ end
51
+
52
+ end
53
+
54
+ class ErrorTest < Test::Unit::TestCase
55
+ def test_create
56
+ e = ErrorResponse.new
57
+ assert_equal(nil, e.error)
58
+ assert_equal(nil, e.code)
59
+ assert_equal(nil, e.type)
60
+ assert_equal(nil, e.text)
61
+ end
62
+
63
+ def test_create2
64
+ e = ErrorResponse.new('payment-required')
65
+ assert_equal('payment-required', e.error)
66
+ assert_equal(402, e.code)
67
+ assert_equal(:auth, e.type)
68
+ assert_equal(nil, e.text)
69
+ end
70
+
71
+ def test_create3
72
+ e = ErrorResponse.new('gone', 'User moved to afterlife.gov')
73
+ assert_equal('gone', e.error)
74
+ assert_equal(302, e.code)
75
+ assert_equal(:modify, e.type)
76
+ assert_equal('User moved to afterlife.gov', e.text)
77
+ end
78
+
79
+ def test_create_invalid
80
+ assert_raise(Jabber::ArgumentError) {
81
+ e = ErrorResponse.new('invalid error')
82
+ }
83
+ end
84
+
85
+ def test_type
86
+ e = ErrorResponse.new
87
+ assert_nil(e.type)
88
+ e.type = :auth
89
+ assert_equal(:auth, e.type)
90
+ e.type = :cancel
91
+ assert_equal(:cancel, e.type)
92
+ e.type = :continue
93
+ assert_equal(:continue, e.type)
94
+ e.type = :modify
95
+ assert_equal(:modify, e.type)
96
+ e.type = :wait
97
+ assert_equal(:wait, e.type)
98
+ e.type = nil
99
+ assert_nil(e.type)
100
+ end
101
+
102
+ def test_code
103
+ e = ErrorResponse.new
104
+ assert_nil(e.code)
105
+ e.code = 404
106
+ assert_equal(404, e.code)
107
+ assert_equal("<error code='404'/>", e.to_s)
108
+ e.code = nil
109
+ assert_nil(e.code)
110
+ end
111
+
112
+ def test_error
113
+ e = ErrorResponse.new
114
+ assert_nil(e.error)
115
+ e.error = 'gone'
116
+ assert_equal('gone', e.error)
117
+ assert_raise(RuntimeError) {
118
+ e.error = nil
119
+ }
120
+ end
121
+
122
+ def test_stanzas
123
+ m = Message.new
124
+ assert_equal(nil, m.error)
125
+ m.typed_add(ErrorResponse.new)
126
+ assert_equal('<error/>', m.error.to_s)
127
+ end
128
+
129
+ def test_sample_normal
130
+ 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>'
131
+ e = ErrorResponse.new.import(REXML::Document.new(src).root)
132
+ assert_equal(:modify, e.type)
133
+ assert_equal(302, e.code)
134
+ assert_equal('gone', e.error)
135
+ assert_equal('...', e.text)
136
+ end
137
+
138
+ def test_sample_muc
139
+ src = '<error code="409">Please choose a different nickname.</error>'
140
+ e = ErrorResponse.new.import(REXML::Document.new(src).root)
141
+ assert_equal(nil, e.type)
142
+ assert_equal(409, e.code)
143
+ assert_equal(nil, e.error)
144
+ assert_equal('Please choose a different nickname.', e.text)
145
+ end
146
+ end
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $:.unshift '../lib'
4
+
5
+ require 'test/unit'
6
+ require 'xmpp4r/idgenerator'
7
+ include Jabber
8
+
9
+ class IdGeneratorTest < Test::Unit::TestCase
10
+ def test_instances
11
+ assert_equal(Jabber::IdGenerator.instance, Jabber::IdGenerator.instance)
12
+ end
13
+
14
+ def test_unique
15
+ ids = []
16
+ 100.times { ids.push(Jabber::IdGenerator.generate_id) }
17
+
18
+ ok = true
19
+ ids.each_index { |a|
20
+ ids.each_index { |b|
21
+ if a == b
22
+ ok = false if ids[a] != ids[b]
23
+ else
24
+ ok = false if ids[a] == ids[b]
25
+ end
26
+ }
27
+ }
28
+ assert(ok)
29
+ end
30
+ end
@@ -0,0 +1,113 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $:.unshift '../lib'
4
+
5
+ require 'test/unit'
6
+ require 'socket'
7
+ require 'xmpp4r/rexmladdons'
8
+ require 'xmpp4r/iq'
9
+ require 'xmpp4r/errors'
10
+ include Jabber
11
+
12
+ require File::dirname(__FILE__) + '/lib/assert_equal_xml'
13
+
14
+ class IqTest < Test::Unit::TestCase
15
+ def test_create
16
+ x = Iq.new()
17
+ assert_equal("iq", x.name)
18
+ assert_equal("jabber:client", x.namespace)
19
+ assert_equal_xml("<iq xmlns='jabber:client'/>", x)
20
+ end
21
+
22
+ def test_iqauth
23
+ x = Iq.new_authset(JID.new('node@domain/resource'), 'password')
24
+ assert_equal_xml("<iq type='set' xmlns='jabber:client'><query xmlns='jabber:iq:auth'><username>node</username><password>password</password><resource>resource</resource></query></iq>", x)
25
+ end
26
+
27
+ def test_iqauth_digest
28
+ x = Iq.new_authset_digest(JID.new('node@domain/resource'), '', 'password')
29
+ assert_equal_xml("<iq type='set' xmlns='jabber:client'><query xmlns='jabber:iq:auth'><username>node</username><digest>#{Digest::SHA1.hexdigest('password')}</digest><resource>resource</resource></query></iq>", x)
30
+ end
31
+
32
+ def test_register
33
+ x1 = Iq.new_register
34
+ assert_equal_xml("<iq type='set' xmlns='jabber:client'><query xmlns='jabber:iq:register'/></iq>", x1)
35
+ x2 = Iq.new_register('node')
36
+ assert_equal_xml("<iq type='set' xmlns='jabber:client'><query xmlns='jabber:iq:register'><username>node</username></query></iq>", x2)
37
+ x3 = Iq.new_register('node', 'password')
38
+ assert_equal_xml("<iq type='set' xmlns='jabber:client'><query xmlns='jabber:iq:register'><username>node</username><password>password</password></query></iq>", x3)
39
+ end
40
+
41
+ def test_rosterget
42
+ x = Iq.new_rosterget
43
+ assert_equal_xml("<iq type='get' xmlns='jabber:client'><query xmlns='jabber:iq:roster'/></iq>", x)
44
+ end
45
+
46
+ def test_rosterset
47
+ x = Iq.new_rosterset
48
+ assert_equal_xml("<iq type='set' xmlns='jabber:client'><query xmlns='jabber:iq:roster'/></iq>", x)
49
+ end
50
+
51
+ def test_browseget
52
+ x = Iq.new_browseget
53
+ assert_equal_xml("<iq type='get' xmlns='jabber:client'><query xmlns='jabber:iq:browse'/></iq>", x)
54
+ end
55
+
56
+ def test_types
57
+ iq = Iq.new
58
+ assert_equal(nil, iq.type)
59
+ iq.type = :get
60
+ assert_equal(:get, iq.type)
61
+ iq.type = :set
62
+ assert_equal(:set, iq.type)
63
+ iq.type = :result
64
+ assert_equal(:result, iq.type)
65
+ iq.type = :error
66
+ assert_equal(:error, iq.type)
67
+ iq.type = :invalid
68
+ assert_equal(nil, iq.type)
69
+ end
70
+
71
+ def test_query
72
+ x = Iq.new(:set)
73
+ assert_equal(nil, x.queryns)
74
+ query = REXML::Element.new('query')
75
+ x.add(query)
76
+ assert_equal('jabber:client', x.queryns)
77
+ query.add_namespace('jabber:iq:auth')
78
+ assert_equal(query.to_s, x.query.to_s)
79
+ assert_equal('jabber:iq:auth', x.queryns)
80
+
81
+ query2 = REXML::Element.new('query')
82
+ x.query = query2
83
+ assert_equal('jabber:client', x.queryns)
84
+ query2.add_namespace('jabber:iq:register')
85
+ assert_equal('jabber:iq:register', x.queryns)
86
+ end
87
+
88
+ def test_vcard
89
+ x = Iq.new
90
+ assert_equal(nil, x.vcard)
91
+ x.add(vcard = REXML::Element.new('vCard'))
92
+ assert_equal(vcard, x.vcard)
93
+ end
94
+
95
+ def test_error
96
+ x = Iq.new(:set)
97
+ e = REXML::Element.new('error')
98
+ x.add(e)
99
+ # test if, after an import, the error element is successfully changed
100
+ # into an ErrorResponse object.
101
+ x2 = Iq.new.import(x)
102
+ assert_equal(ErrorResponse, x2.first_element('error').class)
103
+ end
104
+
105
+ def test_new_query
106
+ x = Iq.new_query(:get, JID.new('a@b/c'))
107
+ assert_equal(:get, x.type)
108
+ assert_equal(nil, x.from)
109
+ assert_equal(JID.new('a@b/c'), x.to)
110
+ assert_kind_of(IqQuery, x.query)
111
+ assert_equal('jabber:client', x.queryns)
112
+ end
113
+ end