Brought back Culerity driver now as subclass of Celerity. Hash style driver options replaced. Capybara.app_host for connecting to running app.
This commit is contained in:
parent
4fae6a4a86
commit
481e912c5b
|
@ -9,7 +9,7 @@ module Capybara
|
|||
class NotSupportedByDriverError < CapybaraError; end
|
||||
|
||||
class << self
|
||||
attr_accessor :debug, :asset_root
|
||||
attr_accessor :debug, :asset_root, :app_host
|
||||
attr_writer :default_selector
|
||||
|
||||
def default_selector
|
||||
|
@ -31,6 +31,7 @@ module Capybara
|
|||
autoload :Base, 'capybara/driver/base'
|
||||
autoload :RackTest, 'capybara/driver/rack_test_driver'
|
||||
autoload :Celerity, 'capybara/driver/celerity_driver'
|
||||
autoload :Culerity, 'capybara/driver/culerity_driver'
|
||||
autoload :Selenium, 'capybara/driver/selenium_driver'
|
||||
end
|
||||
end
|
||||
|
|
|
@ -41,40 +41,14 @@ class Capybara::Driver::Celerity < Capybara::Driver::Base
|
|||
end
|
||||
end
|
||||
|
||||
attr_reader :app, :rack_server, :host, :port, :celerity_options, :culerity
|
||||
|
||||
def self.server
|
||||
unless @_server
|
||||
@_server = ::Culerity::run_server
|
||||
at_exit do
|
||||
@_server.close
|
||||
end
|
||||
end
|
||||
@_server
|
||||
end
|
||||
|
||||
def initialize(app, options = {})
|
||||
attr_reader :app, :rack_server
|
||||
|
||||
def initialize(app)
|
||||
@app = app
|
||||
|
||||
top_opts = [:driver, :host, :port, :rack, :culerity]
|
||||
|
||||
if options[:rack] == false
|
||||
@host = options[:host] || 'localhost'
|
||||
@port = options[:port] || '3001'
|
||||
Capybara.log("celerity driver using #{host}:#{port}")
|
||||
else
|
||||
unless Capybara.app_host
|
||||
Capybara.log("using app host #{Capybara.app_host}")
|
||||
@rack_server = Capybara::Server.new(@app)
|
||||
Capybara.log("celerity driver using rack")
|
||||
end
|
||||
|
||||
@celerity_options = {
|
||||
:browser => :firefox,
|
||||
:log_level => :off
|
||||
}.merge(options.reject {|k,v| top_opts.include?(k) })
|
||||
|
||||
@culerity = options[:culerity] || !RUBY_PLATFORM.match(/java/)
|
||||
|
||||
end
|
||||
|
||||
def visit(path)
|
||||
|
@ -100,34 +74,19 @@ class Capybara::Driver::Celerity < Capybara::Driver::Base
|
|||
end
|
||||
|
||||
|
||||
|
||||
private
|
||||
|
||||
def url(path)
|
||||
if rack_server
|
||||
rack_server.url(path)
|
||||
else
|
||||
"http://#{host}:#{port}#{path}"
|
||||
end
|
||||
Capybara.app_host || rack_server.url(path)
|
||||
end
|
||||
|
||||
def browser
|
||||
unless @_browser
|
||||
if culerity
|
||||
Capybara.log "celerity driver via Culerity"
|
||||
require 'culerity'
|
||||
@_browser = ::Culerity::RemoteBrowserProxy.new self.class.server, celerity_options
|
||||
at_exit do
|
||||
@_browser.exit
|
||||
end
|
||||
else
|
||||
require 'celerity'
|
||||
@_browser = ::Celerity::Browser.new(celerity_options)
|
||||
end
|
||||
@_browser = ::Celerity::Browser.new(:browser => :firefox, :log_level => :off)
|
||||
end
|
||||
|
||||
@_browser
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
require 'culerity'
|
||||
|
||||
class Capybara::Driver::Culerity < Capybara::Driver::Celerity
|
||||
|
||||
|
||||
def self.server
|
||||
unless @_server
|
||||
@_server = ::Culerity::run_server
|
||||
at_exit do
|
||||
@_server.close
|
||||
end
|
||||
end
|
||||
@_server
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
|
||||
def browser
|
||||
unless @_browser
|
||||
@_browser = ::Culerity::RemoteBrowserProxy.new self.class.server, {:browser => :firefox, :log_level => :off}
|
||||
at_exit do
|
||||
@_browser.exit
|
||||
end
|
||||
end
|
||||
@_browser
|
||||
end
|
||||
|
||||
end
|
|
@ -4,14 +4,7 @@ module Capybara
|
|||
attr_reader :app, :mode, :mode_options
|
||||
|
||||
def initialize(mode, app)
|
||||
if mode.respond_to?(:has_key?)
|
||||
@mode = mode[:driver]
|
||||
@mode_options = mode
|
||||
else
|
||||
@mode = mode
|
||||
@mode_options = {}
|
||||
end
|
||||
|
||||
@app = app
|
||||
end
|
||||
|
||||
|
@ -22,8 +15,10 @@ module Capybara
|
|||
Capybara::Driver::RackTest.new(app)
|
||||
when :selenium
|
||||
Capybara::Driver::Selenium.new(app)
|
||||
when :culerity, :celerity
|
||||
Capybara::Driver::Celerity.new(app, mode_options)
|
||||
when :celerity
|
||||
Capybara::Driver::Celerity.new(app)
|
||||
when :culerity
|
||||
Capybara::Driver::Culerity.new(app)
|
||||
else
|
||||
raise Capybara::DriverNotFoundError, "no driver called #{mode} was found"
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue