From 5784f03d6aa87e63e759abda794a43738e4f320f Mon Sep 17 00:00:00 2001 From: ichverstehe Date: Thu, 2 Sep 2010 15:03:49 +0200 Subject: [PATCH] use Capybara.server_port if specified --- lib/capybara.rb | 1 + lib/capybara/server.rb | 2 +- spec/server_spec.rb | 12 ++++++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/capybara.rb b/lib/capybara.rb index 1d7392c5..0c9d3dad 100644 --- a/lib/capybara.rb +++ b/lib/capybara.rb @@ -14,6 +14,7 @@ module Capybara class << self attr_accessor :asset_root, :app_host, :run_server, :default_host + attr_accessor :server_port attr_accessor :default_selector, :default_wait_time, :ignore_hidden_elements attr_accessor :save_and_open_page_path diff --git a/lib/capybara/server.rb b/lib/capybara/server.rb index bc436cec..99668da2 100644 --- a/lib/capybara/server.rb +++ b/lib/capybara/server.rb @@ -73,7 +73,7 @@ module Capybara @port = Capybara::Server.ports[@app.object_id] if not @port or not responsive? - @port = find_available_port + @port = Capybara.server_port || find_available_port Capybara::Server.ports[@app.object_id] = @port Thread.new { handler.run(Identify.new(@app), :Port => @port, :AccessLog => []) } diff --git a/spec/server_spec.rb b/spec/server_spec.rb index 2c8ed174..024cbde1 100644 --- a/spec/server_spec.rb +++ b/spec/server_spec.rb @@ -17,6 +17,18 @@ describe Capybara::Server do end.should_not raise_error end + it "should use specified port" do + Capybara.server_port = 22789 + + @app = proc { |env| [200, {}, "Hello Server!"]} + @server = Capybara::Server.new(@app).boot + + @res = Net::HTTP.start(@server.host, 22789) { |http| http.get('/') } + @res.body.should include('Hello Server') + + Capybara.server_port = nil + end + it "should find an available port" do @app1 = proc { |env| [200, {}, "Hello Server!"]} @app2 = proc { |env| [200, {}, "Hello Second Server!"]}