Limit the amount of error pages open.
This commit is contained in:
parent
7cde0573c0
commit
39183b031a
@ -42,7 +42,7 @@ module Webrat
|
|||||||
|
|
||||||
# Which port should selenium use to access the application. Defaults to application_port
|
# Which port should selenium use to access the application. Defaults to application_port
|
||||||
attr_writer :application_port_for_selenium
|
attr_writer :application_port_for_selenium
|
||||||
|
|
||||||
def application_port_for_selenium
|
def application_port_for_selenium
|
||||||
@application_port_for_selenium || self.application_port
|
@application_port_for_selenium || self.application_port
|
||||||
end
|
end
|
||||||
@ -91,9 +91,9 @@ module Webrat
|
|||||||
tmp_dir = Pathname.new(Dir.pwd).join("tmp")
|
tmp_dir = Pathname.new(Dir.pwd).join("tmp")
|
||||||
self.saved_pages_dir = tmp_dir.exist? ? tmp_dir : Dir.pwd
|
self.saved_pages_dir = tmp_dir.exist? ? tmp_dir : Dir.pwd
|
||||||
end
|
end
|
||||||
|
|
||||||
def open_error_files? #:nodoc:
|
def open_error_files? #:nodoc:
|
||||||
@open_error_files ? true : false
|
!! @open_error_files
|
||||||
end
|
end
|
||||||
|
|
||||||
# Allows setting of webrat's mode, valid modes are:
|
# Allows setting of webrat's mode, valid modes are:
|
||||||
|
@ -76,6 +76,7 @@ For example:
|
|||||||
@default_headers = {}
|
@default_headers = {}
|
||||||
@custom_headers = {}
|
@custom_headers = {}
|
||||||
@current_url = nil
|
@current_url = nil
|
||||||
|
@exceptions = 0
|
||||||
reset
|
reset
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -118,8 +119,7 @@ For example:
|
|||||||
|
|
||||||
process_request(http_method, url, data, h)
|
process_request(http_method, url, data, h)
|
||||||
|
|
||||||
save_and_open_page if exception_caught? && Webrat.configuration.open_error_files?
|
process_response_errors
|
||||||
raise PageLoadError.new("Page load was not successful (Code: #{response_code.inspect}):\n#{formatted_error}") unless success_code?
|
|
||||||
|
|
||||||
reset
|
reset
|
||||||
|
|
||||||
@ -299,5 +299,14 @@ For example:
|
|||||||
@_page_scope = nil
|
@_page_scope = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def process_response_errors
|
||||||
|
if exception_caught? && @exceptions < 3 && Webrat.configuration.open_error_files?
|
||||||
|
save_and_open_page
|
||||||
|
@exceptions += 1
|
||||||
|
end
|
||||||
|
|
||||||
|
raise PageLoadError.new("Page load was not successful (Code: #{response_code.inspect}):\n#{formatted_error}") unless success_code?
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -41,6 +41,10 @@ class RackApp < Sinatra::Base
|
|||||||
uploaded_file = params[:uploaded_file]
|
uploaded_file = params[:uploaded_file]
|
||||||
Marshal.dump(:tempfile => uploaded_file[:tempfile].read, :type => uploaded_file[:type], :filename => uploaded_file[:filename])
|
Marshal.dump(:tempfile => uploaded_file[:tempfile].read, :type => uploaded_file[:type], :filename => uploaded_file[:filename])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
get "/error" do
|
||||||
|
["Exception caught: you wanted it."]
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
__END__
|
__END__
|
||||||
|
@ -58,6 +58,24 @@ class WebratRackTest < Test::Unit::TestCase
|
|||||||
assert_equal "webrat_rack_test.rb", upload[:filename]
|
assert_equal "webrat_rack_test.rb", upload[:filename]
|
||||||
assert_equal File.read(__FILE__), upload[:tempfile]
|
assert_equal File.read(__FILE__), upload[:tempfile]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_open_errors
|
||||||
|
$open_pages = []
|
||||||
|
|
||||||
|
Webrat.configure do |config|
|
||||||
|
config.open_error_files = true
|
||||||
|
end
|
||||||
|
|
||||||
|
def webrat_session.open_in_browser(path)
|
||||||
|
$open_pages << path
|
||||||
|
end
|
||||||
|
|
||||||
|
5.times do
|
||||||
|
visit "/error"
|
||||||
|
end
|
||||||
|
|
||||||
|
assert_equal 3, $open_pages.size
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
class WebratRackSetupTest < Test::Unit::TestCase
|
class WebratRackSetupTest < Test::Unit::TestCase
|
||||||
|
Loading…
Reference in New Issue
Block a user