cerberus 0.6 → 0.7

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 (290) hide show
  1. data/Authors.txt +4 -0
  2. data/Changelog.txt +11 -0
  3. data/Copyright.txt +16 -0
  4. data/Rakefile +16 -25
  5. data/Readme.markdown +1 -3
  6. data/bin/cerberus +5 -0
  7. data/lib/cerberus/builder/bjam.rb +1 -3
  8. data/lib/cerberus/builder/maven2.rb +0 -1
  9. data/lib/cerberus/builder/rake.rb +1 -1
  10. data/lib/cerberus/builder/rspec.rb +0 -1
  11. data/lib/cerberus/builder/ruby_base.rb +0 -1
  12. data/lib/cerberus/component_lazy_loader.rb +6 -2
  13. data/lib/cerberus/config.example.yml +1 -0
  14. data/lib/cerberus/constants.rb +2 -2
  15. data/lib/cerberus/manager.rb +7 -1
  16. data/lib/cerberus/publisher/mail.rb +4 -4
  17. data/lib/cerberus/publisher/twitter.rb +0 -1
  18. data/lib/cerberus/scm/base.rb +19 -0
  19. data/lib/cerberus/scm/bzr.rb +62 -0
  20. data/lib/cerberus/scm/cvs.rb +2 -7
  21. data/lib/cerberus/scm/darcs.rb +2 -11
  22. data/lib/cerberus/scm/git.rb +6 -14
  23. data/lib/cerberus/scm/perforce.rb +4 -4
  24. data/lib/cerberus/scm/svn.rb +2 -7
  25. data/lib/cerberus/utils.rb +5 -0
  26. data/lib/vendor/irc/README +23 -0
  27. data/lib/vendor/irc/lib/IRC.rb +164 -0
  28. data/lib/vendor/irc/lib/IRCChannel.rb +33 -0
  29. data/lib/vendor/irc/lib/IRCConnection.rb +134 -0
  30. data/lib/vendor/irc/lib/IRCEvent.rb +91 -0
  31. data/lib/vendor/irc/lib/IRCUser.rb +23 -0
  32. data/lib/vendor/irc/lib/IRCUtil.rb +49 -0
  33. data/lib/vendor/irc/lib/eventmap.yml +247 -0
  34. data/lib/vendor/twitter/CHANGES +129 -0
  35. data/lib/vendor/twitter/MIT-LICENSE +20 -0
  36. data/lib/vendor/twitter/README +37 -0
  37. data/lib/vendor/twitter/TODO +7 -0
  38. data/lib/vendor/twitter/lib/twitter.rb +34 -0
  39. data/lib/vendor/twitter/lib/twitter/client.rb +24 -0
  40. data/lib/vendor/twitter/lib/twitter/client/account.rb +24 -0
  41. data/lib/vendor/twitter/lib/twitter/client/auth.rb +27 -0
  42. data/lib/vendor/twitter/lib/twitter/client/base.rb +93 -0
  43. data/lib/vendor/twitter/lib/twitter/client/blocks.rb +35 -0
  44. data/lib/vendor/twitter/lib/twitter/client/favorites.rb +53 -0
  45. data/lib/vendor/twitter/lib/twitter/client/friendship.rb +35 -0
  46. data/lib/vendor/twitter/lib/twitter/client/graph.rb +37 -0
  47. data/lib/vendor/twitter/lib/twitter/client/messaging.rb +79 -0
  48. data/lib/vendor/twitter/lib/twitter/client/profile.rb +29 -0
  49. data/lib/vendor/twitter/lib/twitter/client/search.rb +27 -0
  50. data/lib/vendor/twitter/lib/twitter/client/status.rb +51 -0
  51. data/lib/vendor/twitter/lib/twitter/client/timeline.rb +72 -0
  52. data/lib/vendor/twitter/lib/twitter/client/user.rb +65 -0
  53. data/lib/vendor/twitter/lib/twitter/config.rb +77 -0
  54. data/lib/vendor/twitter/lib/twitter/console.rb +31 -0
  55. data/lib/vendor/twitter/lib/twitter/core.rb +137 -0
  56. data/lib/vendor/twitter/lib/twitter/ext.rb +2 -0
  57. data/lib/vendor/twitter/lib/twitter/ext/stdlib.rb +52 -0
  58. data/lib/vendor/twitter/lib/twitter/extras.rb +39 -0
  59. data/lib/vendor/twitter/lib/twitter/meta.rb +56 -0
  60. data/lib/vendor/twitter/lib/twitter/model.rb +360 -0
  61. data/lib/vendor/twitter/lib/twitter/version.rb +19 -0
  62. data/lib/vendor/twitter/spec/twitter/client/account_spec.rb +28 -0
  63. data/lib/vendor/twitter/spec/twitter/client/auth_spec.rb +34 -0
  64. data/lib/vendor/twitter/spec/twitter/client/base_spec.rb +242 -0
  65. data/lib/vendor/twitter/spec/twitter/client/blocks_spec.rb +76 -0
  66. data/lib/vendor/twitter/spec/twitter/client/favorites_spec.rb +183 -0
  67. data/lib/vendor/twitter/spec/twitter/client/friendship_spec.rb +76 -0
  68. data/lib/vendor/twitter/spec/twitter/client/graph_spec.rb +67 -0
  69. data/lib/vendor/twitter/spec/twitter/client/messaging_spec.rb +135 -0
  70. data/lib/vendor/twitter/spec/twitter/client/profile_spec.rb +91 -0
  71. data/lib/vendor/twitter/spec/twitter/client/search_spec.rb +68 -0
  72. data/lib/vendor/twitter/spec/twitter/client/status_spec.rb +119 -0
  73. data/lib/vendor/twitter/spec/twitter/client/timeline_spec.rb +79 -0
  74. data/lib/vendor/twitter/spec/twitter/client/user_spec.rb +203 -0
  75. data/lib/vendor/twitter/spec/twitter/client_spec.rb +2 -0
  76. data/lib/vendor/twitter/spec/twitter/config_spec.rb +86 -0
  77. data/lib/vendor/twitter/spec/twitter/console_spec.rb +15 -0
  78. data/lib/vendor/twitter/spec/twitter/core_spec.rb +127 -0
  79. data/lib/vendor/twitter/spec/twitter/ext/stdlib_spec.rb +59 -0
  80. data/lib/vendor/twitter/spec/twitter/extras_spec.rb +46 -0
  81. data/lib/vendor/twitter/spec/twitter/meta_spec.rb +90 -0
  82. data/lib/vendor/twitter/spec/twitter/model_spec.rb +508 -0
  83. data/lib/vendor/twitter/spec/twitter/version_spec.rb +19 -0
  84. data/lib/vendor/xmpp4r/CHANGELOG +83 -0
  85. data/lib/vendor/xmpp4r/COPYING +340 -0
  86. data/lib/vendor/xmpp4r/LICENSE +59 -0
  87. data/lib/vendor/xmpp4r/README.rdoc +110 -0
  88. data/lib/vendor/xmpp4r/README_ruby19.txt +43 -0
  89. data/lib/vendor/xmpp4r/Rakefile +262 -0
  90. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/adventure/README +56 -0
  91. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/adventure/adventure.rb +23 -0
  92. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/adventure/adventuremuc.rb +136 -0
  93. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/adventure/cube.xml +15 -0
  94. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/adventure/tower.xml +69 -0
  95. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/adventure/world.rb +424 -0
  96. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/fileserve.conf +11 -0
  97. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/fileserve.rb +346 -0
  98. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/getonline.rb +56 -0
  99. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/gtkmucclient.rb +315 -0
  100. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/migrate.rb +88 -0
  101. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/minimuc.rb +266 -0
  102. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/pep-aggregator/index.xsl +235 -0
  103. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/pep-aggregator/pep-aggregator.rb +147 -0
  104. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/recvfile.rb +84 -0
  105. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/rosterdiscovery.rb +129 -0
  106. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/sendfile.conf +10 -0
  107. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/sendfile.rb +72 -0
  108. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/shellmgr/shellmgr.rb +51 -0
  109. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/shellmgr/shellmgr_jabber.rb +43 -0
  110. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/shellmgr/shellmgr_test.rb +10 -0
  111. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/versionpoll.rb +90 -0
  112. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/xmpping.rb +146 -0
  113. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/xmppingrc.sample +14 -0
  114. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/change_password.rb +41 -0
  115. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/client.rb +70 -0
  116. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/component.rb +11 -0
  117. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/echo.rb +37 -0
  118. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/jabbersend.rb +41 -0
  119. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/mass_sender.rb +68 -0
  120. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/muc_owner_config.rb +12 -0
  121. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/mucinfo.rb +41 -0
  122. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/mucsimplebot.rb +82 -0
  123. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/register.rb +42 -0
  124. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/remove_registration.rb +18 -0
  125. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/roster.rb +44 -0
  126. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/rosterprint.rb +50 -0
  127. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/rosterrename.rb +34 -0
  128. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/rosterwatch.rb +171 -0
  129. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/send_vcard.rb +67 -0
  130. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/tune_client.rb +56 -0
  131. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/tune_server.rb +58 -0
  132. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/versionbot.rb +75 -0
  133. data/lib/vendor/xmpp4r/lib/xmpp4r.rb +116 -0
  134. data/lib/vendor/xmpp4r/lib/xmpp4r/base64.rb +32 -0
  135. data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams.rb +15 -0
  136. data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/filetransfer.rb +319 -0
  137. data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/ibb/base.rb +257 -0
  138. data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/ibb/initiator.rb +31 -0
  139. data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/ibb/target.rb +47 -0
  140. data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/socks5bytestreams/base.rb +152 -0
  141. data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/socks5bytestreams/initiator.rb +86 -0
  142. data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/socks5bytestreams/server.rb +198 -0
  143. data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/socks5bytestreams/socks5.rb +65 -0
  144. data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/socks5bytestreams/target.rb +73 -0
  145. data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/socks5bytestreams/target.rb.orig +62 -0
  146. data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/iq/bytestreams.rb +170 -0
  147. data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/iq/si.rb +206 -0
  148. data/lib/vendor/xmpp4r/lib/xmpp4r/callbacks.rb +124 -0
  149. data/lib/vendor/xmpp4r/lib/xmpp4r/caps.rb +1 -0
  150. data/lib/vendor/xmpp4r/lib/xmpp4r/caps/c.rb +53 -0
  151. data/lib/vendor/xmpp4r/lib/xmpp4r/caps/helper/generator.rb +160 -0
  152. data/lib/vendor/xmpp4r/lib/xmpp4r/caps/helper/helper.rb +87 -0
  153. data/lib/vendor/xmpp4r/lib/xmpp4r/client.rb +317 -0
  154. data/lib/vendor/xmpp4r/lib/xmpp4r/command/helper/responder.rb +53 -0
  155. data/lib/vendor/xmpp4r/lib/xmpp4r/command/iq/command.rb +154 -0
  156. data/lib/vendor/xmpp4r/lib/xmpp4r/component.rb +103 -0
  157. data/lib/vendor/xmpp4r/lib/xmpp4r/connection.rb +219 -0
  158. data/lib/vendor/xmpp4r/lib/xmpp4r/dataforms.rb +5 -0
  159. data/lib/vendor/xmpp4r/lib/xmpp4r/dataforms/x/data.rb +297 -0
  160. data/lib/vendor/xmpp4r/lib/xmpp4r/debuglog.rb +42 -0
  161. data/lib/vendor/xmpp4r/lib/xmpp4r/delay.rb +5 -0
  162. data/lib/vendor/xmpp4r/lib/xmpp4r/delay/x/delay.rb +99 -0
  163. data/lib/vendor/xmpp4r/lib/xmpp4r/discovery.rb +7 -0
  164. data/lib/vendor/xmpp4r/lib/xmpp4r/discovery/helper/responder.rb +165 -0
  165. data/lib/vendor/xmpp4r/lib/xmpp4r/discovery/iq/discoinfo.rb +211 -0
  166. data/lib/vendor/xmpp4r/lib/xmpp4r/discovery/iq/discoitems.rb +147 -0
  167. data/lib/vendor/xmpp4r/lib/xmpp4r/errors.rb +281 -0
  168. data/lib/vendor/xmpp4r/lib/xmpp4r/feature_negotiation.rb +5 -0
  169. data/lib/vendor/xmpp4r/lib/xmpp4r/feature_negotiation/iq/feature.rb +28 -0
  170. data/lib/vendor/xmpp4r/lib/xmpp4r/framework/base.rb +55 -0
  171. data/lib/vendor/xmpp4r/lib/xmpp4r/framework/bot.rb +148 -0
  172. data/lib/vendor/xmpp4r/lib/xmpp4r/httpbinding.rb +5 -0
  173. data/lib/vendor/xmpp4r/lib/xmpp4r/httpbinding/client.rb +285 -0
  174. data/lib/vendor/xmpp4r/lib/xmpp4r/idgenerator.rb +37 -0
  175. data/lib/vendor/xmpp4r/lib/xmpp4r/iq.rb +221 -0
  176. data/lib/vendor/xmpp4r/lib/xmpp4r/jid.rb +167 -0
  177. data/lib/vendor/xmpp4r/lib/xmpp4r/message.rb +148 -0
  178. data/lib/vendor/xmpp4r/lib/xmpp4r/muc.rb +14 -0
  179. data/lib/vendor/xmpp4r/lib/xmpp4r/muc/helper/mucbrowser.rb +92 -0
  180. data/lib/vendor/xmpp4r/lib/xmpp4r/muc/helper/mucclient.rb +462 -0
  181. data/lib/vendor/xmpp4r/lib/xmpp4r/muc/helper/simplemucclient.rb +332 -0
  182. data/lib/vendor/xmpp4r/lib/xmpp4r/muc/iq/mucadmin.rb +23 -0
  183. data/lib/vendor/xmpp4r/lib/xmpp4r/muc/iq/mucadminitem.rb +20 -0
  184. data/lib/vendor/xmpp4r/lib/xmpp4r/muc/iq/mucowner.rb +15 -0
  185. data/lib/vendor/xmpp4r/lib/xmpp4r/muc/item.rb +143 -0
  186. data/lib/vendor/xmpp4r/lib/xmpp4r/muc/x/muc.rb +70 -0
  187. data/lib/vendor/xmpp4r/lib/xmpp4r/muc/x/mucuserinvite.rb +60 -0
  188. data/lib/vendor/xmpp4r/lib/xmpp4r/muc/x/mucuseritem.rb +36 -0
  189. data/lib/vendor/xmpp4r/lib/xmpp4r/presence.rb +232 -0
  190. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub.rb +8 -0
  191. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/children/configuration.rb +86 -0
  192. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/children/event.rb +49 -0
  193. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/children/item.rb +35 -0
  194. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/children/items.rb +44 -0
  195. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/children/node_config.rb +48 -0
  196. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/children/publish.rb +24 -0
  197. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/children/subscription.rb +62 -0
  198. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/children/subscription_config.rb +67 -0
  199. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/children/unsubscribe.rb +48 -0
  200. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/helper/nodebrowser.rb +130 -0
  201. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/helper/nodehelper.rb +156 -0
  202. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/helper/servicehelper.rb +417 -0
  203. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/iq/pubsub.rb +19 -0
  204. data/lib/vendor/xmpp4r/lib/xmpp4r/query.rb +15 -0
  205. data/lib/vendor/xmpp4r/lib/xmpp4r/rexmladdons.rb +151 -0
  206. data/lib/vendor/xmpp4r/lib/xmpp4r/roster.rb +7 -0
  207. data/lib/vendor/xmpp4r/lib/xmpp4r/roster/helper/roster.rb +519 -0
  208. data/lib/vendor/xmpp4r/lib/xmpp4r/roster/iq/roster.rb +215 -0
  209. data/lib/vendor/xmpp4r/lib/xmpp4r/roster/x/roster.rb +138 -0
  210. data/lib/vendor/xmpp4r/lib/xmpp4r/rpc.rb +2 -0
  211. data/lib/vendor/xmpp4r/lib/xmpp4r/rpc/helper/client.rb +123 -0
  212. data/lib/vendor/xmpp4r/lib/xmpp4r/rpc/helper/server.rb +74 -0
  213. data/lib/vendor/xmpp4r/lib/xmpp4r/rpc/helper/xmlrpcaddons.rb +67 -0
  214. data/lib/vendor/xmpp4r/lib/xmpp4r/rpc/iq/rpc.rb +23 -0
  215. data/lib/vendor/xmpp4r/lib/xmpp4r/sasl.rb +237 -0
  216. data/lib/vendor/xmpp4r/lib/xmpp4r/semaphore.rb +38 -0
  217. data/lib/vendor/xmpp4r/lib/xmpp4r/stream.rb +497 -0
  218. data/lib/vendor/xmpp4r/lib/xmpp4r/streamparser.rb +77 -0
  219. data/lib/vendor/xmpp4r/lib/xmpp4r/tune.rb +2 -0
  220. data/lib/vendor/xmpp4r/lib/xmpp4r/tune/helper/helper.rb +58 -0
  221. data/lib/vendor/xmpp4r/lib/xmpp4r/tune/tune.rb +113 -0
  222. data/lib/vendor/xmpp4r/lib/xmpp4r/vcard.rb +6 -0
  223. data/lib/vendor/xmpp4r/lib/xmpp4r/vcard/helper/vcard.rb +84 -0
  224. data/lib/vendor/xmpp4r/lib/xmpp4r/vcard/iq/vcard.rb +109 -0
  225. data/lib/vendor/xmpp4r/lib/xmpp4r/version.rb +7 -0
  226. data/lib/vendor/xmpp4r/lib/xmpp4r/version/helper/responder.rb +72 -0
  227. data/lib/vendor/xmpp4r/lib/xmpp4r/version/helper/simpleresponder.rb +44 -0
  228. data/lib/vendor/xmpp4r/lib/xmpp4r/version/iq/version.rb +105 -0
  229. data/lib/vendor/xmpp4r/lib/xmpp4r/x.rb +37 -0
  230. data/lib/vendor/xmpp4r/lib/xmpp4r/xhtml.rb +1 -0
  231. data/lib/vendor/xmpp4r/lib/xmpp4r/xhtml/html.rb +115 -0
  232. data/lib/vendor/xmpp4r/lib/xmpp4r/xmpp4r.rb +18 -0
  233. data/lib/vendor/xmpp4r/lib/xmpp4r/xmppelement.rb +168 -0
  234. data/lib/vendor/xmpp4r/lib/xmpp4r/xmppstanza.rb +162 -0
  235. data/lib/vendor/xmpp4r/setup.rb +1586 -0
  236. data/lib/vendor/xmpp4r/test/bytestreams/tc_ibb.rb +186 -0
  237. data/lib/vendor/xmpp4r/test/bytestreams/tc_socks5bytestreams.rb +113 -0
  238. data/lib/vendor/xmpp4r/test/caps/tc_helper.rb +156 -0
  239. data/lib/vendor/xmpp4r/test/dataforms/tc_data.rb +81 -0
  240. data/lib/vendor/xmpp4r/test/delay/tc_xdelay.rb +51 -0
  241. data/lib/vendor/xmpp4r/test/discovery/tc_responder.rb +91 -0
  242. data/lib/vendor/xmpp4r/test/lib/assert_equal_xml.rb +14 -0
  243. data/lib/vendor/xmpp4r/test/lib/clienttester.rb +120 -0
  244. data/lib/vendor/xmpp4r/test/muc/tc_muc_mucclient.rb +830 -0
  245. data/lib/vendor/xmpp4r/test/muc/tc_muc_simplemucclient.rb +114 -0
  246. data/lib/vendor/xmpp4r/test/muc/tc_mucowner.rb +50 -0
  247. data/lib/vendor/xmpp4r/test/pubsub/tc_helper.rb +662 -0
  248. data/lib/vendor/xmpp4r/test/pubsub/tc_nodeconfig.rb +54 -0
  249. data/lib/vendor/xmpp4r/test/pubsub/tc_subscriptionconfig.rb +41 -0
  250. data/lib/vendor/xmpp4r/test/roster/tc_helper.rb +514 -0
  251. data/lib/vendor/xmpp4r/test/roster/tc_iqqueryroster.rb +173 -0
  252. data/lib/vendor/xmpp4r/test/roster/tc_xroster.rb +73 -0
  253. data/lib/vendor/xmpp4r/test/rpc/tc_helper.rb +96 -0
  254. data/lib/vendor/xmpp4r/test/tc_callbacks.rb +129 -0
  255. data/lib/vendor/xmpp4r/test/tc_class_names.rb +146 -0
  256. data/lib/vendor/xmpp4r/test/tc_client.rb +30 -0
  257. data/lib/vendor/xmpp4r/test/tc_errors.rb +146 -0
  258. data/lib/vendor/xmpp4r/test/tc_idgenerator.rb +30 -0
  259. data/lib/vendor/xmpp4r/test/tc_iq.rb +113 -0
  260. data/lib/vendor/xmpp4r/test/tc_iqquery.rb +31 -0
  261. data/lib/vendor/xmpp4r/test/tc_jid.rb +204 -0
  262. data/lib/vendor/xmpp4r/test/tc_message.rb +116 -0
  263. data/lib/vendor/xmpp4r/test/tc_presence.rb +150 -0
  264. data/lib/vendor/xmpp4r/test/tc_rexml.rb +139 -0
  265. data/lib/vendor/xmpp4r/test/tc_stream.rb +229 -0
  266. data/lib/vendor/xmpp4r/test/tc_streamComponent.rb +95 -0
  267. data/lib/vendor/xmpp4r/test/tc_streamError.rb +131 -0
  268. data/lib/vendor/xmpp4r/test/tc_streamSend.rb +59 -0
  269. data/lib/vendor/xmpp4r/test/tc_streamparser.rb +112 -0
  270. data/lib/vendor/xmpp4r/test/tc_xmppstanza.rb +135 -0
  271. data/lib/vendor/xmpp4r/test/ts_xmpp4r.rb +53 -0
  272. data/lib/vendor/xmpp4r/test/tune/tc_helper_recv.rb +84 -0
  273. data/lib/vendor/xmpp4r/test/tune/tc_helper_send.rb +74 -0
  274. data/lib/vendor/xmpp4r/test/tune/tc_tune.rb +79 -0
  275. data/lib/vendor/xmpp4r/test/vcard/tc_helper.rb +49 -0
  276. data/lib/vendor/xmpp4r/test/vcard/tc_iqvcard.rb +62 -0
  277. data/lib/vendor/xmpp4r/test/version/tc_helper.rb +60 -0
  278. data/lib/vendor/xmpp4r/test/version/tc_iqqueryversion.rb +97 -0
  279. data/lib/vendor/xmpp4r/test/xhtml/tc_html.rb +41 -0
  280. data/lib/vendor/xmpp4r/tools/gen_requires.bash +31 -0
  281. data/lib/vendor/xmpp4r/tools/xmpp4r-gemspec-test.rb +11 -0
  282. data/lib/vendor/xmpp4r/xmpp4r.gemspec +291 -0
  283. data/test/jabber_publisher_test.rb +1 -1
  284. data/test/mail_publisher_test.rb +2 -2
  285. data/test/mock/twitter.rb +0 -1
  286. data/test/rspec_builder_test.rb +39 -2
  287. data/test/rss_publisher_test.rb +1 -1
  288. data/test/twitter_publisher_test.rb +1 -1
  289. metadata +268 -53
  290. data/lib/cerberus/publisher/gmailer.rb +0 -17
@@ -0,0 +1,131 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $:.unshift '../lib'
4
+
5
+ require 'test/unit'
6
+ require 'socket'
7
+ require 'xmpp4r/client'
8
+ include Jabber
9
+
10
+ class ConnectionErrorTest < Test::Unit::TestCase
11
+ @@SOCKET_PORT = 65225
12
+ STREAM = '<stream:stream xmlns:stream="http://etherx.jabber.org/streams">'
13
+
14
+ def setup
15
+ servlisten = TCPServer.new(@@SOCKET_PORT)
16
+ serverwait = Semaphore.new
17
+ @server = nil
18
+ Thread.new do
19
+ Thread.current.abort_on_exception = true
20
+ @server = servlisten.accept
21
+ servlisten.close
22
+ @server.sync = true
23
+
24
+ serverwait.run
25
+ end
26
+
27
+ @conn = TCPSocket.new('localhost', @@SOCKET_PORT)
28
+
29
+ serverwait.wait
30
+ end
31
+
32
+ def teardown
33
+ @conn.close if not @conn.closed?
34
+ @server.close if not @conn.closed?
35
+ end
36
+
37
+ def test_connectionError_start_withexcblock
38
+ @stream = Stream.new
39
+ error = false
40
+ @stream.on_exception do |e, o, w|
41
+ # strange exception, it's caused by REXML, actually
42
+ assert_kind_of(StandardError, e)
43
+ assert_equal(Jabber::Stream, o.class)
44
+ assert_equal(:start, w)
45
+ error = true
46
+ end
47
+ assert(!error)
48
+ begin
49
+ # wrong port on purpose
50
+ conn = TCPSocket.new('localhost', 1)
51
+ rescue
52
+ end
53
+ @stream.start(conn)
54
+ sleep 0.2
55
+ assert(error)
56
+ @server.close
57
+ @stream.close
58
+ end
59
+
60
+ def test_connectionError_parse_withexcblock
61
+ @stream = Stream.new
62
+ error = false
63
+ @stream.start(@conn)
64
+ @stream.on_exception do |e, o, w|
65
+ if w == :disconnected
66
+ assert_equal(nil, e)
67
+ assert_equal(Jabber::Stream, o.class)
68
+ else
69
+ assert_equal(REXML::ParseException, e.class)
70
+ assert_equal(Jabber::Stream, o.class)
71
+ assert_equal(:parser, w)
72
+ error = true
73
+ end
74
+ end
75
+ @server.puts(STREAM)
76
+ @server.flush
77
+ assert(!error)
78
+ @server.puts('</blop>')
79
+ @server.flush
80
+ sleep 0.2
81
+ assert(error)
82
+ @server.close
83
+ @stream.close
84
+ end
85
+
86
+ def test_connectionError_send_withexcblock
87
+ @stream = Stream.new
88
+ error = 0
89
+ @stream.start(@conn)
90
+ @stream.on_exception do |exc, o, w|
91
+ case w
92
+ when :sending
93
+ assert_equal(IOError, exc.class)
94
+ assert_equal(Jabber::Stream, o.class)
95
+ when :disconnected
96
+ assert_equal(nil, exc)
97
+ assert_equal(Jabber::Stream, o.class)
98
+ else
99
+ assert(false)
100
+ end
101
+ error += 1
102
+ end
103
+ @server.puts(STREAM)
104
+ @server.flush
105
+ assert_equal(0, error)
106
+ @server.close
107
+ sleep 0.1
108
+ assert_equal(1, error)
109
+ @stream.send('</test>')
110
+ sleep 0.1
111
+ @stream.send('</test>')
112
+ sleep 0.1
113
+ assert_equal(3, error)
114
+ @stream.close
115
+ end
116
+
117
+ def test_connectionError_send_withoutexcblock
118
+ @stream = Stream.new
119
+ @stream.start(@conn)
120
+ @server.puts(STREAM)
121
+ @server.flush
122
+ assert_raise(Errno::EPIPE) do
123
+ @server.close
124
+ sleep 0.1
125
+ @stream.send('</test>')
126
+ sleep 0.1
127
+ @stream.send('</test>')
128
+ sleep 0.1
129
+ end
130
+ end
131
+ end
@@ -0,0 +1,59 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $:.unshift '../lib'
4
+
5
+ require 'test/unit'
6
+ require 'socket'
7
+ require 'tempfile'
8
+ require 'io/wait'
9
+ require 'xmpp4r'
10
+ include Jabber
11
+
12
+ class StreamSendTest < Test::Unit::TestCase
13
+ def setup
14
+ @tmpfile = Tempfile.new("StreamSendTest")
15
+ @tmpfilepath = @tmpfile.path()
16
+ @tmpfile.unlink
17
+ @servlisten = UNIXServer.new(@tmpfilepath)
18
+ thServer = Thread.new { @server = @servlisten.accept }
19
+ @iostream = UNIXSocket.new(@tmpfilepath)
20
+ @stream = Stream.new
21
+ @stream.start(@iostream)
22
+
23
+ thServer.join
24
+ end
25
+
26
+ def teardown
27
+ @stream.close
28
+ @server.close
29
+ @servlisten.close
30
+ end
31
+
32
+ def mysend(s)
33
+ @stream.send(s)
34
+ @stream.send("\n") #needed for easy test writing
35
+ end
36
+
37
+ ##
38
+ # Tries to send a basic message
39
+ def test_sendbasic
40
+ mysend(Message.new)
41
+ assert_equal("<message/>\n", @server.gets)
42
+ end
43
+
44
+ def test_sendmessage
45
+ mysend(Message.new('lucas@linux.ensimag.fr', 'coucou'))
46
+ assert_equal("<message to='lucas@linux.ensimag.fr'><body>coucou</body></message>\n", @server.gets)
47
+ end
48
+
49
+ def test_sendpresence
50
+ mysend(Presence.new)
51
+ assert_equal("<presence/>\n", @server.gets)
52
+ end
53
+
54
+ def test_sendiq
55
+ mysend(Iq.new)
56
+ assert_equal("<iq/>\n", @server.gets)
57
+ end
58
+
59
+ end
@@ -0,0 +1,112 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $:.unshift '../lib'
4
+
5
+ require 'tempfile'
6
+ require 'test/unit'
7
+ require 'socket'
8
+ require 'xmpp4r/streamparser'
9
+ require 'xmpp4r/semaphore'
10
+ include Jabber
11
+
12
+ class MockListener
13
+ attr_reader :received
14
+
15
+ def receive(element)
16
+ @received = element
17
+ end
18
+
19
+ def parse_failure(exception)
20
+ raise exception
21
+ end
22
+ end
23
+
24
+ class StreamParserTest < Test::Unit::TestCase
25
+ STREAM = '<stream:stream xmlns:stream="http://etherx.jabber.org/streams">'
26
+
27
+ def setup
28
+ @listener = MockListener.new
29
+ end
30
+
31
+ def teardown
32
+ @listener = nil
33
+ end
34
+
35
+ def parse_simple_helper(fixture)
36
+ parser = StreamParser.new(STREAM + fixture, @listener)
37
+
38
+ parser.parse
39
+
40
+ yield parse_with_rexml(fixture)
41
+ end
42
+
43
+ def parse_with_rexml(fixture)
44
+ REXML::Document.new(fixture).root
45
+ end
46
+
47
+ def test_simple_text
48
+ parse_simple_helper( "<a>text</a>" ) do |desired|
49
+ assert_equal desired.name, @listener.received.name
50
+ assert_equal desired.text, @listener.received.text
51
+ assert_equal desired.cdatas, @listener.received.cdatas
52
+ end
53
+ end
54
+
55
+ def test_simple_cdata
56
+ parse_simple_helper( "<a><![CDATA[<cdata>]]></a>" ) do |desired|
57
+ assert_equal desired.name, @listener.received.name
58
+ assert_equal desired.text, @listener.received.text
59
+ assert_equal desired.cdatas, @listener.received.cdatas
60
+ end
61
+ end
62
+
63
+ def test_composite_text_cdata
64
+ parse_simple_helper( "<a>text<![CDATA[<cdata>]]></a>" ) do |desired|
65
+ assert_equal desired.name, @listener.received.name
66
+ assert_equal desired.text, @listener.received.text
67
+ assert_equal desired.cdatas, @listener.received.cdatas
68
+ end
69
+ end
70
+
71
+ def test_composite_cdata_text
72
+ parse_simple_helper( "<a><![CDATA[<cdata>]]>text</a>" ) do |desired|
73
+ assert_equal desired.name, @listener.received.name
74
+ assert_equal desired.text, @listener.received.text
75
+ assert_equal desired.cdatas, @listener.received.cdatas
76
+ end
77
+ end
78
+
79
+ def test_complex_composite_cdata_text
80
+ parse_simple_helper( "<a><![CDATA[<cdata>]]>text<![CDATA[<cdata>]]>text</a>" ) do |desired|
81
+ assert_equal desired.name, @listener.received.name
82
+ assert_equal desired.text, @listener.received.text
83
+ assert_equal desired.cdatas, @listener.received.cdatas
84
+ end
85
+ end
86
+
87
+ def test_entity_escaping1
88
+ parse_simple_helper( "<a>&apos;&amp;&quot;</a>" ) do |desired|
89
+ assert_equal "'&\"", @listener.received.text
90
+ assert_equal "<a>&apos;&amp;&quot;</a>", @listener.received.to_s
91
+ end
92
+ end
93
+
94
+ def test_entity_escaping2
95
+ parse_simple_helper( "<a>&amp;amp;amp;</a>" ) do |desired|
96
+ assert_equal "&amp;amp;", @listener.received.text
97
+ assert_equal "<a>&amp;amp;amp;</a>", @listener.received.to_s
98
+ end
99
+ end
100
+
101
+ =begin
102
+ **********
103
+ * FIXME! *
104
+ **********
105
+
106
+ def test_unbound_prefix
107
+ parse_simple_helper("<message><soe:instantMessage/></message>") do |desired|
108
+ assert_equal desired.first_element('*').name, 'instantMessage'
109
+ end
110
+ end
111
+ =end
112
+ end
@@ -0,0 +1,135 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $:.unshift '../lib'
4
+
5
+ require 'test/unit'
6
+ require 'socket'
7
+ require 'xmpp4r/rexmladdons'
8
+ require 'xmpp4r/xmppstanza'
9
+ require 'xmpp4r/iq'
10
+ require 'xmpp4r/feature_negotiation'
11
+ require 'xmpp4r/dataforms'
12
+ require 'xmpp4r/errors'
13
+ include Jabber
14
+
15
+ class XMPPStanzaTest < Test::Unit::TestCase
16
+
17
+ ##
18
+ # Hack: XMPPStanza derives from XMPPElement
19
+ # which enforces element classes to be named at declaration time
20
+ class MyXMPPStanza < XMPPStanza
21
+ name_xmlns 'stanza', 'http://home.gna.org/xmpp4r'
22
+ end
23
+
24
+ class MyStanza < XMPPStanza
25
+ end
26
+
27
+ def test_from
28
+ x = MyXMPPStanza.new
29
+ assert_equal(nil, x.from)
30
+ assert_equal(x, x.set_from("blop"))
31
+ assert_equal("blop", x.from.to_s)
32
+ x.from = "tada"
33
+ assert_equal("tada", x.from.to_s)
34
+ end
35
+
36
+ def test_to
37
+ x = MyXMPPStanza.new
38
+ assert_equal(nil, x.to)
39
+ assert_equal(x, x.set_to("blop"))
40
+ assert_equal("blop", x.to.to_s)
41
+ x.to = "tada"
42
+ assert_equal("tada", x.to.to_s)
43
+ end
44
+
45
+ def test_id
46
+ x = MyXMPPStanza.new
47
+ assert_equal(nil, x.id)
48
+ assert_equal(x, x.set_id("blop"))
49
+ assert_equal("blop", x.id)
50
+ x.id = "tada"
51
+ assert_equal("tada", x.id)
52
+ end
53
+
54
+ def test_type
55
+ x = MyXMPPStanza.new
56
+ assert_equal(nil, x.type)
57
+ assert_equal(x, x.set_type("blop"))
58
+ assert_equal("blop", x.type)
59
+ x.type = "tada"
60
+ assert_equal("tada", x.type)
61
+ end
62
+
63
+ def test_import
64
+ x = MyXMPPStanza.new
65
+ x.id = "heya"
66
+ q = x.add_element("query")
67
+ q.add_namespace("about:blank")
68
+ q.add_element("b").text = "I am b"
69
+ q.add_text("I am text")
70
+ q.add_element("a").add_attribute("href", "http://home.gna.org/xmpp4r/")
71
+ x.add_text("yow")
72
+ x.add_element("query")
73
+
74
+ assert_raise(RuntimeError) { iq = Iq.import(x) }
75
+ x.name = 'iq'
76
+ iq = Iq.import(x)
77
+
78
+ assert_equal(x.id, iq.id)
79
+ assert_equal(q.to_s, iq.query.to_s)
80
+ assert_equal(x.to_s, iq.to_s)
81
+ assert_equal(q.namespace, iq.queryns)
82
+ end
83
+
84
+ def test_import2
85
+ feature = FeatureNegotiation::IqFeature.new
86
+ xdata = feature.add(Dataforms::XData.new(:form))
87
+ field = xdata.add(Dataforms::XDataField.new('stream-method', :list_single))
88
+
89
+ feature2 = FeatureNegotiation::IqFeature.new.import(feature)
90
+ assert_equal(field.var, feature2.x.fields.first.var)
91
+ assert_equal(field.type, feature2.x.fields.first.type)
92
+ end
93
+
94
+ def test_import_xml_entities
95
+ e = REXML::Element.new('e')
96
+ e.text = '&'
97
+ assert_equal('<e>&amp;</e>', e.to_s)
98
+
99
+ e2 = REXML::Element.new('e').import(e)
100
+ assert_equal('<e>&amp;</e>', e2.to_s)
101
+ end
102
+
103
+ def test_error
104
+ x = MyXMPPStanza.new
105
+ assert_equal(nil, x.error)
106
+ x.typed_add(REXML::Element.new('error'))
107
+ assert_equal('<error/>', x.error.to_s)
108
+ assert_equal(ErrorResponse, x.error.class)
109
+ end
110
+
111
+ def test_clone_and_dup
112
+ x = MyXMPPStanza.new
113
+ x.attributes['xyz'] = '123'
114
+ x.text = 'abc'
115
+
116
+ assert_equal(x.attributes['xyz'], '123')
117
+ assert_equal(x.text, 'abc')
118
+
119
+ x2 = x.clone
120
+ assert_kind_of(MyXMPPStanza, x2)
121
+ assert_equal('123', x2.attributes['xyz'])
122
+ assert_nil(x2.text)
123
+
124
+ x3 = x.dup
125
+ assert_kind_of(MyXMPPStanza, x3)
126
+ assert_equal('123', x3.attributes['xyz'])
127
+ assert_equal('abc', x3.text)
128
+ end
129
+
130
+ def test_raise
131
+ assert_raises(NoNameXmlnsRegistered) {
132
+ XMPPStanza.name_xmlns_for_class(MyStanza)
133
+ }
134
+ end
135
+ end
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/ruby -w
2
+
3
+ $:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
4
+ $:.unshift File.join(File.dirname(__FILE__), '..', 'test')
5
+ $:.unshift File.join(File.dirname(__FILE__), 'lib')
6
+ $:.unshift File.join(File.dirname(__FILE__), 'test')
7
+
8
+ # This is allowed here, to make sure it's enabled in all test.
9
+ Thread::abort_on_exception = true
10
+
11
+ require 'xmpp4r'
12
+ require 'find'
13
+
14
+ # List files' basenames, not full path!
15
+ # EXCLUDED_FILES = [ 'tc_muc_simplemucclient.rb' ]
16
+ EXCLUDED_FILES = []
17
+
18
+ tc_files = []
19
+ tc_subdirs = []
20
+ Find.find(File.dirname(__FILE__)) do |f|
21
+ if File::directory?(f)
22
+ if f == '.'
23
+ # do nothing
24
+ elsif File::basename(f) != '.svn'
25
+ tc_subdirs << f
26
+ Find.prune
27
+ end
28
+ elsif File::basename(f) =~ /^tc.*\.rb$/
29
+ tc_files << f
30
+ end
31
+ end
32
+
33
+ tc_subdirs.each do |dir|
34
+ Find.find(dir) do |f|
35
+ if File::file?(f) and File::basename(f) =~ /^tc.*\.rb$/
36
+
37
+ if (RUBY_VERSION.split('.').collect {|n| n.to_i} <=> [1,9,0]) >= 0
38
+ # TODO: at the moment, these two test cases have timing dependencies
39
+ # on threaded code. While they may pass with the green thread
40
+ # implementation in Ruby 1.8, they often fail with real threads.
41
+ next if f =~ /tc_helper.rb/
42
+ next if f =~ /tc_stream.rb/
43
+ end
44
+
45
+ tc_files << f
46
+ end
47
+ end
48
+ end
49
+
50
+ tc_files.each do |f|
51
+ next if EXCLUDED_FILES.include?(File::basename(f))
52
+ require f
53
+ end