Skip to content

Commit

Permalink
Made Selenium Rails integration tests at least runnable, although
Browse files Browse the repository at this point in the history
there are failures.
  • Loading branch information
Larry Diehl committed May 29, 2009
1 parent c3f067b commit 6279137
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 21 deletions.
8 changes: 1 addition & 7 deletions lib/webrat/selenium.rb
@@ -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"
Expand Down
20 changes: 12 additions & 8 deletions lib/webrat/selenium/silence_stream.rb
@@ -1,14 +1,18 @@
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
end
end
18 changes: 12 additions & 6 deletions spec/integration/rails/test/integration/webrat_test.rb
Expand Up @@ -2,9 +2,12 @@

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
Expand Down Expand Up @@ -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

Expand Down

0 comments on commit 6279137

Please sign in to comment.