simple-client 0.0.2

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 (297) hide show
  1. data/.bundle/config +4 -0
  2. data/Gemfile +7 -0
  3. data/Gemfile.lock +23 -0
  4. data/bin/rake +16 -0
  5. data/lib/simple-client/simple-client.rb +229 -0
  6. data/lib/simple-client/version.rb +4 -0
  7. data/lib/simple-client.rb +1 -0
  8. data/test/test_simple-client.rb +236 -0
  9. data/vendor/bundle/ruby/1.8/bin/rake +19 -0
  10. data/vendor/bundle/ruby/1.8/cache/addressable-2.2.8.gem +0 -0
  11. data/vendor/bundle/ruby/1.8/cache/crack-0.3.1.gem +0 -0
  12. data/vendor/bundle/ruby/1.8/cache/rake-0.9.2.2.gem +0 -0
  13. data/vendor/bundle/ruby/1.8/cache/webmock-1.8.8.gem +0 -0
  14. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/CHANGELOG.md +126 -0
  15. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/Gemfile +17 -0
  16. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/Gemfile.lock +35 -0
  17. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/LICENSE.txt +202 -0
  18. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/README.md +83 -0
  19. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/Rakefile +37 -0
  20. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/lib/addressable/idna/native.rb +43 -0
  21. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/lib/addressable/idna/pure.rb +4886 -0
  22. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/lib/addressable/idna.rb +25 -0
  23. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/lib/addressable/template.rb +1047 -0
  24. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/lib/addressable/uri.rb +2288 -0
  25. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/lib/addressable/version.rb +30 -0
  26. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/spec/addressable/idna_spec.rb +216 -0
  27. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/spec/addressable/net_http_compat_spec.rb +26 -0
  28. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/spec/addressable/template_spec.rb +2144 -0
  29. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/spec/addressable/uri_spec.rb +4928 -0
  30. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/tasks/clobber.rake +2 -0
  31. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/tasks/gem.rake +85 -0
  32. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/tasks/git.rake +45 -0
  33. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/tasks/metrics.rake +22 -0
  34. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/tasks/rspec.rake +58 -0
  35. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/tasks/rubyforge.rake +89 -0
  36. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/tasks/yard.rake +27 -0
  37. data/vendor/bundle/ruby/1.8/gems/addressable-2.2.8/website/index.html +110 -0
  38. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/History +25 -0
  39. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/LICENSE +20 -0
  40. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/README.rdoc +42 -0
  41. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/Rakefile +32 -0
  42. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/crack.gemspec +53 -0
  43. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/lib/crack/json.rb +79 -0
  44. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/lib/crack/util.rb +17 -0
  45. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/lib/crack/xml.rb +232 -0
  46. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/lib/crack.rb +8 -0
  47. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/test/crack_test.rb +4 -0
  48. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/test/data/twittersearch-firefox.json +1 -0
  49. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/test/data/twittersearch-ie.json +1 -0
  50. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/test/hash_test.rb +28 -0
  51. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/test/json_test.rb +82 -0
  52. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/test/parser_test.rb +27 -0
  53. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/test/string_test.rb +31 -0
  54. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/test/test_helper.rb +12 -0
  55. data/vendor/bundle/ruby/1.8/gems/crack-0.3.1/test/xml_test.rb +499 -0
  56. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/CHANGES +522 -0
  57. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/MIT-LICENSE +21 -0
  58. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/README.rdoc +197 -0
  59. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/Rakefile +369 -0
  60. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/TODO +20 -0
  61. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/bin/rake +33 -0
  62. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/command_line_usage.rdoc +114 -0
  63. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/example/Rakefile1 +38 -0
  64. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/example/Rakefile2 +35 -0
  65. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/example/a.c +6 -0
  66. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/example/b.c +6 -0
  67. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/example/main.c +11 -0
  68. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/glossary.rdoc +51 -0
  69. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/jamis.rb +591 -0
  70. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/proto_rake.rdoc +127 -0
  71. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/rake.1.gz +0 -0
  72. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/rakefile.rdoc +557 -0
  73. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/rational.rdoc +151 -0
  74. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.4.14.rdoc +23 -0
  75. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.4.15.rdoc +35 -0
  76. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.5.0.rdoc +53 -0
  77. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.5.3.rdoc +78 -0
  78. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.5.4.rdoc +46 -0
  79. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.6.0.rdoc +141 -0
  80. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.7.0.rdoc +119 -0
  81. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.7.1.rdoc +59 -0
  82. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.7.2.rdoc +121 -0
  83. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.7.3.rdoc +47 -0
  84. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.8.0.rdoc +114 -0
  85. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.8.2.rdoc +165 -0
  86. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.8.3.rdoc +112 -0
  87. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.8.4.rdoc +147 -0
  88. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.8.5.rdoc +53 -0
  89. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.8.6.rdoc +55 -0
  90. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.8.7.rdoc +55 -0
  91. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.9.0.rdoc +112 -0
  92. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.9.1.rdoc +52 -0
  93. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/doc/release_notes/rake-0.9.2.rdoc +49 -0
  94. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/install.rb +90 -0
  95. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/alt_system.rb +109 -0
  96. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/application.rb +595 -0
  97. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/classic_namespace.rb +11 -0
  98. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/clean.rb +32 -0
  99. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/cloneable.rb +25 -0
  100. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/contrib/compositepublisher.rb +21 -0
  101. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/contrib/ftptools.rb +150 -0
  102. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/contrib/publisher.rb +73 -0
  103. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/contrib/rubyforgepublisher.rb +16 -0
  104. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/contrib/sshpublisher.rb +50 -0
  105. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/contrib/sys.rb +191 -0
  106. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/default_loader.rb +10 -0
  107. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/dsl_definition.rb +176 -0
  108. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/early_time.rb +18 -0
  109. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/ext/core.rb +27 -0
  110. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/ext/module.rb +39 -0
  111. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/ext/string.rb +167 -0
  112. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/ext/time.rb +14 -0
  113. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/file_creation_task.rb +24 -0
  114. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/file_list.rb +403 -0
  115. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/file_task.rb +47 -0
  116. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/file_utils.rb +114 -0
  117. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/file_utils_ext.rb +145 -0
  118. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/gempackagetask.rb +15 -0
  119. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/invocation_chain.rb +51 -0
  120. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/invocation_exception_mixin.rb +16 -0
  121. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/loaders/makefile.rb +40 -0
  122. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/multi_task.rb +16 -0
  123. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/name_space.rb +25 -0
  124. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/packagetask.rb +185 -0
  125. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/pathmap.rb +1 -0
  126. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/pseudo_status.rb +24 -0
  127. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/rake_module.rb +29 -0
  128. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb +22 -0
  129. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/rdoctask.rb +234 -0
  130. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/ruby182_test_unit_fix.rb +25 -0
  131. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/rule_recursion_overflow_error.rb +20 -0
  132. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/runtest.rb +21 -0
  133. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/task.rb +327 -0
  134. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/task_argument_error.rb +7 -0
  135. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/task_arguments.rb +78 -0
  136. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/task_manager.rb +307 -0
  137. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/tasklib.rb +22 -0
  138. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/testtask.rb +191 -0
  139. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/version.rb +8 -0
  140. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake/win32.rb +55 -0
  141. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/lib/rake.rb +69 -0
  142. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/file_creation.rb +34 -0
  143. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/helper.rb +492 -0
  144. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake.rb +40 -0
  145. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_application.rb +489 -0
  146. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_application_options.rb +335 -0
  147. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_clean.rb +14 -0
  148. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_definitions.rb +80 -0
  149. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_directory_task.rb +46 -0
  150. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_dsl.rb +77 -0
  151. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_early_time.rb +31 -0
  152. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_extension.rb +59 -0
  153. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_file_creation_task.rb +56 -0
  154. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_file_list.rb +628 -0
  155. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_file_list_path_map.rb +8 -0
  156. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_file_task.rb +102 -0
  157. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_file_utils.rb +305 -0
  158. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_ftp_file.rb +59 -0
  159. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_functional.rb +450 -0
  160. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_invocation_chain.rb +52 -0
  161. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_makefile_loader.rb +44 -0
  162. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_multi_task.rb +51 -0
  163. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_name_space.rb +43 -0
  164. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_package_task.rb +79 -0
  165. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_path_map.rb +157 -0
  166. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_path_map_explode.rb +34 -0
  167. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_path_map_partial.rb +18 -0
  168. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_pseudo_status.rb +21 -0
  169. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_rake_test_loader.rb +21 -0
  170. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_rdoc_task.rb +83 -0
  171. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_require.rb +40 -0
  172. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_rules.rb +327 -0
  173. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_task.rb +267 -0
  174. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_task_argument_parsing.rb +103 -0
  175. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_task_arguments.rb +88 -0
  176. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_task_lib.rb +9 -0
  177. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_task_manager.rb +157 -0
  178. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_task_manager_argument_resolution.rb +36 -0
  179. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_task_with_arguments.rb +173 -0
  180. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_test_task.rb +120 -0
  181. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_top_level_functions.rb +111 -0
  182. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_rake_win32.rb +72 -0
  183. data/vendor/bundle/ruby/1.8/gems/rake-0.9.2.2/test/test_sys.rb +20 -0
  184. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/CHANGELOG.md +749 -0
  185. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/Gemfile +21 -0
  186. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/Guardfile +24 -0
  187. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/LICENSE +20 -0
  188. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/README.md +728 -0
  189. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/Rakefile +65 -0
  190. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/api.rb +63 -0
  191. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/assertion_failure.rb +11 -0
  192. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/callback_registry.rb +35 -0
  193. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/config.rb +10 -0
  194. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/cucumber.rb +8 -0
  195. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/deprecation.rb +9 -0
  196. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/errors.rb +33 -0
  197. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/http_lib_adapters/curb_adapter.rb +287 -0
  198. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/http_lib_adapters/em_http_request/em_http_request_0_x.rb +151 -0
  199. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/http_lib_adapters/em_http_request/em_http_request_1_x.rb +212 -0
  200. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/http_lib_adapters/em_http_request_adapter.rb +11 -0
  201. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/http_lib_adapters/excon_adapter.rb +95 -0
  202. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/http_lib_adapters/http_lib_adapter.rb +7 -0
  203. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/http_lib_adapters/http_lib_adapter_registry.rb +19 -0
  204. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/http_lib_adapters/httpclient_adapter.rb +193 -0
  205. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/http_lib_adapters/net_http.rb +279 -0
  206. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/http_lib_adapters/net_http_response.rb +34 -0
  207. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/http_lib_adapters/patron_adapter.rb +129 -0
  208. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/http_lib_adapters/typhoeus_hydra_adapter.rb +180 -0
  209. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/matchers/hash_including_matcher.rb +25 -0
  210. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/minitest.rb +15 -0
  211. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/rack_response.rb +63 -0
  212. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/request_execution_verifier.rb +56 -0
  213. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/request_pattern.rb +282 -0
  214. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/request_registry.rb +35 -0
  215. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/request_signature.rb +50 -0
  216. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/request_stub.rb +97 -0
  217. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/response.rb +144 -0
  218. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/responses_sequence.rb +40 -0
  219. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/rspec/matchers/request_pattern_matcher.rb +42 -0
  220. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/rspec/matchers/webmock_matcher.rb +46 -0
  221. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/rspec/matchers.rb +28 -0
  222. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/rspec.rb +33 -0
  223. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/stub_registry.rb +61 -0
  224. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/stub_request_snippet.rb +30 -0
  225. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/test_unit.rb +20 -0
  226. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/util/hash_counter.rb +25 -0
  227. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/util/hash_keys_stringifier.rb +23 -0
  228. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/util/headers.rb +43 -0
  229. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/util/json.rb +54 -0
  230. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/util/uri.rb +101 -0
  231. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/util/version_checker.rb +73 -0
  232. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/version.rb +3 -0
  233. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock/webmock.rb +124 -0
  234. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/lib/webmock.rb +49 -0
  235. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/minitest/test_helper.rb +29 -0
  236. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/minitest/test_webmock.rb +6 -0
  237. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/minitest/webmock_spec.rb +50 -0
  238. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/curb/curb_spec.rb +340 -0
  239. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/curb/curb_spec_helper.rb +144 -0
  240. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/em_http_request/em_http_request_spec.rb +183 -0
  241. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/em_http_request/em_http_request_spec_helper.rb +72 -0
  242. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/excon/excon_spec.rb +15 -0
  243. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/excon/excon_spec_helper.rb +38 -0
  244. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/httpclient/httpclient_spec.rb +76 -0
  245. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/httpclient/httpclient_spec_helper.rb +48 -0
  246. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/net_http/net_http_shared.rb +125 -0
  247. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/net_http/net_http_spec.rb +255 -0
  248. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/net_http/net_http_spec_helper.rb +55 -0
  249. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/net_http/real_net_http_spec.rb +20 -0
  250. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/patron/patron_spec.rb +136 -0
  251. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/patron/patron_spec_helper.rb +50 -0
  252. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/shared/allowing_and_disabling_net_connect.rb +142 -0
  253. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/shared/callbacks.rb +146 -0
  254. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/shared/complex_cross_concern_behaviors.rb +36 -0
  255. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/shared/enabling_and_disabling_webmock.rb +95 -0
  256. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/shared/precedence_of_stubs.rb +15 -0
  257. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/shared/request_expectations.rb +666 -0
  258. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/shared/returning_declared_responses.rb +367 -0
  259. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/shared/stubbing_requests.rb +447 -0
  260. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/typhoeus/typhoeus_hydra_spec.rb +74 -0
  261. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/typhoeus/typhoeus_hydra_spec_helper.rb +56 -0
  262. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/acceptance/webmock_shared.rb +41 -0
  263. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/quality_spec.rb +60 -0
  264. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/spec_helper.rb +57 -0
  265. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/support/example_curl_output.txt +22 -0
  266. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/support/my_rack_app.rb +48 -0
  267. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/support/network_connection.rb +25 -0
  268. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/support/webmock_server.rb +65 -0
  269. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/errors_spec.rb +32 -0
  270. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/http_lib_adapters/http_lib_adapter_registry_spec.rb +17 -0
  271. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/http_lib_adapters/http_lib_adapter_spec.rb +12 -0
  272. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/rack_response_spec.rb +74 -0
  273. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/request_execution_verifier_spec.rb +100 -0
  274. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/request_pattern_spec.rb +479 -0
  275. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/request_registry_spec.rb +75 -0
  276. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/request_signature_spec.rb +113 -0
  277. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/request_stub_spec.rb +198 -0
  278. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/response_spec.rb +267 -0
  279. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/stub_registry_spec.rb +86 -0
  280. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/stub_request_snippet_spec.rb +95 -0
  281. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/util/hash_counter_spec.rb +39 -0
  282. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/util/hash_keys_stringifier_spec.rb +27 -0
  283. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/util/headers_spec.rb +28 -0
  284. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/util/json_spec.rb +7 -0
  285. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/util/uri_spec.rb +257 -0
  286. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/util/version_checker_spec.rb +59 -0
  287. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/spec/unit/webmock_spec.rb +7 -0
  288. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/test/http_request.rb +24 -0
  289. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/test/shared_test.rb +76 -0
  290. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/test/test_helper.rb +23 -0
  291. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/test/test_webmock.rb +6 -0
  292. data/vendor/bundle/ruby/1.8/gems/webmock-1.8.8/webmock.gemspec +35 -0
  293. data/vendor/bundle/ruby/1.8/specifications/addressable-2.2.8.gemspec +38 -0
  294. data/vendor/bundle/ruby/1.8/specifications/crack-0.3.1.gemspec +25 -0
  295. data/vendor/bundle/ruby/1.8/specifications/rake-0.9.2.2.gemspec +33 -0
  296. data/vendor/bundle/ruby/1.8/specifications/webmock-1.8.8.gemspec +61 -0
  297. metadata +390 -0
@@ -0,0 +1,73 @@
1
+ # This code was created based on https://github.com/myronmarston/vcr/blob/master/lib/vcr/util/version_checker.rb
2
+ # Thanks to @myronmarston
3
+
4
+ module WebMock
5
+ class VersionChecker
6
+ def initialize(library_name, library_version, min_patch_level, max_minor_version = nil)
7
+ @library_name, @library_version = library_name, library_version
8
+ @min_patch_level, @max_minor_version = min_patch_level, max_minor_version
9
+
10
+ @major, @minor, @patch = parse_version(library_version)
11
+ @min_major, @min_minor, @min_patch = parse_version(min_patch_level)
12
+ @max_major, @max_minor = parse_version(max_minor_version) if max_minor_version
13
+
14
+ @comparison_result = compare_version
15
+ end
16
+
17
+ def check_version!
18
+ warn_about_too_low if too_low?
19
+ warn_about_too_high if too_high?
20
+ end
21
+
22
+ private
23
+
24
+ def too_low?
25
+ @comparison_result == :too_low
26
+ end
27
+
28
+ def too_high?
29
+ @comparison_result == :too_high
30
+ end
31
+
32
+ def warn_about_too_low
33
+ warn_in_red "You are using #{@library_name} #{@library_version}. " +
34
+ "WebMock supports version #{version_requirement}."
35
+ end
36
+
37
+ def warn_about_too_high
38
+ warn_in_red "You are using #{@library_name} #{@library_version}. " +
39
+ "WebMock is known to work with #{@library_name} #{version_requirement}. " +
40
+ "It may not work with this version."
41
+ end
42
+
43
+ def warn_in_red(text)
44
+ Kernel.warn colorize(text, "\e[31m")
45
+ end
46
+
47
+ def compare_version
48
+ case
49
+ when @major < @min_major then :too_low
50
+ when @max_major && @major > @max_major then :too_high
51
+ when @major > @min_major then :ok
52
+ when @minor < @min_minor then :too_low
53
+ when @max_minor && @minor > @max_minor then :too_high
54
+ when @minor > @min_minor then :ok
55
+ when @patch < @min_patch then :too_low
56
+ end
57
+ end
58
+
59
+ def version_requirement
60
+ req = ">= #{@min_patch_level}"
61
+ req += ", < #{@max_major}.#{@max_minor + 1}" if @max_minor
62
+ req
63
+ end
64
+
65
+ def parse_version(version)
66
+ version.split('.').map { |v| v.to_i }
67
+ end
68
+
69
+ def colorize(text, color_code)
70
+ "#{color_code}#{text}\e[0m"
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,3 @@
1
+ module WebMock
2
+ VERSION = '1.8.8' unless defined?(::WebMock::VERSION)
3
+ end
@@ -0,0 +1,124 @@
1
+ module WebMock
2
+
3
+ def self.included(clazz)
4
+ WebMock::Deprecation.warning("include WebMock is deprecated. Please include WebMock::API instead")
5
+ if clazz.instance_methods.map(&:to_s).include?('request')
6
+ warn "WebMock#request was not included in #{clazz} to avoid name collision"
7
+ else
8
+ clazz.class_eval do
9
+ def request(method, uri)
10
+ WebMock::Deprecation.warning("WebMock#request is deprecated. Please use WebMock::API#a_request method instead")
11
+ WebMock.a_request(method, uri)
12
+ end
13
+ end
14
+ end
15
+ end
16
+
17
+ include WebMock::API
18
+ extend WebMock::API
19
+
20
+ class << self
21
+ alias :request :a_request
22
+ end
23
+
24
+ def self.version
25
+ VERSION
26
+ end
27
+
28
+ def self.disable!(options = {})
29
+ except = [options[:except]].flatten.compact
30
+ HttpLibAdapterRegistry.instance.each_adapter do |name, adapter|
31
+ adapter.enable!
32
+ adapter.disable! unless except.include?(name)
33
+ end
34
+ end
35
+
36
+ def self.enable!(options = {})
37
+ except = [options[:except]].flatten.compact
38
+ HttpLibAdapterRegistry.instance.each_adapter do |name, adapter|
39
+ adapter.disable!
40
+ adapter.enable! unless except.include?(name)
41
+ end
42
+ end
43
+
44
+ def self.allow_net_connect!(options = {})
45
+ Config.instance.allow_net_connect = true
46
+ Config.instance.net_http_connect_on_start = options[:net_http_connect_on_start]
47
+ end
48
+
49
+ def self.disable_net_connect!(options = {})
50
+ Config.instance.allow_net_connect = false
51
+ Config.instance.allow_localhost = options[:allow_localhost]
52
+ Config.instance.allow = options[:allow]
53
+ Config.instance.net_http_connect_on_start = options[:net_http_connect_on_start]
54
+ end
55
+
56
+ def self.net_connect_allowed?(uri = nil)
57
+ if uri.is_a?(String)
58
+ uri = WebMock::Util::URI.normalize_uri(uri)
59
+ end
60
+
61
+ Config.instance.allow_net_connect ||
62
+ (
63
+ Config.instance.allow_localhost && WebMock::Util::URI.is_uri_localhost?(uri)) ||
64
+ Config.instance.allow && (
65
+ (Config.instance.allow.kind_of?(Regexp) && uri.to_s =~ Config.instance.allow) ||
66
+ (
67
+ Config.instance.allow.respond_to?(:include?) &&
68
+ (
69
+ Config.instance.allow.include?(uri.host) ||
70
+ Config.instance.allow.include?("#{uri.host}:#{uri.port}")
71
+ )
72
+ )
73
+ )
74
+ end
75
+
76
+ def self.reset!
77
+ WebMock::RequestRegistry.instance.reset!
78
+ WebMock::StubRegistry.instance.reset!
79
+ end
80
+
81
+ def self.reset_webmock
82
+ WebMock::Deprecation.warning("WebMock.reset_webmock is deprecated. Please use WebMock.reset! method instead")
83
+ reset!
84
+ end
85
+
86
+ def self.reset_callbacks
87
+ WebMock::CallbackRegistry.reset
88
+ end
89
+
90
+ def self.after_request(options={}, &block)
91
+ WebMock::CallbackRegistry.add_callback(options, block)
92
+ end
93
+
94
+ def self.registered_request?(request_signature)
95
+ WebMock::StubRegistry.instance.registered_request?(request_signature)
96
+ end
97
+
98
+ def self.print_executed_requests
99
+ puts WebMock::RequestExecutionVerifier.executed_requests_message
100
+ end
101
+
102
+ def self.globally_stub_request(&block)
103
+ WebMock::StubRegistry.instance.register_global_stub(&block)
104
+ end
105
+
106
+ %w(
107
+ allow_net_connect!
108
+ disable_net_connect!
109
+ net_connect_allowed?
110
+ reset_webmock
111
+ reset_callbacks
112
+ after_request
113
+ registered_request?
114
+ ).each do |method|
115
+ self.class_eval(%Q(
116
+ def #{method}(*args, &block)
117
+ WebMock::Deprecation.warning("WebMock##{method} instance method is deprecated. Please use WebMock.#{method} class method instead")
118
+ WebMock.#{method}(*args, &block)
119
+ end
120
+ ))
121
+ end
122
+
123
+ self.enable!
124
+ end
@@ -0,0 +1,49 @@
1
+ require 'singleton'
2
+
3
+ require 'addressable/uri'
4
+ require 'crack'
5
+
6
+ require 'webmock/deprecation'
7
+ require 'webmock/version'
8
+
9
+ require 'webmock/errors'
10
+
11
+ require 'webmock/util/uri'
12
+ require 'webmock/util/headers'
13
+ require 'webmock/util/hash_counter'
14
+ require 'webmock/util/hash_keys_stringifier'
15
+ require 'webmock/util/json'
16
+ require 'webmock/util/version_checker'
17
+
18
+ require 'webmock/matchers/hash_including_matcher'
19
+
20
+ require 'webmock/request_pattern'
21
+ require 'webmock/request_signature'
22
+ require 'webmock/responses_sequence'
23
+ require 'webmock/request_stub'
24
+ require 'webmock/response'
25
+ require 'webmock/rack_response'
26
+
27
+ require 'webmock/stub_request_snippet'
28
+
29
+ require 'webmock/assertion_failure'
30
+ require 'webmock/request_execution_verifier'
31
+ require 'webmock/config'
32
+ require 'webmock/callback_registry'
33
+ require 'webmock/request_registry'
34
+ require 'webmock/stub_registry'
35
+ require 'webmock/api'
36
+
37
+ require 'webmock/http_lib_adapters/http_lib_adapter_registry'
38
+ require 'webmock/http_lib_adapters/http_lib_adapter'
39
+ require 'webmock/http_lib_adapters/net_http'
40
+ require 'webmock/http_lib_adapters/httpclient_adapter'
41
+ require 'webmock/http_lib_adapters/patron_adapter'
42
+ require 'webmock/http_lib_adapters/curb_adapter'
43
+ require 'webmock/http_lib_adapters/em_http_request_adapter'
44
+ require 'webmock/http_lib_adapters/typhoeus_hydra_adapter'
45
+ require 'webmock/http_lib_adapters/excon_adapter'
46
+
47
+ require 'webmock/webmock'
48
+
49
+
@@ -0,0 +1,29 @@
1
+ require 'rubygems'
2
+
3
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
4
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
5
+
6
+ require File.expand_path(File.dirname(__FILE__) + '/../test/http_request')
7
+
8
+ gem "minitest"
9
+ require 'minitest/autorun'
10
+ require 'webmock/minitest'
11
+
12
+ class MiniTest::Unit::TestCase
13
+ def assert_raise(*exp, &block)
14
+ assert_raises(*exp, &block)
15
+ end
16
+
17
+ def assert_raise_with_message(e, message, &block)
18
+ e = assert_raises(e, &block)
19
+ if message.is_a?(Regexp)
20
+ assert_match(message, e.message)
21
+ else
22
+ assert_equal(message, e.message)
23
+ end
24
+ end
25
+
26
+ def assert_fail(message, &block)
27
+ assert_raise_with_message(MiniTest::Assertion, message, &block)
28
+ end
29
+ end
@@ -0,0 +1,6 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/test_helper')
2
+ require File.expand_path(File.dirname(__FILE__) + '/../test/shared_test')
3
+
4
+ class MiniTestWebMock < MiniTest::Unit::TestCase
5
+ include SharedTest
6
+ end
@@ -0,0 +1,50 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/test_helper')
2
+
3
+ describe "Webmock" do
4
+ include HttpRequestTestHelper
5
+
6
+ before do
7
+ @stub_http = stub_http_request(:any, "http://www.example.com")
8
+ @stub_https = stub_http_request(:any, "https://www.example.com")
9
+ end
10
+
11
+ it "should raise error on non stubbed request" do
12
+ lambda { http_request(:get, "http://www.example.net/") }.must_raise(WebMock::NetConnectNotAllowedError)
13
+ end
14
+
15
+ it "should verify that expected request occured" do
16
+ http_request(:get, "http://www.example.com/")
17
+ assert_requested(:get, "http://www.example.com", :times => 1)
18
+ assert_requested(:get, "http://www.example.com")
19
+ end
20
+
21
+ it "should verify that expected http stub occured" do
22
+ http_request(:get, "http://www.example.com/")
23
+ assert_requested(@stub_http, :times => 1)
24
+ assert_requested(@stub_http)
25
+ end
26
+
27
+ it "should verify that expected https stub occured" do
28
+ http_request(:get, "https://www.example.com/")
29
+ http_request(:get, "https://www.example.com/")
30
+ assert_requested(@stub_https, :times => 2)
31
+ end
32
+
33
+ it "should verify that expect request didn't occur" do
34
+ expected_message = "The request GET http://www.example.com/ was expected to execute 1 time but it executed 0 times"
35
+ expected_message << "\n\nThe following requests were made:\n\nNo requests were made.\n============================================================"
36
+ assert_fail(expected_message) do
37
+ assert_requested(:get, "http://www.example.com")
38
+ end
39
+ end
40
+
41
+ it "should verify that expect stub didn't occur" do
42
+ expected_message = "The request ANY http://www.example.com/ was expected to execute 1 time but it executed 0 times"
43
+ expected_message << "\n\nThe following requests were made:\n\nNo requests were made.\n============================================================"
44
+ assert_fail(expected_message) do
45
+ assert_requested(@stub_http)
46
+ end
47
+ end
48
+
49
+ end
50
+
@@ -0,0 +1,340 @@
1
+ require 'spec_helper'
2
+ require 'acceptance/webmock_shared'
3
+
4
+ unless RUBY_PLATFORM =~ /java/
5
+ require 'acceptance/curb/curb_spec_helper'
6
+
7
+ shared_examples_for "Curb" do
8
+ include CurbSpecHelper
9
+
10
+ include_examples "with WebMock"
11
+
12
+ describe "when doing PUTs" do
13
+ it "should stub them" do
14
+ stub_request(:put, "www.example.com").with(:body => "01234")
15
+ http_request(:put, "http://www.example.com", :body => "01234").
16
+ status.should == "200"
17
+ end
18
+ end
19
+ end
20
+
21
+ describe "Curb features" do
22
+ before(:each) do
23
+ WebMock.disable_net_connect!
24
+ WebMock.reset!
25
+ end
26
+
27
+ describe "callbacks" do
28
+ before(:each) do
29
+ @curl = Curl::Easy.new
30
+ @curl.url = "http://example.com"
31
+ end
32
+
33
+ it "should call on_success with 2xx response" do
34
+ body = "on_success fired"
35
+ stub_request(:any, "example.com").to_return(:body => body)
36
+
37
+ test = nil
38
+ @curl.on_success do |c|
39
+ test = c.body_str
40
+ end
41
+ @curl.http_get
42
+ test.should == body
43
+ end
44
+
45
+ it "should call on_failure with 4xx response" do
46
+ response_code = 403
47
+ stub_request(:any, "example.com").
48
+ to_return(:status => [response_code, "None shall pass"])
49
+
50
+ test = nil
51
+ @curl.on_failure do |c, code|
52
+ test = code
53
+ end
54
+ @curl.http_get
55
+ test.should == response_code
56
+ end
57
+
58
+ it "should call on_failure with 5xx response" do
59
+ response_code = 599
60
+ stub_request(:any, "example.com").
61
+ to_return(:status => [response_code, "Server On Fire"])
62
+
63
+ test = nil
64
+ @curl.on_failure do |c, code|
65
+ test = code
66
+ end
67
+ @curl.http_get
68
+ test.should == response_code
69
+ end
70
+
71
+ it "should call on_body when response body is read" do
72
+ body = "on_body fired"
73
+ stub_request(:any, "example.com").
74
+ to_return(:body => body)
75
+
76
+ test = nil
77
+ @curl.on_body do |data|
78
+ test = data
79
+ end
80
+ @curl.http_get
81
+ test.should == body
82
+ end
83
+
84
+ it "should call on_header when response headers are read" do
85
+ stub_request(:any, "example.com").
86
+ to_return(:headers => {:one => 1})
87
+
88
+ test = nil
89
+ @curl.on_header do |data|
90
+ test = data
91
+ end
92
+ @curl.http_get
93
+ test.should match(/One: 1/)
94
+ end
95
+
96
+ it "should call on_complete when request is complete" do
97
+ body = "on_complete fired"
98
+ stub_request(:any, "example.com").to_return(:body => body)
99
+
100
+ test = nil
101
+ @curl.on_complete do |curl|
102
+ test = curl.body_str
103
+ end
104
+ @curl.http_get
105
+ test.should == body
106
+ end
107
+
108
+ it "should call on_progress when portion of response body is read" do
109
+ stub_request(:any, "example.com").to_return(:body => "01234")
110
+
111
+ test = nil
112
+ @curl.on_progress do |*args|
113
+ args.length.should == 4
114
+ args.each {|arg| arg.is_a?(Float).should == true }
115
+ test = true
116
+ end
117
+ @curl.http_get
118
+ test.should == true
119
+ end
120
+
121
+ it "should call callbacks in correct order on successful request" do
122
+ stub_request(:any, "example.com")
123
+ order = []
124
+ @curl.on_success {|*args| order << :on_success }
125
+ @curl.on_failure {|*args| order << :on_failure }
126
+ @curl.on_header {|*args| order << :on_header }
127
+ @curl.on_body {|*args| order << :on_body }
128
+ @curl.on_complete {|*args| order << :on_complete }
129
+ @curl.on_progress {|*args| order << :on_progress }
130
+ @curl.http_get
131
+
132
+ order.should == [:on_progress,:on_header,:on_body,:on_complete,:on_success]
133
+ end
134
+
135
+ it "should call callbacks in correct order on failed request" do
136
+ stub_request(:any, "example.com").to_return(:status => [500, ""])
137
+ order = []
138
+ @curl.on_success {|*args| order << :on_success }
139
+ @curl.on_failure {|*args| order << :on_failure }
140
+ @curl.on_header {|*args| order << :on_header }
141
+ @curl.on_body {|*args| order << :on_body }
142
+ @curl.on_complete {|*args| order << :on_complete }
143
+ @curl.on_progress {|*args| order << :on_progress }
144
+ @curl.http_get
145
+
146
+ order.should == [:on_progress,:on_header,:on_body,:on_complete,:on_failure]
147
+ end
148
+ end
149
+
150
+ describe '#last_effective_url' do
151
+ before(:each) do
152
+ @curl = Curl::Easy.new
153
+ @curl.url = "http://example.com"
154
+ end
155
+
156
+ context 'when not following redirects' do
157
+ before { @curl.follow_location = false }
158
+
159
+ it 'should be the same as #url even with a location header' do
160
+ stub_request(:any, 'example.com').
161
+ to_return(:body => "abc",
162
+ :status => 302,
163
+ :headers => { 'Location' => 'http://www.example.com' })
164
+
165
+ @curl.http_get
166
+ @curl.last_effective_url.should == 'http://example.com'
167
+ end
168
+ end
169
+
170
+ context 'when following redirects' do
171
+ before { @curl.follow_location = true }
172
+
173
+ it 'should be the same as #url when no location header is present' do
174
+ stub_request(:any, "example.com")
175
+ @curl.http_get
176
+ @curl.last_effective_url.should == 'http://example.com'
177
+ end
178
+
179
+ it 'should be the value of the location header when present' do
180
+ stub_request(:any, 'example.com').
181
+ to_return(:headers => { 'Location' => 'http://www.example.com' })
182
+ stub_request(:any, 'www.example.com')
183
+
184
+ @curl.http_get
185
+ @curl.last_effective_url.should == 'http://www.example.com'
186
+ end
187
+
188
+ it 'should work with more than one redirect' do
189
+ stub_request(:any, 'example.com').
190
+ to_return(:headers => { 'Location' => 'http://www.example.com' })
191
+ stub_request(:any, 'www.example.com').
192
+ to_return(:headers => { 'Location' => 'http://blog.example.com' })
193
+ stub_request(:any, 'blog.example.com')
194
+
195
+ @curl.http_get
196
+ @curl.last_effective_url.should == 'http://blog.example.com'
197
+ end
198
+
199
+ it 'should maintain the original url' do
200
+ stub_request(:any, 'example.com').
201
+ to_return(:headers => { 'Location' => 'http://www.example.com' })
202
+ stub_request(:any, 'www.example.com')
203
+
204
+ @curl.http_get
205
+ @curl.url.should == 'http://example.com'
206
+ end
207
+
208
+ it 'should have the redirected-to attrs (body, response code)' do
209
+ stub_request(:any, 'example.com').
210
+ to_return(:body => 'request A',
211
+ :status => 302,
212
+ :headers => { 'Location' => 'http://www.example.com' })
213
+ stub_request(:any, 'www.example.com').to_return(:body => 'request B')
214
+
215
+ @curl.http_get
216
+ @curl.body_str.should == 'request B'
217
+ @curl.response_code.should == 200
218
+ end
219
+
220
+ it 'should follow more than one redirect' do
221
+ stub_request(:any, 'example.com').
222
+ to_return(:headers => { 'Location' => 'http://www.example.com' })
223
+ stub_request(:any, 'www.example.com').
224
+ to_return(:headers => { 'Location' => 'http://blog.example.com' })
225
+ stub_request(:any, 'blog.example.com').to_return(:body => 'blog post')
226
+
227
+ @curl.http_get
228
+ @curl.url.should == 'http://example.com'
229
+ @curl.body_str.should == 'blog post'
230
+ end
231
+ end
232
+ end
233
+
234
+ describe "#content_type" do
235
+ before(:each) do
236
+ @curl = Curl::Easy.new
237
+ @curl.url = "http://example.com"
238
+ end
239
+
240
+ context "when response includes Content-Type header" do
241
+ it "returns correct content_type" do
242
+ content_type = "application/json"
243
+
244
+ stub_request(:any, 'example.com').
245
+ to_return(:body => "abc",
246
+ :status => 200,
247
+ :headers => { 'Content-Type' => content_type })
248
+
249
+ @curl.http_get
250
+ @curl.content_type.should == content_type
251
+ end
252
+ end
253
+
254
+ context "when response does not include Content-Type header" do
255
+ it "returns nil for content_type" do
256
+ content_type = "application/json"
257
+
258
+ stub_request(:any, 'example.com').
259
+ to_return(:body => "abc",
260
+ :status => 200 )
261
+
262
+ @curl.http_get
263
+ @curl.content_type.should be_nil
264
+ end
265
+ end
266
+ end
267
+ end
268
+
269
+ describe "Webmock with Curb" do
270
+ describe "using #http for requests" do
271
+ it_should_behave_like "Curb"
272
+ include CurbSpecHelper::DynamicHttp
273
+
274
+ it "should work with uppercase arguments" do
275
+ stub_request(:get, "www.example.com").to_return(:body => "abc")
276
+
277
+ c = Curl::Easy.new
278
+ c.url = "http://www.example.com"
279
+ c.http(:GET)
280
+ c.body_str.should == "abc"
281
+ end
282
+ end
283
+
284
+ describe "using #http_* methods for requests" do
285
+ it_should_behave_like "Curb"
286
+ include CurbSpecHelper::NamedHttp
287
+
288
+ it "should work with blank arguments for post" do
289
+ stub_request(:post, "www.example.com").with(:body => "01234")
290
+ c = Curl::Easy.new
291
+ c.url = "http://www.example.com"
292
+ c.post_body = "01234"
293
+ c.http_post
294
+ c.response_code.should == 200
295
+ end
296
+
297
+ it "should work with several body arguments for post using the class method" do
298
+ stub_request(:post, "www.example.com").with(:user => {:first_name=>'Bartosz', :last_name=>'Blimke'})
299
+ c = Curl::Easy.http_post "http://www.example.com", 'user[first_name]=Bartosz', 'user[last_name]=Blimke'
300
+ c.response_code.should == 200
301
+ end
302
+
303
+ it "should work with blank arguments for put" do
304
+ stub_request(:put, "www.example.com").with(:body => "01234")
305
+ c = Curl::Easy.new
306
+ c.url = "http://www.example.com"
307
+ c.put_data = "01234"
308
+ c.http_put
309
+ c.response_code.should == 200
310
+ end
311
+
312
+ it "should work with multiple arguments for post" do
313
+ data = { :name => "john", :address => "111 example ave" }
314
+
315
+ stub_request(:post, "www.example.com").with(:body => data)
316
+ c = Curl::Easy.new
317
+ c.url = "http://www.example.com"
318
+ c.http_post Curl::PostField.content('name', data[:name]), Curl::PostField.content('address', data[:address])
319
+
320
+ c.response_code.should == 200
321
+ end
322
+
323
+ end
324
+
325
+ describe "using #perform for requests" do
326
+ it_should_behave_like "Curb"
327
+ include CurbSpecHelper::Perform
328
+ end
329
+
330
+ describe "using .http_* methods for requests" do
331
+ it_should_behave_like "Curb"
332
+ include CurbSpecHelper::ClassNamedHttp
333
+ end
334
+
335
+ describe "using .perform for requests" do
336
+ it_should_behave_like "Curb"
337
+ include CurbSpecHelper::ClassPerform
338
+ end
339
+ end
340
+ end