From 2e6745e67699eb4458c2966f86ab9ab70fc7fac4 Mon Sep 17 00:00:00 2001 From: Jonas Nicklas Date: Tue, 29 Jun 2010 22:07:28 +0200 Subject: [PATCH] Redirect a maximum of 5 times instead of time limit, closes #67 This is as per http://www.ietf.org/rfc/rfc2068.txt "A user agent SHOULD NOT automatically redirect a request more than 5 times, since such redirections usually indicate an infinite loop." --- lib/capybara/driver/rack_test_driver.rb | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/capybara/driver/rack_test_driver.rb b/lib/capybara/driver/rack_test_driver.rb index ffde0197a..314c6402b 100644 --- a/lib/capybara/driver/rack_test_driver.rb +++ b/lib/capybara/driver/rack_test_driver.rb @@ -249,10 +249,8 @@ def current_path end def follow_redirects! - Capybara::WaitUntil.timeout(4) do - redirect = response.redirect? - follow_redirect! if redirect - not redirect + 5.times do + follow_redirect! if response.redirect? end rescue Capybara::TimeoutError raise Capybara::InfiniteRedirectError, "infinite redirect detected!"