aboutsummaryrefslogtreecommitdiffstats
path: root/actionsystemtest/lib/action_system_test/driver_adapters/web_server.rb
diff options
context:
space:
mode:
Diffstat (limited to 'actionsystemtest/lib/action_system_test/driver_adapters/web_server.rb')
-rw-r--r--actionsystemtest/lib/action_system_test/driver_adapters/web_server.rb45
1 files changed, 45 insertions, 0 deletions
diff --git a/actionsystemtest/lib/action_system_test/driver_adapters/web_server.rb b/actionsystemtest/lib/action_system_test/driver_adapters/web_server.rb
new file mode 100644
index 0000000000..e115fe583c
--- /dev/null
+++ b/actionsystemtest/lib/action_system_test/driver_adapters/web_server.rb
@@ -0,0 +1,45 @@
+begin
+ require "rack/handler/puma"
+rescue LoadError
+ false
+end
+
+module ActionSystemTest
+ module DriverAdapters
+ module WebServer # :nodoc:
+ def register_server
+ Capybara.register_server @server do |app, port, host|
+ case @server
+ when :puma
+ register_puma(app, port)
+ when :webrick
+ register_webrick(app, port)
+ else
+ register_default(app, port)
+ end
+ end
+ end
+
+ private
+ def register_default(app, port)
+ Capybara.run_default_server(app, port)
+ end
+
+ def register_puma(app, port)
+ Rack::Handler::Puma.run(app, Port: port, Threads: "0:4")
+ end
+
+ def register_webrick(app, port)
+ Rack::Handler::WEBrick.run(app, Port: port)
+ end
+
+ def set_server
+ Capybara.server = @server
+ end
+
+ def set_port
+ Capybara.server_port = @port
+ end
+ end
+ end
+end