diff options
author | Jenny Shen <jenny.shen@shopify.com> | 2023-02-15 10:50:45 -0500 |
---|---|---|
committer | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2023-04-12 11:51:04 +0900 |
commit | 27322e51a757f0ac6d1fd66802e02978def9904f (patch) | |
tree | 73a85dd22ecdd904fa26e8d5c251dfe095151808 /test/rubygems | |
parent | 354a5c646e12aa5fbed94f818c3e4b72f05735e3 (diff) | |
download | ruby-27322e51a757f0ac6d1fd66802e02978def9904f.tar.gz |
[rubygems/rubygems] Add MockBrowser helper class
https://github.com/rubygems/rubygems/commit/2d763cfd47
Co-authored-by: Jacques Chester <jacques.chester@shopify.com>
Diffstat (limited to 'test/rubygems')
-rw-r--r-- | test/rubygems/utilities.rb | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/test/rubygems/utilities.rb b/test/rubygems/utilities.rb index 17a55107b1..6f5958c07c 100644 --- a/test/rubygems/utilities.rb +++ b/test/rubygems/utilities.rb @@ -187,6 +187,41 @@ class Gem::HTTPResponseFactory end end +## +# A Gem::MockBrowser is used in tests to mock a browser in that it can +# send HTTP requests to the defined URI. +# +# Example: +# +# # Sends a get request to http://localhost:5678 +# Gem::MockBrowser.get URI("http://localhost:5678") +# +# See RubyGems' tests for more examples of MockBrowser. +# + +class Gem::MockBrowser + def self.options(uri) + options = Net::HTTP::Options.new(uri) + Net::HTTP.start(uri.hostname, uri.port) do |http| + http.request(options) + end + end + + def self.get(uri) + get = Net::HTTP::Get.new(uri) + Net::HTTP.start(uri.hostname, uri.port) do |http| + http.request(get) + end + end + + def self.post(uri) + post = Net::HTTP::Post.new(uri) + Net::HTTP.start(uri.hostname, uri.port) do |http| + http.request(post) + end + end +end + # :stopdoc: class Gem::RemoteFetcher def self.fetcher=(fetcher) |