From 8a39001a447d2a382fcca00a9193d63962d35e81 Mon Sep 17 00:00:00 2001 From: Jonas Nicklas Date: Thu, 12 Nov 2009 19:02:00 +0100 Subject: [PATCH] Follow redirect for button presses --- lib/webcat/driver/rack_test_driver.rb | 1 + spec/session_spec.rb | 5 +++++ spec/test_app.rb | 4 ++++ spec/views/form.erb | 6 ++++++ 4 files changed, 16 insertions(+) diff --git a/lib/webcat/driver/rack_test_driver.rb b/lib/webcat/driver/rack_test_driver.rb index 03cee7b6..1a9bc6f8 100644 --- a/lib/webcat/driver/rack_test_driver.rb +++ b/lib/webcat/driver/rack_test_driver.rb @@ -125,6 +125,7 @@ class Webcat::Driver::RackTest def submit(path, attributes) post(path, attributes) + follow_redirect! while response.redirect? cache_body end diff --git a/spec/session_spec.rb b/spec/session_spec.rb index fa4802d5..836ba731 100644 --- a/spec/session_spec.rb +++ b/spec/session_spec.rb @@ -125,6 +125,11 @@ shared_examples_for "session" do results['first_name'].should == 'John' end end + + it "should follow redirects" do + @session.click_button('Go FAR') + @session.body.should include('You landed') + end end describe "#fill_in" do diff --git a/spec/test_app.rb b/spec/test_app.rb index 5d9ccf5b..5de5e147 100644 --- a/spec/test_app.rb +++ b/spec/test_app.rb @@ -29,6 +29,10 @@ class TestApp < Sinatra::Base erb :form end + post '/redirect' do + redirect '/redirect_again' + end + get '/redirect' do redirect '/redirect_again' end diff --git a/spec/views/form.erb b/spec/views/form.erb index 6565d420..077d0a52 100644 --- a/spec/views/form.erb +++ b/spec/views/form.erb @@ -108,3 +108,9 @@

+ +

+

+ +

+