diff --git a/lib/webrat/core/session.rb b/lib/webrat/core/session.rb
index 6cc198c..41a1222 100644
--- a/lib/webrat/core/session.rb
+++ b/lib/webrat/core/session.rb
@@ -82,7 +82,7 @@ module Webrat
end
def success_code?
- (200..299).include?(response_code)
+ (200..499).include?(response_code)
end
def exception_caught?
diff --git a/spec/api/clicks_area_spec.rb b/spec/api/clicks_area_spec.rb
index c7fbc29..ffb9562 100644
--- a/spec/api/clicks_area_spec.rb
+++ b/spec/api/clicks_area_spec.rb
@@ -21,10 +21,22 @@ describe "clicks_area" do
EOS
- @session.response_code = 404
+ @session.response_code = 501
lambda { @session.clicks_area "Berlin" }.should raise_error
end
+ [200, 300, 400, 499].each do |status|
+ it "should consider the status code as success" do
+ @session.response_body = <<-EOS
+
+ EOS
+ @session.response_code = status
+ lambda { @session.clicks_area "Berlin" }.should_not raise_error
+ end
+ end
+
it "should fail if the area doesn't exist" do
@session.response_body = <<-EOS