use Capybara.server_port if specified

This commit is contained in:
ichverstehe 2010-09-02 15:03:49 +02:00
parent a4ed172f77
commit 5784f03d6a
3 changed files with 14 additions and 1 deletions

View File

@ -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

View File

@ -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 => []) }

View File

@ -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!"]}