summaryrefslogtreecommitdiff
path: root/spec/support/capybara.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/support/capybara.rb')
-rw-r--r--spec/support/capybara.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/spec/support/capybara.rb b/spec/support/capybara.rb
index aea853d1c23..fe9bff827dc 100644
--- a/spec/support/capybara.rb
+++ b/spec/support/capybara.rb
@@ -32,6 +32,8 @@ CAPYBARA_WINDOW_SIZE = [1366, 768].freeze
SCREENSHOT_FILENAME_LENGTH = ENV['CI'] || ENV['CI_SERVER'] ? 255 : 99
+@blackhole_tcp_server = nil
+
# Run Workhorse on the given host and port, proxying to Puma on a UNIX socket,
# for a closer-to-production experience
Capybara.register_server :puma_via_workhorse do |app, port, host, **options|
@@ -83,6 +85,17 @@ Capybara.register_driver :chrome do |app|
# Chrome 75 defaults to W3C mode which doesn't allow console log access
options.add_option(:w3c, false)
+ # Set up a proxy server to block all external traffic.
+ @blackhole_tcp_server = TCPServer.new(0)
+ Thread.new do
+ loop do
+ Thread.start(@blackhole_tcp_server.accept, &:close)
+ end
+ end
+
+ options.add_argument("--proxy-server=http://127.0.0.1:#{@blackhole_tcp_server.addr[1]}")
+ options.add_argument("--proxy-bypass-list=127.0.0.1,localhost,#{Gitlab.config.gitlab.host}")
+
Capybara::Selenium::Driver.new(
app,
browser: :chrome,