summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJenny Shen <jenny.shen@shopify.com>2023-02-15 10:50:45 -0500
committerHiroshi SHIBATA <hsbt@ruby-lang.org>2023-04-12 11:51:04 +0900
commit27322e51a757f0ac6d1fd66802e02978def9904f (patch)
tree73a85dd22ecdd904fa26e8d5c251dfe095151808 /test
parent354a5c646e12aa5fbed94f818c3e4b72f05735e3 (diff)
downloadruby-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')
-rw-r--r--test/rubygems/utilities.rb35
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)