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,84 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $:.unshift File::dirname(__FILE__) + '/../../lib'
4
+
5
+ require 'test/unit'
6
+ require File::dirname(__FILE__) + '/../lib/clienttester'
7
+
8
+ require 'xmpp4r'
9
+ require 'xmpp4r/tune/helper/helper'
10
+ require 'xmpp4r/tune/tune'
11
+ include Jabber
12
+
13
+ #Jabber::debug=true
14
+
15
+ class UserTune::HelperTest < Test::Unit::TestCase
16
+ include ClientTester
17
+
18
+ ##
19
+ # Test receiving 'now playing' notifications
20
+ #
21
+ # See http://www.xmpp.org/extensions/xep-0118.html#protocol-transport,
22
+ # example 1
23
+ def test_recv_now_playing
24
+ state { |presence|
25
+ send(deliver_usertune)
26
+ }
27
+
28
+ query_waiter = Semaphore.new
29
+
30
+ h = UserTune::Helper.new(@client, 'stpeter@jabber.org')
31
+ h.add_usertune_callback do |tune|
32
+ assert_kind_of Jabber::UserTune::Tune, tune
33
+ assert_equal true, tune.playing?
34
+ assert_equal 'Yes', tune.artist
35
+ assert_equal 686, tune.length
36
+ assert_equal 'Yessongs', tune.source
37
+ assert_equal 'Heart of the Sunrise', tune.title
38
+ assert_equal '3', tune.track
39
+ assert_equal 'http://www.yesworld.com/lyrics/Fragile.html#9',tune.uri
40
+ end
41
+ @client.add_message_callback do |m|
42
+ query_waiter.run
43
+ end
44
+ @client.send Jabber::Presence.new
45
+ wait_state
46
+
47
+ query_waiter.wait
48
+ end
49
+
50
+ # see example 2 from http://www.xmpp.org/extensions/xep-0118.html#protocol-transport
51
+ def deliver_usertune
52
+ "<message
53
+ from='stpeter@jabber.org'
54
+ to='maineboy@jabber.org'>
55
+ <event xmlns='http://jabber.org/protocol/pubsub#event'>
56
+ <items node='http://jabber.org/protocol/tune'>
57
+ <item id='bffe6584-0f9c-11dc-84ba-001143d5d5db'>
58
+ <tune xmlns='http://jabber.org/protocol/tune'>
59
+ <artist>Yes</artist>
60
+ <length>686</length>
61
+ <source>Yessongs</source>
62
+ <title>Heart of the Sunrise</title>
63
+ <track>3</track>
64
+ <uri>http://www.yesworld.com/lyrics/Fragile.html#9</uri>
65
+ </tune>
66
+ </item>
67
+ </items>
68
+ </event>
69
+ </message>"
70
+ end
71
+
72
+ # an example from the Wild
73
+ def psi_usertune
74
+ "<message from='admin@new-big-computer.local' to='matt@new-big-computer.local/trackbot' xmlns='jabber:client'><event xmlns='http://jabber.org/protocol/pubsub#event'><items node='http://jabber.org/protocol/tune'><item id='current'>
75
+
76
+ <tune xmlns='http://jabber.org/protocol/tune'>
77
+
78
+
79
+
80
+
81
+
82
+ <artist>Wes Montgomery</artist><title>Jingles</title><source>Bags Meets Wes</source><track>8</track><length>410</length></tune></item></items></event></message>"
83
+ end
84
+ end
@@ -0,0 +1,74 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $:.unshift File::dirname(__FILE__) + '/../../lib'
4
+
5
+ require 'test/unit'
6
+ require File::dirname(__FILE__) + '/../lib/clienttester'
7
+
8
+ require 'xmpp4r'
9
+ require 'xmpp4r/tune/helper/helper'
10
+ require 'xmpp4r/tune/tune'
11
+ include Jabber
12
+
13
+ #Jabber::debug=true
14
+
15
+ class UserTune::HelperTest < Test::Unit::TestCase
16
+ include ClientTester
17
+
18
+ ##
19
+ # Test sending 'now playing' notifications
20
+ #
21
+ # See http://www.xmpp.org/extensions/xep-0118.html#protocol-transport,
22
+ # example 1
23
+ def test_send_now_playing
24
+ artist = 'Mike Flowers Pops'
25
+ title = 'Light My Fire'
26
+ tune_to_send = UserTune::Tune.new(artist, title)
27
+
28
+ h = UserTune::Helper.new(@client, nil)
29
+ assert_kind_of(UserTune::Helper, h)
30
+
31
+ state { |now_playing|
32
+ assert_kind_of(Jabber::Iq, now_playing)
33
+ assert_equal :set, now_playing.type
34
+
35
+ assert_kind_of(Jabber::PubSub::IqPubSub,now_playing.first_element('pubsub'))
36
+ assert_equal(Jabber::UserTune::NS_USERTUNE,now_playing.first_element('pubsub').first_element('publish').node)
37
+
38
+ tune=now_playing.first_element('pubsub').first_element('publish').first_element('item').first_element('tune')
39
+ assert_kind_of Jabber::UserTune::Tune,tune
40
+ assert_equal true, tune.playing?
41
+ assert_equal artist,tune.artist
42
+ assert_equal title,tune.title
43
+ assert_equal nil,tune.length
44
+ assert_equal nil,tune.track
45
+ assert_equal nil,tune.source
46
+ assert_equal nil,tune.uri
47
+
48
+ send("<iq type='result' id='#{now_playing.id}'/>")
49
+ }
50
+ h.now_playing(tune_to_send)
51
+ wait_state
52
+ end
53
+
54
+ def test_send_stop_playing
55
+ h = UserTune::Helper.new(@client, nil)
56
+
57
+ state { |now_playing|
58
+ tune = now_playing.first_element('pubsub').first_element('publish').first_element('item').first_element('tune')
59
+
60
+ assert_kind_of Jabber::UserTune::Tune, tune
61
+ assert_equal false, tune.playing?
62
+ assert_equal nil, tune.artist
63
+ assert_equal nil, tune.title
64
+ assert_equal nil,tune.length
65
+ assert_equal nil,tune.track
66
+ assert_equal nil,tune.source
67
+ assert_equal nil,tune.uri
68
+
69
+ send("<iq type='result' id='#{now_playing.id}'/>")
70
+ }
71
+ h.stop_playing
72
+ wait_state
73
+ end
74
+ end
@@ -0,0 +1,79 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $:.unshift '../lib'
4
+
5
+ require 'test/unit'
6
+ require 'xmpp4r/tune/tune.rb'
7
+
8
+ class Jabber::UserTune::TuneTest < Test::Unit::TestCase
9
+ def test_create
10
+ artist='Mike Flowers Pops'
11
+ title='Light My Fire'
12
+ length=175
13
+ track='4'
14
+ source='A Groovy Place'
15
+ uri='http://musicbrainz.org/track/d44110e6-4b20-4d16-9e69-74bf0e4f7106.html'
16
+ rating=10
17
+
18
+ t=Jabber::UserTune::Tune.new(artist,title,length,track,source,uri,rating)
19
+
20
+ assert_kind_of Jabber::UserTune::Tune,t
21
+ assert_equal 7,t.elements.size
22
+ assert_equal true,t.playing?
23
+ assert_equal artist,t.artist
24
+ assert_equal track,t.track
25
+ assert_equal length,t.length
26
+ assert_equal track,t.track
27
+ assert_equal source,t.source
28
+ assert_equal uri,t.uri
29
+ assert_equal rating,t.rating
30
+ end
31
+
32
+ def test_stop_playing
33
+ t=Jabber::UserTune::Tune.new
34
+
35
+ assert_kind_of Jabber::UserTune::Tune,t
36
+ assert_equal 0,t.elements.size
37
+ assert_equal false, t.playing?
38
+ assert_equal nil,t.artist
39
+ assert_equal nil,t.track
40
+ assert_equal nil,t.length
41
+ assert_equal nil,t.track
42
+ assert_equal nil,t.source
43
+ assert_equal nil,t.uri
44
+ end
45
+
46
+ def test_rating_edgecases
47
+ assert_equal(0, Jabber::UserTune::Tune.new(artist,title,length,track,source,uri,-1.5).rating)
48
+ assert_equal(10, Jabber::UserTune::Tune.new(artist,title,length,track,source,uri,11.5).rating)
49
+ assert_equal(nil, Jabber::UserTune::Tune.new(artist,title,length,track,source,uri,'fantastic').rating)
50
+ end
51
+
52
+ def artist
53
+ 'Mike Flowers Pops'
54
+ end
55
+
56
+ def title
57
+ 'Light My Fire'
58
+ end
59
+
60
+ def length
61
+ 175
62
+ end
63
+
64
+ def track
65
+ '4'
66
+ end
67
+
68
+ def source
69
+ 'A Groovy Place'
70
+ end
71
+
72
+ def uri
73
+ 'http://musicbrainz.org/track/d44110e6-4b20-4d16-9e69-74bf0e4f7106.html'
74
+ end
75
+
76
+ def rating
77
+ 10
78
+ end
79
+ end
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $:.unshift File::dirname(__FILE__) + '/../../lib'
4
+
5
+ require 'test/unit'
6
+ require File::dirname(__FILE__) + '/../lib/clienttester'
7
+
8
+ require 'xmpp4r'
9
+ require 'xmpp4r/vcard/helper/vcard'
10
+ include Jabber
11
+
12
+ class Vcard::HelperTest < Test::Unit::TestCase
13
+ include ClientTester
14
+
15
+ def test_create
16
+ h = Vcard::Helper.new(@client)
17
+ assert_kind_of(Vcard::Helper, h)
18
+ end
19
+
20
+ def test_callback
21
+ @server.on_exception{|*e| p e}
22
+ class << @client
23
+ remove_method(:jid)
24
+ def jid
25
+ JID.new('b@b.com/b')
26
+ end
27
+ end
28
+
29
+ state { |iq|
30
+ assert_kind_of(Iq, iq)
31
+ assert_equal(JID.new('a@b.com'), iq.to)
32
+ assert_equal(:get, iq.type)
33
+ assert_nil(iq.queryns)
34
+ assert_kind_of(Vcard::IqVcard, iq.vcard)
35
+ children = 0
36
+ iq.vcard.each_child { children += 1 }
37
+ assert_equal(0, children)
38
+
39
+ send("<iq type='result' from='#{iq.to}' to='#{iq.from}' id='#{iq.id}'><vCard xmlns='vcard-temp'><NICKNAME>Mr. B</NICKNAME><PHOTO><TYPE>image/png</TYPE><BINVAL>====</BINVAL></PHOTO></vCard></iq>")
40
+ }
41
+
42
+ res = Vcard::Helper::get(@client, 'a@b.com')
43
+ wait_state
44
+ assert_kind_of(Vcard::IqVcard, res)
45
+ assert_equal('Mr. B', res['NICKNAME'])
46
+ assert_equal('image/png', res['PHOTO/TYPE'])
47
+ assert_equal('====', res['PHOTO/BINVAL'])
48
+ end
49
+ end
@@ -0,0 +1,62 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $:.unshift File::dirname(__FILE__) + '/../../lib'
4
+
5
+ require 'test/unit'
6
+ require 'xmpp4r/rexmladdons'
7
+ require 'xmpp4r/vcard/iq/vcard'
8
+ include Jabber
9
+
10
+ class IqVcardTest < Test::Unit::TestCase
11
+ def test_create
12
+ v = Vcard::IqVcard.new
13
+ assert_equal([], v.fields)
14
+ end
15
+
16
+ def test_create_with_fields
17
+ v = Vcard::IqVcard.new({'FN' => 'B C', 'NICKNAME' => 'D'})
18
+ assert_equal(['FN', 'NICKNAME'], v.fields.sort)
19
+ assert_equal('B C', v['FN'])
20
+ assert_equal('D', v['NICKNAME'])
21
+ assert_equal(nil, v['x'])
22
+ end
23
+
24
+ def test_fields
25
+ v = Vcard::IqVcard.new
26
+ f = ['a', 'b', 'c', 'd', 'e']
27
+ f.each { |s|
28
+ v[s.downcase] = s.upcase
29
+ }
30
+
31
+ assert_equal(f, v.fields.sort)
32
+
33
+ f.each { |s|
34
+ assert_equal(s.upcase, v[s.downcase])
35
+ assert_equal(nil, v[s.upcase])
36
+ }
37
+ end
38
+
39
+ def test_deep
40
+ v = Vcard::IqVcard.new({
41
+ 'FN' => 'John D. Random',
42
+ 'PHOTO/TYPE' => 'image/png',
43
+ 'PHOTO/BINVAL' => '===='})
44
+
45
+ assert_equal(['FN', 'PHOTO/BINVAL', 'PHOTO/TYPE'], v.fields.sort)
46
+ assert_equal('John D. Random', v['FN'])
47
+ assert_equal('image/png', v['PHOTO/TYPE'])
48
+ assert_equal('====', v['PHOTO/BINVAL'])
49
+ assert_equal(nil, v['PHOTO'])
50
+ assert_equal(nil, v['NICKNAME'])
51
+ end
52
+
53
+ def test_photo_binval
54
+ v = Vcard::IqVcard.new({'PHOTO/BINVAL'=>"SGVsbG8gd29ybGQ=\n"})
55
+ assert_equal('Hello world', v.photo_binval)
56
+ end
57
+
58
+ def test_photo_binval_nil
59
+ v = Vcard::IqVcard.new({})
60
+ assert_nil(v.photo_binval)
61
+ end
62
+ end
@@ -0,0 +1,60 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $:.unshift File::dirname(__FILE__) + '/../../lib'
4
+
5
+ require 'test/unit'
6
+ require File::dirname(__FILE__) + '/../lib/clienttester'
7
+
8
+ require 'xmpp4r'
9
+ require 'xmpp4r/version/helper/responder'
10
+ require 'xmpp4r/version/helper/simpleresponder'
11
+ include Jabber
12
+
13
+ class Version::HelperTest < Test::Unit::TestCase
14
+ include ClientTester
15
+
16
+ def test_create
17
+ h = Version::Responder.new(@client)
18
+ assert_kind_of(Version::Responder, h)
19
+ assert_respond_to(h, :add_version_callback)
20
+ end
21
+
22
+ def test_callback
23
+ # Prepare helper
24
+ h = Version::Responder.new(@client)
25
+
26
+ calls = 0
27
+ h.add_version_callback { |iq,responder|
28
+ calls += 1
29
+ assert('jabber:iq:version', iq.queryns)
30
+ responder.call('Test program', '1.0', 'Ruby Test::Unit')
31
+ }
32
+
33
+ # Send stanzas which shouldn't match
34
+ @server.send("<iq type='set'><query xmlns='jabber:iq:version'/></iq>")
35
+ @server.send("<iq type='get'><query xmlns='jabber:iq:browse'/></iq>")
36
+ assert_equal(0, calls)
37
+
38
+ # Send a query
39
+ @server.send("<iq type='get'><query xmlns='jabber:iq:version'/></iq>") { |reply|
40
+ assert_equal('Test program', reply.query.iname)
41
+ assert_equal('1.0', reply.query.version)
42
+ assert_equal('Ruby Test::Unit', reply.query.os)
43
+ true
44
+ }
45
+ assert_equal(1, calls)
46
+ end
47
+
48
+ def test_simple
49
+ h = Version::SimpleResponder.new(@client, 'Test program', '1.0', 'Ruby Test::Unit')
50
+
51
+ # Send a query
52
+ @server.send("<iq type='get'><query xmlns='jabber:iq:version'/></iq>") { |reply|
53
+ assert_equal('Test program', reply.query.iname)
54
+ assert_equal('1.0', reply.query.version)
55
+ assert_equal('Ruby Test::Unit', reply.query.os)
56
+ true
57
+ }
58
+
59
+ end
60
+ end
@@ -0,0 +1,97 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $:.unshift File::dirname(__FILE__) + '/../../lib'
4
+
5
+ require 'test/unit'
6
+ require 'xmpp4r/rexmladdons'
7
+ require 'xmpp4r/iq'
8
+ require 'xmpp4r/version/iq/version'
9
+ include Jabber
10
+
11
+ class Version::IqQueryVersionTest < Test::Unit::TestCase
12
+ def test_create_empty
13
+ x = Version::IqQueryVersion.new
14
+ assert_equal('jabber:iq:version', x.namespace)
15
+ assert_nil(x.iname)
16
+ assert_nil(x.version)
17
+ assert_nil(x.os)
18
+ end
19
+
20
+ def test_create
21
+ x = Version::IqQueryVersion.new('my test', 'XP')
22
+ assert_equal('jabber:iq:version', x.namespace)
23
+ assert_equal('my test', x.iname)
24
+ assert_equal('XP', x.version)
25
+ assert_equal(nil, x.os)
26
+ end
27
+
28
+ def test_create_with_os
29
+ x = Version::IqQueryVersion.new('superbot', '1.0-final', 'FreeBSD 5.4-RELEASE-p4')
30
+ assert_equal('jabber:iq:version', x.namespace)
31
+ assert_equal('superbot', x.iname)
32
+ assert_equal('1.0-final', x.version)
33
+ assert_equal('FreeBSD 5.4-RELEASE-p4', x.os)
34
+ end
35
+
36
+ def test_import1
37
+ iq = Iq.new
38
+ q = REXML::Element.new('query')
39
+ q.add_namespace('jabber:iq:version')
40
+ iq.add(q)
41
+ iq2 = Iq.new.import(iq)
42
+ assert_equal(Version::IqQueryVersion, iq2.query.class)
43
+ end
44
+
45
+ def test_import2
46
+ iq = Iq.new
47
+ q = REXML::Element.new('query')
48
+ q.add_namespace('jabber:iq:version')
49
+ q.add_element('name').text = 'AstroBot'
50
+ q.add_element('version').text = 'XP'
51
+ q.add_element('os').text = 'FreeDOS'
52
+ iq.add(q)
53
+ iq = Iq.new.import(iq)
54
+ assert_equal(Version::IqQueryVersion, iq.query.class)
55
+ assert_equal('AstroBot', iq.query.iname)
56
+ assert_equal('XP', iq.query.version)
57
+ assert_equal('FreeDOS', iq.query.os)
58
+ end
59
+
60
+ def test_replace
61
+ x = Version::IqQueryVersion.new('name', 'version', 'os')
62
+
63
+ num = 0
64
+ x.each_element('name') { |e| num += 1 }
65
+ assert_equal(1, num)
66
+ num = 0
67
+ x.each_element('version') { |e| num += 1 }
68
+ assert_equal(1, num)
69
+ num = 0
70
+ x.each_element('os') { |e| num += 1 }
71
+ assert_equal(1, num)
72
+
73
+ x.set_iname('N').set_version('V').set_os('O')
74
+
75
+ num = 0
76
+ x.each_element('name') { |e| num += 1 }
77
+ assert_equal(1, num)
78
+ num = 0
79
+ x.each_element('version') { |e| num += 1 }
80
+ assert_equal(1, num)
81
+ num = 0
82
+ x.each_element('os') { |e| num += 1 }
83
+ assert_equal(1, num)
84
+
85
+ x.set_iname(nil).set_version(nil).set_os(nil)
86
+
87
+ num = 0
88
+ x.each_element('name') { |e| num += 1 }
89
+ assert_equal(1, num)
90
+ num = 0
91
+ x.each_element('version') { |e| num += 1 }
92
+ assert_equal(1, num)
93
+ num = 0
94
+ x.each_element('os') { |e| num += 1 }
95
+ assert_equal(0, num)
96
+ end
97
+ end