2009-11-04 17:00:05 -05:00
|
|
|
$:.unshift(File.expand_path('../lib', File.dirname(__FILE__)))
|
|
|
|
|
|
|
|
require 'rubygems'
|
2010-07-21 17:32:14 -04:00
|
|
|
require "bundler/setup"
|
|
|
|
|
2010-09-17 20:23:13 -04:00
|
|
|
require 'rspec'
|
2009-11-16 16:02:16 -05:00
|
|
|
require 'capybara'
|
2011-05-14 15:02:26 -04:00
|
|
|
|
|
|
|
RSpec.configure do |config|
|
|
|
|
config.before do
|
|
|
|
Capybara.configure do |config|
|
|
|
|
config.default_selector = :xpath
|
|
|
|
end
|
|
|
|
end
|
2012-01-26 16:05:49 -05:00
|
|
|
|
|
|
|
# Workaround for http://code.google.com/p/selenium/issues/detail?id=3147:
|
|
|
|
# Rerun the example if we hit a transient "docElement is null" error
|
|
|
|
config.around(:each) do |example|
|
|
|
|
attempts = 0
|
|
|
|
begin
|
|
|
|
example.run
|
2012-02-02 19:33:57 -05:00
|
|
|
# example is just a Proc, @example is the current RSpec::Core::Example
|
2012-01-26 16:05:49 -05:00
|
|
|
e = @example.instance_variable_get('@exception') # usually nil
|
2012-03-16 14:04:35 -04:00
|
|
|
if (defined?(Selenium::WebDriver::Error::UnknownError) && e.is_a?(Selenium::WebDriver::Error::UnknownError) &&
|
2012-01-26 16:05:49 -05:00
|
|
|
e.message == 'docElement is null' && (attempts += 1) < 5)
|
|
|
|
@example.instance_variable_set('@exception', nil)
|
|
|
|
redo
|
|
|
|
end
|
|
|
|
end until true
|
|
|
|
end
|
2011-05-14 15:02:26 -04:00
|
|
|
end
|
|
|
|
|
2011-07-26 13:49:57 -04:00
|
|
|
# Required here instead of in rspec_spec to avoid RSpec deprecation warning
|
|
|
|
require 'capybara/rspec'
|
|
|
|
|
2010-04-09 10:41:35 -04:00
|
|
|
require 'capybara/spec/session'
|
2009-12-18 13:33:36 -05:00
|
|
|
|
2009-11-07 14:44:45 -05:00
|
|
|
alias :running :lambda
|
2010-01-01 12:45:30 -05:00
|
|
|
|
2012-01-04 13:40:27 -05:00
|
|
|
Capybara.app = TestApp
|
2010-01-30 14:09:27 -05:00
|
|
|
Capybara.default_wait_time = 0 # less timeout so tests run faster
|
2010-01-28 16:47:35 -05:00
|
|
|
|
2010-09-07 12:16:19 -04:00
|
|
|
module TestSessions
|
|
|
|
RackTest = Capybara::Session.new(:rack_test, TestApp)
|
|
|
|
Selenium = Capybara::Session.new(:selenium, TestApp)
|
2012-02-01 08:32:33 -05:00
|
|
|
end
|