webrat/spec/private/core/configuration_spec.rb

117 lines
3.0 KiB
Ruby
Executable File

require File.expand_path(File.dirname(__FILE__) + "/../../spec_helper")
describe Webrat::Configuration do
Spec::Matchers.define :parse_with_nokogiri do
match do |config|
config.parse_with_nokogiri?
end
end
Spec::Matchers.define :open_error_files do
match do |config|
config.open_error_files?
end
end
it "should have a mode" do
Webrat.configuration.should respond_to(:mode)
end
it "should use Nokogiri as the parser by default" do
config = Webrat::Configuration.new
config.should parse_with_nokogiri
end
it "should open error files by default" do
config = Webrat::Configuration.new
config.should open_error_files
end
it "should detect infinite redirects after 10" do
config = Webrat::Configuration.new
config.infinite_redirect_limit.should == 10
end
it "should be configurable with a block" do
Webrat.configure do |config|
config.open_error_files = false
end
config = Webrat.configuration
config.should_not open_error_files
end
it "should be configurable with multiple blocks" do
Webrat.configure do |config|
config.open_error_files = false
end
Webrat.configure do |config|
config.selenium_server_port = 1234
end
config = Webrat.configuration
config.should_not open_error_files
config.selenium_server_port.should == 1234
end
[:rails,
:selenium,
:rack,
:sinatra,
:mechanize].each do |mode|
it "should require correct lib when in #{mode} mode" do
config = Webrat::Configuration.new
config.should_receive(:require).with("webrat/#{mode}")
config.mode = mode
end
end
it "should require merb_adapter when in merb mode" do
config = Webrat::Configuration.new
config.should_receive(:require).with("webrat/merb_adapter")
config.mode = :merb
end
describe "Selenium" do
before :each do
@config = Webrat::Configuration.new
end
it "should use 'test' as the application environment by default" do
@config.application_environment.should == :test
end
it "should use 3001 as the application port by default" do
@config.application_port.should == 3001
end
it 'should default application address to localhost' do
@config.application_address.should == 'localhost'
end
it 'should default selenium server address to nil' do
@config.selenium_server_address.should be_nil
end
it 'should default selenium server port to 4444' do
@config.selenium_server_port.should == 4444
end
it 'should default selenium browser key to *firefox' do
@config.selenium_browser_key.should == '*firefox'
end
it 'should default selenium browser startup timeout to 5 seconds' do
@config.selenium_browser_startup_timeout.should == 5
end
it 'should allow overriding of the browser startup timeout' do
@config.selenium_browser_startup_timeout = 10
@config.selenium_browser_startup_timeout.should == 10
end
end
end