logstash-output-scalyr 0.1.8 → 0.1.13

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 (320) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +27 -0
  3. data/Gemfile +5 -0
  4. data/README.md +3 -2
  5. data/lib/logstash/outputs/scalyr.rb +226 -138
  6. data/lib/scalyr/common/client.rb +76 -50
  7. data/lib/scalyr/common/util.rb +7 -0
  8. data/lib/scalyr/constants.rb +2 -0
  9. data/logstash-output-scalyr.gemspec +1 -1
  10. data/spec/logstash/outputs/scalyr_integration_spec.rb +148 -8
  11. data/spec/logstash/outputs/scalyr_spec.rb +12 -6
  12. data/vendor/bundle/jruby/2.5.0/bin/htmldiff +1 -1
  13. data/vendor/bundle/jruby/2.5.0/bin/ldiff +1 -1
  14. data/vendor/bundle/jruby/2.5.0/cache/addressable-2.7.0.gem +0 -0
  15. data/vendor/bundle/jruby/2.5.0/cache/crack-0.4.5.gem +0 -0
  16. data/vendor/bundle/jruby/2.5.0/cache/hashdiff-1.0.1.gem +0 -0
  17. data/vendor/bundle/jruby/2.5.0/cache/public_suffix-4.0.6.gem +0 -0
  18. data/vendor/bundle/jruby/2.5.0/cache/rexml-3.2.5.gem +0 -0
  19. data/vendor/bundle/jruby/2.5.0/cache/webmock-3.13.0.gem +0 -0
  20. data/vendor/bundle/jruby/2.5.0/gems/addressable-2.7.0/CHANGELOG.md +235 -0
  21. data/vendor/bundle/jruby/2.5.0/gems/addressable-2.7.0/Gemfile +32 -0
  22. data/vendor/bundle/jruby/2.5.0/gems/addressable-2.7.0/LICENSE.txt +202 -0
  23. data/vendor/bundle/jruby/2.5.0/gems/addressable-2.7.0/README.md +121 -0
  24. data/vendor/bundle/jruby/2.5.0/gems/addressable-2.7.0/Rakefile +34 -0
  25. data/vendor/bundle/jruby/2.5.0/gems/addressable-2.7.0/data/unicode.data +0 -0
  26. data/vendor/bundle/jruby/2.5.0/gems/addressable-2.7.0/lib/addressable.rb +4 -0
  27. data/vendor/bundle/jruby/2.5.0/gems/addressable-2.7.0/lib/addressable/idna.rb +27 -0
  28. data/vendor/bundle/jruby/2.5.0/gems/addressable-2.7.0/lib/addressable/idna/native.rb +61 -0
  29. data/vendor/bundle/jruby/2.5.0/gems/addressable-2.7.0/lib/addressable/idna/pure.rb +676 -0
  30. data/vendor/bundle/jruby/2.5.0/gems/addressable-2.7.0/lib/addressable/template.rb +1045 -0
  31. data/vendor/bundle/jruby/2.5.0/gems/addressable-2.7.0/lib/addressable/uri.rb +2529 -0
  32. data/vendor/bundle/jruby/2.5.0/gems/addressable-2.7.0/lib/addressable/version.rb +32 -0
  33. data/vendor/bundle/jruby/2.5.0/gems/addressable-2.7.0/spec/addressable/idna_spec.rb +300 -0
  34. data/vendor/bundle/jruby/2.5.0/gems/addressable-2.7.0/spec/addressable/net_http_compat_spec.rb +30 -0
  35. data/vendor/bundle/jruby/2.5.0/gems/addressable-2.7.0/spec/addressable/rack_mount_compat_spec.rb +106 -0
  36. data/vendor/bundle/jruby/2.5.0/gems/addressable-2.7.0/spec/addressable/security_spec.rb +59 -0
  37. data/vendor/bundle/jruby/2.5.0/gems/addressable-2.7.0/spec/addressable/template_spec.rb +1451 -0
  38. data/vendor/bundle/jruby/2.5.0/gems/addressable-2.7.0/spec/addressable/uri_spec.rb +6603 -0
  39. data/vendor/bundle/jruby/2.5.0/gems/addressable-2.7.0/spec/spec_helper.rb +24 -0
  40. data/vendor/bundle/jruby/2.5.0/gems/addressable-2.7.0/tasks/clobber.rake +4 -0
  41. data/vendor/bundle/jruby/2.5.0/gems/addressable-2.7.0/tasks/gem.rake +93 -0
  42. data/vendor/bundle/jruby/2.5.0/gems/addressable-2.7.0/tasks/git.rake +47 -0
  43. data/vendor/bundle/jruby/2.5.0/gems/addressable-2.7.0/tasks/metrics.rake +24 -0
  44. data/vendor/bundle/jruby/2.5.0/gems/addressable-2.7.0/tasks/rspec.rake +23 -0
  45. data/vendor/bundle/jruby/2.5.0/gems/addressable-2.7.0/tasks/yard.rake +29 -0
  46. data/vendor/bundle/jruby/2.5.0/gems/crack-0.4.5/lib/crack.rb +7 -0
  47. data/vendor/bundle/jruby/2.5.0/gems/crack-0.4.5/lib/crack/json.rb +98 -0
  48. data/vendor/bundle/jruby/2.5.0/gems/crack-0.4.5/lib/crack/util.rb +17 -0
  49. data/vendor/bundle/jruby/2.5.0/gems/crack-0.4.5/lib/crack/version.rb +3 -0
  50. data/vendor/bundle/jruby/2.5.0/gems/crack-0.4.5/lib/crack/xml.rb +238 -0
  51. data/vendor/bundle/jruby/2.5.0/gems/hashdiff-1.0.1/Gemfile +8 -0
  52. data/vendor/bundle/jruby/2.5.0/gems/hashdiff-1.0.1/LICENSE +19 -0
  53. data/vendor/bundle/jruby/2.5.0/gems/hashdiff-1.0.1/README.md +276 -0
  54. data/vendor/bundle/jruby/2.5.0/gems/hashdiff-1.0.1/Rakefile +18 -0
  55. data/vendor/bundle/jruby/2.5.0/gems/hashdiff-1.0.1/changelog.md +100 -0
  56. data/vendor/bundle/jruby/2.5.0/gems/hashdiff-1.0.1/hashdiff.gemspec +39 -0
  57. data/vendor/bundle/jruby/2.5.0/gems/hashdiff-1.0.1/lib/hashdiff.rb +10 -0
  58. data/vendor/bundle/jruby/2.5.0/gems/hashdiff-1.0.1/lib/hashdiff/compare_hashes.rb +69 -0
  59. data/vendor/bundle/jruby/2.5.0/gems/hashdiff-1.0.1/lib/hashdiff/diff.rb +177 -0
  60. data/vendor/bundle/jruby/2.5.0/gems/hashdiff-1.0.1/lib/hashdiff/lcs.rb +66 -0
  61. data/vendor/bundle/jruby/2.5.0/gems/hashdiff-1.0.1/lib/hashdiff/lcs_compare_arrays.rb +32 -0
  62. data/vendor/bundle/jruby/2.5.0/gems/hashdiff-1.0.1/lib/hashdiff/linear_compare_array.rb +159 -0
  63. data/vendor/bundle/jruby/2.5.0/gems/hashdiff-1.0.1/lib/hashdiff/patch.rb +88 -0
  64. data/vendor/bundle/jruby/2.5.0/gems/hashdiff-1.0.1/lib/hashdiff/util.rb +155 -0
  65. data/vendor/bundle/jruby/2.5.0/gems/hashdiff-1.0.1/lib/hashdiff/version.rb +5 -0
  66. data/vendor/bundle/jruby/2.5.0/gems/hashdiff-1.0.1/spec/hashdiff/best_diff_spec.rb +75 -0
  67. data/vendor/bundle/jruby/2.5.0/gems/hashdiff-1.0.1/spec/hashdiff/diff_array_spec.rb +60 -0
  68. data/vendor/bundle/jruby/2.5.0/gems/hashdiff-1.0.1/spec/hashdiff/diff_spec.rb +360 -0
  69. data/vendor/bundle/jruby/2.5.0/gems/hashdiff-1.0.1/spec/hashdiff/lcs_spec.rb +76 -0
  70. data/vendor/bundle/jruby/2.5.0/gems/hashdiff-1.0.1/spec/hashdiff/linear_compare_array_spec.rb +50 -0
  71. data/vendor/bundle/jruby/2.5.0/gems/hashdiff-1.0.1/spec/hashdiff/patch_spec.rb +185 -0
  72. data/vendor/bundle/jruby/2.5.0/gems/hashdiff-1.0.1/spec/hashdiff/readme_spec.rb +15 -0
  73. data/vendor/bundle/jruby/2.5.0/gems/hashdiff-1.0.1/spec/hashdiff/util_spec.rb +116 -0
  74. data/vendor/bundle/jruby/2.5.0/gems/hashdiff-1.0.1/spec/spec_helper.rb +15 -0
  75. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/2.0-Upgrade.md +52 -0
  76. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/CHANGELOG.md +406 -0
  77. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/Gemfile +15 -0
  78. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/LICENSE.txt +22 -0
  79. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/README.md +207 -0
  80. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/Rakefile +51 -0
  81. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/SECURITY.md +104 -0
  82. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/bin/console +15 -0
  83. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/codecov.yml +12 -0
  84. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/data/list.txt +13380 -0
  85. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/lib/public_suffix.rb +179 -0
  86. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/lib/public_suffix/domain.rb +235 -0
  87. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/lib/public_suffix/errors.rb +41 -0
  88. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/lib/public_suffix/list.rb +247 -0
  89. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/lib/public_suffix/rule.rb +350 -0
  90. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/lib/public_suffix/version.rb +13 -0
  91. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/public_suffix.gemspec +29 -0
  92. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/test/acceptance_test.rb +131 -0
  93. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/test/benchmarks/bm_find.rb +66 -0
  94. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/test/benchmarks/bm_find_all.rb +102 -0
  95. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/test/benchmarks/bm_names.rb +91 -0
  96. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/test/benchmarks/bm_select.rb +26 -0
  97. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/test/benchmarks/bm_select_incremental.rb +25 -0
  98. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/test/benchmarks/bm_valid.rb +101 -0
  99. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/test/profilers/domain_profiler.rb +12 -0
  100. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/test/profilers/find_profiler.rb +12 -0
  101. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/test/profilers/find_profiler_jp.rb +12 -0
  102. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/test/profilers/initialization_profiler.rb +11 -0
  103. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/test/profilers/list_profsize.rb +11 -0
  104. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/test/profilers/object_binsize.rb +57 -0
  105. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/test/psl_test.rb +52 -0
  106. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/test/test_helper.rb +18 -0
  107. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/test/tests.txt +98 -0
  108. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/test/unit/domain_test.rb +106 -0
  109. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/test/unit/errors_test.rb +25 -0
  110. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/test/unit/list_test.rb +241 -0
  111. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/test/unit/public_suffix_test.rb +188 -0
  112. data/vendor/bundle/jruby/2.5.0/gems/public_suffix-4.0.6/test/unit/rule_test.rb +222 -0
  113. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/LICENSE.txt +22 -0
  114. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/NEWS.md +178 -0
  115. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/README.md +48 -0
  116. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/doc/rexml/context.rdoc +143 -0
  117. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/doc/rexml/tasks/rdoc/child.rdoc +87 -0
  118. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/doc/rexml/tasks/rdoc/document.rdoc +276 -0
  119. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/doc/rexml/tasks/rdoc/element.rdoc +602 -0
  120. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/doc/rexml/tasks/rdoc/node.rdoc +97 -0
  121. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/doc/rexml/tasks/rdoc/parent.rdoc +267 -0
  122. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/doc/rexml/tasks/tocs/child_toc.rdoc +12 -0
  123. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/doc/rexml/tasks/tocs/document_toc.rdoc +30 -0
  124. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/doc/rexml/tasks/tocs/element_toc.rdoc +55 -0
  125. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/doc/rexml/tasks/tocs/master_toc.rdoc +135 -0
  126. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/doc/rexml/tasks/tocs/node_toc.rdoc +16 -0
  127. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/doc/rexml/tasks/tocs/parent_toc.rdoc +25 -0
  128. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml.rb +3 -0
  129. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/attlistdecl.rb +63 -0
  130. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/attribute.rb +205 -0
  131. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/cdata.rb +68 -0
  132. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/child.rb +97 -0
  133. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/comment.rb +80 -0
  134. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/doctype.rb +311 -0
  135. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/document.rb +451 -0
  136. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/dtd/attlistdecl.rb +11 -0
  137. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/dtd/dtd.rb +47 -0
  138. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/dtd/elementdecl.rb +18 -0
  139. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/dtd/entitydecl.rb +57 -0
  140. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/dtd/notationdecl.rb +40 -0
  141. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/element.rb +2599 -0
  142. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/encoding.rb +51 -0
  143. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/entity.rb +171 -0
  144. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/formatters/default.rb +116 -0
  145. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/formatters/pretty.rb +142 -0
  146. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/formatters/transitive.rb +58 -0
  147. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/functions.rb +447 -0
  148. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/instruction.rb +79 -0
  149. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/light/node.rb +188 -0
  150. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/namespace.rb +59 -0
  151. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/node.rb +76 -0
  152. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/output.rb +30 -0
  153. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/parent.rb +166 -0
  154. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/parseexception.rb +52 -0
  155. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/parsers/baseparser.rb +694 -0
  156. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/parsers/lightparser.rb +59 -0
  157. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/parsers/pullparser.rb +197 -0
  158. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/parsers/sax2parser.rb +273 -0
  159. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/parsers/streamparser.rb +61 -0
  160. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/parsers/treeparser.rb +101 -0
  161. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/parsers/ultralightparser.rb +57 -0
  162. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/parsers/xpathparser.rb +689 -0
  163. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/quickpath.rb +266 -0
  164. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/rexml.rb +37 -0
  165. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/sax2listener.rb +98 -0
  166. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/security.rb +28 -0
  167. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/source.rb +298 -0
  168. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/streamlistener.rb +93 -0
  169. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/text.rb +424 -0
  170. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/undefinednamespaceexception.rb +9 -0
  171. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/validation/relaxng.rb +539 -0
  172. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/validation/validation.rb +144 -0
  173. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/validation/validationexception.rb +10 -0
  174. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/xmldecl.rb +130 -0
  175. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/xmltokens.rb +85 -0
  176. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/xpath.rb +81 -0
  177. data/vendor/bundle/jruby/2.5.0/gems/rexml-3.2.5/lib/rexml/xpath_parser.rb +974 -0
  178. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/CHANGELOG.md +1894 -0
  179. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/Gemfile +9 -0
  180. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/LICENSE +20 -0
  181. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/README.md +1176 -0
  182. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/Rakefile +38 -0
  183. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock.rb +59 -0
  184. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/api.rb +109 -0
  185. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/assertion_failure.rb +11 -0
  186. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/callback_registry.rb +35 -0
  187. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/config.rb +18 -0
  188. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/cucumber.rb +10 -0
  189. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/deprecation.rb +9 -0
  190. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/errors.rb +17 -0
  191. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/http_lib_adapters/async_http_client_adapter.rb +216 -0
  192. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/http_lib_adapters/curb_adapter.rb +351 -0
  193. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/http_lib_adapters/em_http_request_adapter.rb +231 -0
  194. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/http_lib_adapters/excon_adapter.rb +165 -0
  195. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/http_lib_adapters/http_lib_adapter.rb +7 -0
  196. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/http_lib_adapters/http_lib_adapter_registry.rb +19 -0
  197. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/http_lib_adapters/http_rb/client.rb +17 -0
  198. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/http_lib_adapters/http_rb/request.rb +16 -0
  199. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/http_lib_adapters/http_rb/response.rb +64 -0
  200. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/http_lib_adapters/http_rb/streamer.rb +29 -0
  201. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/http_lib_adapters/http_rb/webmock.rb +68 -0
  202. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/http_lib_adapters/http_rb_adapter.rb +37 -0
  203. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/http_lib_adapters/httpclient_adapter.rb +259 -0
  204. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/http_lib_adapters/manticore_adapter.rb +145 -0
  205. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/http_lib_adapters/net_http.rb +385 -0
  206. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/http_lib_adapters/net_http_response.rb +34 -0
  207. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/http_lib_adapters/patron_adapter.rb +130 -0
  208. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/http_lib_adapters/typhoeus_hydra_adapter.rb +174 -0
  209. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/matchers/any_arg_matcher.rb +13 -0
  210. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/matchers/hash_argument_matcher.rb +21 -0
  211. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/matchers/hash_excluding_matcher.rb +15 -0
  212. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/matchers/hash_including_matcher.rb +17 -0
  213. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/minitest.rb +41 -0
  214. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/rack_response.rb +69 -0
  215. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/request_body_diff.rb +64 -0
  216. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/request_execution_verifier.rb +77 -0
  217. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/request_pattern.rb +405 -0
  218. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/request_registry.rb +35 -0
  219. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/request_signature.rb +54 -0
  220. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/request_signature_snippet.rb +61 -0
  221. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/request_stub.rb +100 -0
  222. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/response.rb +159 -0
  223. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/responses_sequence.rb +40 -0
  224. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/rspec.rb +42 -0
  225. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/rspec/matchers.rb +27 -0
  226. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/rspec/matchers/request_pattern_matcher.rb +78 -0
  227. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/rspec/matchers/webmock_matcher.rb +67 -0
  228. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/stub_registry.rb +82 -0
  229. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/stub_request_snippet.rb +38 -0
  230. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/test_unit.rb +20 -0
  231. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/util/hash_counter.rb +39 -0
  232. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/util/hash_keys_stringifier.rb +25 -0
  233. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/util/hash_validator.rb +17 -0
  234. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/util/headers.rb +64 -0
  235. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/util/json.rb +67 -0
  236. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/util/query_mapper.rb +281 -0
  237. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/util/uri.rb +111 -0
  238. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/util/values_stringifier.rb +20 -0
  239. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/util/version_checker.rb +111 -0
  240. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/version.rb +3 -0
  241. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/lib/webmock/webmock.rb +163 -0
  242. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/minitest/test_helper.rb +34 -0
  243. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/minitest/test_webmock.rb +9 -0
  244. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/minitest/webmock_spec.rb +60 -0
  245. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/async_http_client/async_http_client_spec.rb +375 -0
  246. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/async_http_client/async_http_client_spec_helper.rb +73 -0
  247. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/curb/curb_spec.rb +499 -0
  248. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/curb/curb_spec_helper.rb +147 -0
  249. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/em_http_request/em_http_request_spec.rb +462 -0
  250. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/em_http_request/em_http_request_spec_helper.rb +77 -0
  251. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/excon/excon_spec.rb +77 -0
  252. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/excon/excon_spec_helper.rb +52 -0
  253. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/http_rb/http_rb_spec.rb +93 -0
  254. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/http_rb/http_rb_spec_helper.rb +54 -0
  255. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/httpclient/httpclient_spec.rb +217 -0
  256. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/httpclient/httpclient_spec_helper.rb +57 -0
  257. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/manticore/manticore_spec.rb +107 -0
  258. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/manticore/manticore_spec_helper.rb +35 -0
  259. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/net_http/net_http_shared.rb +153 -0
  260. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/net_http/net_http_spec.rb +369 -0
  261. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/net_http/net_http_spec_helper.rb +64 -0
  262. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/net_http/real_net_http_spec.rb +20 -0
  263. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/patron/patron_spec.rb +125 -0
  264. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/patron/patron_spec_helper.rb +54 -0
  265. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/shared/allowing_and_disabling_net_connect.rb +313 -0
  266. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/shared/callbacks.rb +148 -0
  267. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/shared/complex_cross_concern_behaviors.rb +36 -0
  268. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/shared/enabling_and_disabling_webmock.rb +95 -0
  269. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/shared/precedence_of_stubs.rb +15 -0
  270. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/shared/request_expectations.rb +930 -0
  271. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/shared/returning_declared_responses.rb +409 -0
  272. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/shared/stubbing_requests.rb +678 -0
  273. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/typhoeus/typhoeus_hydra_spec.rb +135 -0
  274. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/typhoeus/typhoeus_hydra_spec_helper.rb +60 -0
  275. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/acceptance/webmock_shared.rb +41 -0
  276. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/fixtures/test.txt +1 -0
  277. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/quality_spec.rb +84 -0
  278. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/spec_helper.rb +48 -0
  279. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/support/example_curl_output.txt +22 -0
  280. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/support/failures.rb +9 -0
  281. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/support/my_rack_app.rb +53 -0
  282. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/support/network_connection.rb +19 -0
  283. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/support/webmock_server.rb +70 -0
  284. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/unit/api_spec.rb +175 -0
  285. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/unit/errors_spec.rb +129 -0
  286. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/unit/http_lib_adapters/http_lib_adapter_registry_spec.rb +17 -0
  287. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/unit/http_lib_adapters/http_lib_adapter_spec.rb +12 -0
  288. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/unit/matchers/hash_excluding_matcher_spec.rb +61 -0
  289. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/unit/matchers/hash_including_matcher_spec.rb +87 -0
  290. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/unit/rack_response_spec.rb +112 -0
  291. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/unit/request_body_diff_spec.rb +90 -0
  292. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/unit/request_execution_verifier_spec.rb +208 -0
  293. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/unit/request_pattern_spec.rb +736 -0
  294. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/unit/request_registry_spec.rb +95 -0
  295. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/unit/request_signature_snippet_spec.rb +89 -0
  296. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/unit/request_signature_spec.rb +155 -0
  297. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/unit/request_stub_spec.rb +199 -0
  298. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/unit/response_spec.rb +286 -0
  299. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/unit/stub_registry_spec.rb +103 -0
  300. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/unit/stub_request_snippet_spec.rb +115 -0
  301. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/unit/util/hash_counter_spec.rb +39 -0
  302. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/unit/util/hash_keys_stringifier_spec.rb +27 -0
  303. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/unit/util/headers_spec.rb +28 -0
  304. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/unit/util/json_spec.rb +33 -0
  305. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/unit/util/query_mapper_spec.rb +157 -0
  306. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/unit/util/uri_spec.rb +371 -0
  307. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/unit/util/version_checker_spec.rb +65 -0
  308. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/spec/unit/webmock_spec.rb +60 -0
  309. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/test/http_request.rb +24 -0
  310. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/test/shared_test.rb +108 -0
  311. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/test/test_helper.rb +23 -0
  312. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/test/test_webmock.rb +12 -0
  313. data/vendor/bundle/jruby/2.5.0/gems/webmock-3.13.0/webmock.gemspec +54 -0
  314. data/vendor/bundle/jruby/2.5.0/specifications/addressable-2.7.0.gemspec +39 -0
  315. data/vendor/bundle/jruby/2.5.0/specifications/crack-0.4.5.gemspec +32 -0
  316. data/vendor/bundle/jruby/2.5.0/specifications/hashdiff-1.0.1.gemspec +46 -0
  317. data/vendor/bundle/jruby/2.5.0/specifications/public_suffix-4.0.6.gemspec +24 -0
  318. data/vendor/bundle/jruby/2.5.0/specifications/rexml-3.2.5.gemspec +42 -0
  319. data/vendor/bundle/jruby/2.5.0/specifications/webmock-3.13.0.gemspec +85 -0
  320. metadata +309 -2
@@ -0,0 +1,64 @@
1
+ module NetHTTPSpecHelper
2
+ def http_request(method, uri, options = {}, &block)
3
+ begin
4
+ uri = URI.parse(uri)
5
+ rescue
6
+ uri = Addressable::URI.heuristic_parse(uri)
7
+ end
8
+ response = nil
9
+ clazz = Net::HTTP.const_get("#{method.to_s.capitalize}")
10
+ req = clazz.new("#{uri.path}#{uri.query ? '?' : ''}#{uri.query}", nil)
11
+ options[:headers].each do |k,v|
12
+ if v.is_a?(Array)
13
+ v.each_with_index do |e,i|
14
+ i == 0 ? (req[k] = e) : req.add_field(k, e)
15
+ end
16
+ else
17
+ req[k] = v
18
+ end
19
+ end if options[:headers]
20
+
21
+ if options[:basic_auth]
22
+ req.basic_auth(options[:basic_auth][0], options[:basic_auth][1])
23
+ end
24
+
25
+ http = Net::HTTP.new(uri.host, uri.port)
26
+ if uri.scheme == "https"
27
+ http.use_ssl = true
28
+ #1.9.1 has a bug with ssl_timeout
29
+ http.ssl_timeout = 20 unless RUBY_PLATFORM =~ /java/
30
+ http.open_timeout = 60
31
+ http.read_timeout = 60
32
+ end
33
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
34
+ response = http.start {|open_http|
35
+ open_http.request(req, options[:body], &block)
36
+ }
37
+ headers = {}
38
+ response.each_header {|name, value| headers[name] = value}
39
+ OpenStruct.new({
40
+ body: response.body,
41
+ headers: WebMock::Util::Headers.normalize_headers(headers),
42
+ status: response.code,
43
+ message: response.message
44
+ })
45
+ end
46
+
47
+ def client_timeout_exception_class
48
+ if defined?(Net::OpenTimeout)
49
+ Net::OpenTimeout
50
+ elsif defined?(Net::HTTP::OpenTimeout)
51
+ Net::HTTP::OpenTimeout
52
+ else
53
+ Timeout::Error
54
+ end
55
+ end
56
+
57
+ def connection_refused_exception_class
58
+ Errno::ECONNREFUSED
59
+ end
60
+
61
+ def http_library
62
+ :net_http
63
+ end
64
+ end
@@ -0,0 +1,20 @@
1
+ require 'rubygems'
2
+ require 'rspec'
3
+ require 'net/http'
4
+ require 'net/https'
5
+ require 'stringio'
6
+ require 'acceptance/net_http/net_http_shared'
7
+ require 'support/webmock_server'
8
+
9
+ describe "Real Net:HTTP without webmock", without_webmock: true do
10
+ before(:all) do
11
+ raise "WebMock has no access here!!!" if defined?(WebMock::NetHTTPUtility)
12
+ WebMockServer.instance.start
13
+ end
14
+
15
+ after(:all) do
16
+ WebMockServer.instance.stop
17
+ end
18
+
19
+ it_should_behave_like "Net::HTTP"
20
+ end
@@ -0,0 +1,125 @@
1
+ # encoding: utf-8
2
+
3
+ require 'spec_helper'
4
+ require 'acceptance/webmock_shared'
5
+
6
+ unless RUBY_PLATFORM =~ /java/
7
+ require 'acceptance/patron/patron_spec_helper'
8
+ require 'tmpdir'
9
+ require 'fileutils'
10
+
11
+ describe "Patron" do
12
+ include PatronSpecHelper
13
+
14
+ include_examples "with WebMock"
15
+
16
+ describe "when custom functionality is used" do
17
+ before(:each) do
18
+ @sess = Patron::Session.new
19
+ @sess.base_url = "http://www.example.com"
20
+ end
21
+
22
+ it "should allow stubbing PATCH request with body" do
23
+ stub_request(:patch, "http://www.example.com/")
24
+ .with(body: "abc")
25
+
26
+ @sess.patch('/', "abc")
27
+ end
28
+
29
+ describe "file requests" do
30
+
31
+ before(:each) do
32
+ @dir_path = Dir.mktmpdir('webmock-')
33
+ @file_path = File.join(@dir_path, "webmock_temp_test_file")
34
+ FileUtils.rm_rf(@file_path) if File.exist?(@file_path)
35
+ end
36
+
37
+ after(:each) do
38
+ FileUtils.rm_rf(@dir_path) if File.exist?(@dir_path)
39
+ end
40
+
41
+ it "should work with get_file" do
42
+ stub_request(:get, "www.example.com").to_return(body: "abc")
43
+ @sess.get_file("/", @file_path)
44
+ expect(File.read(@file_path)).to eq("abc")
45
+ end
46
+
47
+ it "should raise same error as Patron if file is not readable for get request" do
48
+ stub_request(:get, "www.example.com")
49
+ File.open("/tmp/read_only_file", "w") do |tmpfile|
50
+ tmpfile.chmod(0400)
51
+ end
52
+ begin
53
+ expect {
54
+ @sess.get_file("/", "/tmp/read_only_file")
55
+ }.to raise_error(ArgumentError, "Unable to open specified file.")
56
+ ensure
57
+ File.unlink("/tmp/read_only_file")
58
+ end
59
+ end
60
+
61
+ it "should work with put_file" do
62
+ File.open(@file_path, "w") {|f| f.write "abc"}
63
+ stub_request(:put, "www.example.com").with(body: "abc")
64
+ @sess.put_file("/", @file_path)
65
+ end
66
+
67
+ it "should work with post_file" do
68
+ File.open(@file_path, "w") {|f| f.write "abc"}
69
+ stub_request(:post, "www.example.com").with(body: "abc")
70
+ @sess.post_file("/", @file_path)
71
+ end
72
+
73
+ it "should raise same error as Patron if file is not readable for post request" do
74
+ stub_request(:post, "www.example.com").with(body: "abc")
75
+ expect {
76
+ @sess.post_file("/", "/path/to/non/existing/file")
77
+ }.to raise_error(ArgumentError, "Unable to open specified file.")
78
+ end
79
+
80
+ end
81
+
82
+ describe "handling errors same way as patron" do
83
+ it "should raise error if put request has neither upload_data nor file_name" do
84
+ stub_request(:post, "www.example.com")
85
+ expect {
86
+ @sess.post("/", nil)
87
+ }.to raise_error(ArgumentError, "Must provide either data or a filename when doing a PUT or POST")
88
+ end
89
+ end
90
+
91
+ it "should work with WebDAV copy request" do
92
+ stub_request(:copy, "www.example.com/abc").with(headers: {'Destination' => "/def"})
93
+ @sess.copy("/abc", "/def")
94
+ end
95
+
96
+ if /^1\.9/ === RUBY_VERSION
97
+ describe "handling encoding same way as patron" do
98
+ around(:each) do |example|
99
+ @encoding = Encoding.default_internal
100
+ Encoding.default_internal = "UTF-8"
101
+ example.run
102
+ Encoding.default_internal = @encoding
103
+ end
104
+
105
+ it "should not encode body with default encoding" do
106
+ stub_request(:get, "www.example.com").
107
+ to_return(body: "Øl")
108
+
109
+ expect(@sess.get("").body.encoding).to eq(Encoding::ASCII_8BIT)
110
+ expect(@sess.get("").inspectable_body.encoding).to eq(Encoding::UTF_8)
111
+ end
112
+
113
+ it "should not encode body to default internal" do
114
+ stub_request(:get, "www.example.com").
115
+ to_return(headers: {'Content-Type' => 'text/html; charset=iso-8859-1'},
116
+ body: "Øl".encode("iso-8859-1"))
117
+
118
+ expect(@sess.get("").body.encoding).to eq(Encoding::ASCII_8BIT)
119
+ expect(@sess.get("").decoded_body.encoding).to eq(Encoding.default_internal)
120
+ end
121
+ end
122
+ end
123
+ end
124
+ end
125
+ end
@@ -0,0 +1,54 @@
1
+ require 'ostruct'
2
+
3
+ module PatronSpecHelper
4
+ def http_request(method, uri, options = {}, &block)
5
+ method = method.to_sym
6
+ uri = Addressable::URI.heuristic_parse(uri)
7
+ sess = Patron::Session.new
8
+ sess.base_url = "#{uri.omit(:path, :query).normalize.to_s}".gsub(/\/$/,"")
9
+
10
+ if options[:basic_auth]
11
+ sess.username = options[:basic_auth][0]
12
+ sess.password = options[:basic_auth][1]
13
+ end
14
+
15
+ sess.connect_timeout = 30
16
+ sess.timeout = 30
17
+ sess.max_redirects = 0
18
+ uri = "#{uri.path}#{uri.query ? '?' : ''}#{uri.query}"
19
+ uri = uri.gsub(' ','%20')
20
+ response = sess.request(method, uri, options[:headers] || {}, {
21
+ data: options[:body]
22
+ })
23
+ headers = {}
24
+ if response.headers
25
+ response.headers.each do |k,v|
26
+ v = v.join(", ") if v.is_a?(Array)
27
+ headers[k] = v
28
+ end
29
+ end
30
+
31
+ status_line_pattern = %r(\AHTTP/(\d+(\.\d+)?)\s+(\d\d\d)\s*([^\r\n]+)?)
32
+ message = response.status_line.match(status_line_pattern)[4] || ""
33
+
34
+ OpenStruct.new({
35
+ body: response.body,
36
+ headers: WebMock::Util::Headers.normalize_headers(headers),
37
+ status: response.status.to_s,
38
+ message: message
39
+ })
40
+ end
41
+
42
+ def client_timeout_exception_class
43
+ Patron::TimeoutError
44
+ end
45
+
46
+ def connection_refused_exception_class
47
+ Patron::ConnectionFailed
48
+ end
49
+
50
+ def http_library
51
+ :patron
52
+ end
53
+
54
+ end
@@ -0,0 +1,313 @@
1
+ shared_context "allowing and disabling net connect" do |*adapter_info|
2
+ describe "when net connect" do
3
+ describe "is allowed", net_connect: true do
4
+ before(:each) do
5
+ WebMock.allow_net_connect!
6
+ end
7
+
8
+ it "should make a real web request if request is not stubbed" do
9
+ expect(http_request(:get, webmock_server_url).status).to eq("200")
10
+ end
11
+
12
+ it "should make a real https request if request is not stubbed" do
13
+ unless http_library == :httpclient
14
+ result = http_request(:get, "https://www.google.com/").body
15
+ if result.respond_to? :encode
16
+ result = result.encode(
17
+ 'UTF-8',
18
+ 'binary',
19
+ invalid: :replace,
20
+ undef: :replace,
21
+ replace: ''
22
+ )
23
+ end
24
+ expect(result).to match(/.*google.*/)
25
+ end
26
+ end
27
+
28
+ it "should return stubbed response if request was stubbed" do
29
+ stub_request(:get, "www.example.com").to_return(body: "abc")
30
+ expect(http_request(:get, "http://www.example.com/").body).to eq("abc")
31
+ end
32
+ end
33
+
34
+ describe "is not allowed" do
35
+ before(:each) do
36
+ WebMock.disable_net_connect!
37
+ end
38
+
39
+ it "should return stubbed response if request was stubbed" do
40
+ stub_request(:get, "www.example.com").to_return(body: "abc")
41
+ expect(http_request(:get, "http://www.example.com/").body).to eq("abc")
42
+ end
43
+
44
+ it "should return stubbed response if request with path was stubbed" do
45
+ stub_request(:get, "www.example.com/hello_world").to_return(body: "abc")
46
+ expect(http_request(:get, "http://www.example.com/hello_world").body).to eq("abc")
47
+ end
48
+
49
+ it "should raise exception if request was not stubbed" do
50
+ expect {
51
+ http_request(:get, "http://www.example.com/")
52
+ }.to raise_error(WebMock::NetConnectNotAllowedError, %r(Real HTTP connections are disabled. Unregistered request: GET http://www.example.com/))
53
+ end
54
+ end
55
+
56
+ describe "is not allowed with exception for localhost" do
57
+ before(:each) do
58
+ WebMock.disable_net_connect!(allow_localhost: true)
59
+ end
60
+
61
+ it "should return stubbed response if request was stubbed" do
62
+ stub_request(:get, "www.example.com").to_return(body: "abc")
63
+ expect(http_request(:get, "http://www.example.com/").body).to eq("abc")
64
+ end
65
+
66
+ it "should raise exception if request was not stubbed" do
67
+ expect {
68
+ http_request(:get, "http://www.example.com/")
69
+ }.to raise_error(WebMock::NetConnectNotAllowedError, %r(Real HTTP connections are disabled. Unregistered request: GET http://www.example.com/))
70
+ end
71
+
72
+ it "should make a real request to localhost" do
73
+ expect {
74
+ http_request(:get, "http://localhost:12345/")
75
+ }.to raise_error(connection_refused_exception_class)
76
+ end
77
+
78
+ it "should make a real request to 127.0.0.1" do
79
+ expect {
80
+ http_request(:get, "http://127.0.0.1:12345/")
81
+ }.to raise_error(connection_refused_exception_class)
82
+ end
83
+
84
+ it "should make a real request to 0.0.0.0" do
85
+ expect {
86
+ http_request(:get, "http://0.0.0.0:12345/")
87
+ }.to raise_error(connection_refused_exception_class)
88
+ end
89
+ end
90
+
91
+ describe "is not allowed, with exceptions" do
92
+ describe "allowing by host string" do
93
+ before :each do
94
+ WebMock.disable_net_connect!(allow: 'httpstat.us')
95
+ end
96
+
97
+ context "when the host is not allowed" do
98
+ it "should return stubbed response if request was stubbed" do
99
+ stub_request(:get, 'disallowed.example.com/foo').to_return(body: "abc")
100
+ expect(http_request(:get, 'http://disallowed.example.com/foo').body).to eq("abc")
101
+ end
102
+
103
+ it "should raise exception if request was not stubbed" do
104
+ expect {
105
+ http_request(:get, 'http://disallowed.example.com/')
106
+ }.to raise_error(WebMock::NetConnectNotAllowedError, %r(Real HTTP connections are disabled. Unregistered request: GET http://disallowed.example.com))
107
+ end
108
+ end
109
+
110
+ context "when the host is allowed" do
111
+ it "should return stubbed response if request was stubbed" do
112
+ stub_request(:get, 'httpstat.us/200').to_return(body: "abc")
113
+ expect(http_request(:get, "http://httpstat.us/200").body).to eq("abc")
114
+ end
115
+
116
+ # WARNING: this makes a real HTTP request!
117
+ it "should make a real request to allowed host", net_connect: true do
118
+ expect(http_request(:get, "http://httpstat.us/200").status).to eq('200')
119
+ end
120
+ end
121
+ end
122
+
123
+ describe "allowing by host:port string" do
124
+ def replace_with_different_port(uri)
125
+ uri.sub(%r{:(\d+)}){|m0, m1| ':' + ($~[1].to_i + 1).to_s }
126
+ end
127
+
128
+ let(:allowed_host_with_port) { WebMockServer.instance.host_with_port }
129
+ let(:disallowed_host_with_port) { replace_with_different_port(allowed_host_with_port) }
130
+
131
+ before :each do
132
+ WebMock.disable_net_connect!(allow: allowed_host_with_port)
133
+ end
134
+
135
+ context "when the host is not allowed" do
136
+ it "should return stubbed response if request was stubbed" do
137
+ request_url = "http://#{disallowed_host_with_port}/foo"
138
+ stub_request(:get, request_url).to_return(body: "abc")
139
+ expect(http_request(:get, request_url).body).to eq("abc")
140
+ end
141
+
142
+ it "should raise exception if request was not stubbed" do
143
+ request_url = "http://#{disallowed_host_with_port}/foo"
144
+ expect {
145
+ http_request(:get, request_url)
146
+ }.to raise_error(WebMock::NetConnectNotAllowedError, %r(Real HTTP connections are disabled. Unregistered request: GET #{request_url}))
147
+ end
148
+ end
149
+
150
+ context "when the host is allowed" do
151
+ it "should return stubbed response if request was stubbed" do
152
+ request_url = "http://#{allowed_host_with_port}/foo"
153
+ stub_request(:get, request_url).to_return(body: "abc")
154
+ expect(http_request(:get, request_url).body).to eq('abc')
155
+ end
156
+
157
+ it "should make a real request to allowed host", net_connect: true do
158
+ request_url = "http://#{allowed_host_with_port}/foo"
159
+ expect(http_request(:get, request_url).status).to eq('200')
160
+ end
161
+ end
162
+ end
163
+
164
+ describe "allowing by scheme:host string" do
165
+ before :each do
166
+ WebMock.disable_net_connect!(allow: 'https://www.google.pl')
167
+ end
168
+
169
+ context "when the host and scheme is not allowed" do
170
+ it "should return stubbed response if request was stubbed" do
171
+ stub_request(:get, 'https://disallowed.example.com/foo').to_return(body: "abc")
172
+ expect(http_request(:get, 'https://disallowed.example.com/foo').body).to eq("abc")
173
+ end
174
+
175
+ it "should raise exception if request was not stubbed" do
176
+ expect {
177
+ http_request(:get, 'https://disallowed.example.com/')
178
+ }.to raise_error(WebMock::NetConnectNotAllowedError, %r(Real HTTP connections are disabled. Unregistered request: GET https://disallowed.example.com))
179
+ end
180
+
181
+ it "should raise exception if request was made to different port" do
182
+ expect {
183
+ http_request(:get, 'https://www.google.pl:80/')
184
+ }.to raise_error(WebMock::NetConnectNotAllowedError, %r(Real HTTP connections are disabled. Unregistered request: GET https://www.google.pl:80))
185
+ end
186
+
187
+ it "should raise exception if request was made to different scheme" do
188
+ expect {
189
+ http_request(:get, 'http://www.google.pl/')
190
+ }.to raise_error(WebMock::NetConnectNotAllowedError, %r(Real HTTP connections are disabled. Unregistered request: GET http://www.google.pl))
191
+ end
192
+ end
193
+
194
+ context "when the host is allowed" do
195
+ it "should return stubbed response if request was stubbed" do
196
+ stub_request(:get, 'https://www.google.pl').to_return(body: "abc")
197
+ expect(http_request(:get, "https://www.google.pl/").body).to eq("abc")
198
+ end
199
+
200
+ it "should make a real request to allowed host with scheme", net_connect: true do
201
+ method = http_library == :httpclient ? :head : :get #https://github.com/nahi/httpclient/issues/299
202
+ expect(http_request(method, "https://www.google.pl/").status).to eq('200')
203
+ end
204
+
205
+ it "should make a real request to allowed host with scheme and port", net_connect: true do
206
+ method = http_library == :httpclient ? :head : :get
207
+ expect(http_request(method, "https://www.google.pl:443/").status).to eq('200')
208
+ end
209
+ end
210
+ end
211
+
212
+ describe "allowing by regular expression" do
213
+ before :each do
214
+ WebMock.disable_net_connect!(allow: %r{httpstat})
215
+ end
216
+
217
+ context "when the host is not allowed" do
218
+ it "should return stubbed response if request was stubbed" do
219
+ stub_request(:get, 'disallowed.example.com/foo').to_return(body: "abc")
220
+ expect(http_request(:get, 'http://disallowed.example.com/foo').body).to eq("abc")
221
+ end
222
+
223
+ it "should raise exception if request was not stubbed" do
224
+ expect {
225
+ http_request(:get, 'http://disallowed.example.com/')
226
+ }.to raise_error(WebMock::NetConnectNotAllowedError, %r(Real HTTP connections are disabled. Unregistered request: GET http://disallowed.example.com))
227
+ end
228
+ end
229
+
230
+ context "when the host is allowed" do
231
+ it "should return stubbed response if request was stubbed" do
232
+ stub_request(:get, 'httpstat.us/200').to_return(body: "abc")
233
+ expect(http_request(:get, "http://httpstat.us/200").body).to eq("abc")
234
+ end
235
+
236
+ # WARNING: this makes a real HTTP request!
237
+ it "should make a real request to allowed host", net_connect: true do
238
+ expect(http_request(:get, "http://httpstat.us/200").status).to eq('200')
239
+ end
240
+
241
+ it "should make a real request if request is allowed by path regexp and url contains default port", net_connect: true do
242
+ WebMock.disable_net_connect!(allow: %r{www.google.pl/webhp})
243
+ method = http_library == :httpclient ? :head : :get
244
+ expect(http_request(method, 'https://www.google.pl:443/webhp').status).to eq('200')
245
+ end
246
+ end
247
+ end
248
+
249
+ describe "allowing by a callable" do
250
+ before :each do
251
+ WebMock.disable_net_connect!(allow: lambda{|url| url.to_str.include?('httpstat') })
252
+ end
253
+
254
+ context "when the host is not allowed" do
255
+ it "should return stubbed response if request was stubbed" do
256
+ stub_request(:get, 'disallowed.example.com/foo').to_return(body: "abc")
257
+ expect(http_request(:get, 'http://disallowed.example.com/foo').body).to eq("abc")
258
+ end
259
+
260
+ it "should raise exception if request was not stubbed" do
261
+ expect {
262
+ http_request(:get, 'http://disallowed.example.com/')
263
+ }.to raise_error(WebMock::NetConnectNotAllowedError, %r(Real HTTP connections are disabled. Unregistered request: GET http://disallowed.example.com))
264
+ end
265
+ end
266
+
267
+ context "when the host is allowed" do
268
+ it "should return stubbed response if request was stubbed" do
269
+ stub_request(:get, 'httpstat.us/200').to_return(body: "abc")
270
+ expect(http_request(:get, "http://httpstat.us/200").body).to eq("abc")
271
+ end
272
+
273
+ # WARNING: this makes a real HTTP request!
274
+ it "should make a real request to allowed host", net_connect: true do
275
+ expect(http_request(:get, "http://httpstat.us/200").status).to eq('200')
276
+ end
277
+ end
278
+ end
279
+
280
+ describe "allowing by a list of the above" do
281
+ before :each do
282
+ WebMock.disable_net_connect!(allow: [lambda{|_| false }, %r{foobar}, 'httpstat.us'])
283
+ end
284
+
285
+ context "when the host is not allowed" do
286
+ it "should return stubbed response if request was stubbed" do
287
+ stub_request(:get, 'disallowed.example.com/foo').to_return(body: "abc")
288
+ expect(http_request(:get, 'http://disallowed.example.com/foo').body).to eq("abc")
289
+ end
290
+
291
+ it "should raise exception if request was not stubbed" do
292
+ expect {
293
+ http_request(:get, 'http://disallowed.example.com/')
294
+ }.to raise_error(WebMock::NetConnectNotAllowedError, %r(Real HTTP connections are disabled. Unregistered request: GET http://disallowed.example.com))
295
+ end
296
+ end
297
+
298
+ context "when the host is allowed" do
299
+ it "should return stubbed response if request was stubbed" do
300
+ stub_request(:get, 'httpstat.us/200').to_return(body: "abc")
301
+ expect(http_request(:get, "http://httpstat.us/200").body).to eq("abc")
302
+ end
303
+
304
+ # WARNING: this makes a real HTTP request!
305
+ it "should make a real request to allowed host", net_connect: true do
306
+ expect(http_request(:get, "http://httpstat.us/200").status).to eq('200')
307
+ end
308
+ end
309
+ end
310
+
311
+ end
312
+ end
313
+ end