Made Selenium Rails integration tests at least runnable, although

there are failures.
This commit is contained in:
Larry Diehl 2009-05-28 22:40:52 -07:00
parent c3f067b551
commit 627913708c
3 changed files with 25 additions and 21 deletions

View File

@ -1,13 +1,7 @@
require "webrat"
gem "selenium-client", ">=1.2.14"
require "selenium/client"
# active_support already defines silence_stream, no need to do that again if it's already present.
# http://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/kernel/reporting.rb
unless Kernel.respond_to?(:silence_stream)
require "webrat/selenium/silence_stream"
end
require "webrat/selenium/silence_stream"
require "webrat/selenium/selenium_session"
require "webrat/selenium/matchers"
require "webrat/core_extensions/tcp_socket"

View File

@ -1,13 +1,17 @@
module Webrat
module Selenium
module SilenceStream
def silence_stream(stream)
old_stream = stream.dup
stream.reopen(RUBY_PLATFORM =~ /mswin/ ? 'NUL:' : '/dev/null')
stream.sync = true
yield
ensure
stream.reopen(old_stream)
# active_support already defines silence_stream, no need to do that again if it's already present.
# http://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/kernel/reporting.rb
unless Kernel.respond_to?(:silence_stream)
def silence_stream(stream)
old_stream = stream.dup
stream.reopen(RUBY_PLATFORM =~ /mswin/ ? 'NUL:' : '/dev/null')
stream.sync = true
yield
ensure
stream.reopen(old_stream)
end
end
end
end

View File

@ -2,9 +2,12 @@ require 'test_helper'
class WebratTest < ActionController::IntegrationTest
test "should visit fully qualified urls" do
visit root_url(:host => "chunkybacon.example.com")
assert_equal "chunkybacon", request.subdomains.first
# Firefox raises a security concern under Selenium
unless ENV['WEBRAT_INTEGRATION_MODE'] == 'selenium'
test "should visit fully qualified urls" do
visit root_url(:host => "chunkybacon.example.com")
assert_equal "chunkybacon", request.subdomains.first
end
end
test "should visit pages" do
@ -68,9 +71,12 @@ class WebratTest < ActionController::IntegrationTest
assert_have_selector "h1"
end
test "should detect infinite redirects" do
assert_raises Webrat::InfiniteRedirectError do
visit infinite_redirect_path
# Firefox detects and prevents infinite redirects under Selenium
unless ENV['WEBRAT_INTEGRATION_MODE'] == 'selenium'
test "should detect infinite redirects" do
assert_raises Webrat::InfiniteRedirectError do
visit infinite_redirect_path
end
end
end