aboutsummaryrefslogtreecommitdiffstats
path: root/spec/controllers/services_controller_spec.rb
diff options
context:
space:
mode:
authorMatthew Landauer <matthew@openaustralia.org>2013-01-04 16:22:24 +1100
committerMatthew Landauer <matthew@openaustralia.org>2013-01-04 16:22:40 +1100
commit58defe7a49eda51676ffaa34ccf2b267d0e62159 (patch)
treef510d276e31f86abecab98d44282e1521c6916a0 /spec/controllers/services_controller_spec.rb
parentc9c599daacc54dcba508fa5868e3aef928b5670d (diff)
parent185c09f98dc670881239ecd230e47fb2f214e53b (diff)
Merge remote-tracking branch 'mysociety/develop' into rails-3-spike
Conflicts: Gemfile.lock Rakefile app/controllers/request_controller.rb lib/tasks/rspec.rake spec/controllers/services_controller_spec.rb spec/spec_helper.rb spec/views/request/_after_actions.rhtml_spec.rb
Diffstat (limited to 'spec/controllers/services_controller_spec.rb')
-rw-r--r--spec/controllers/services_controller_spec.rb44
1 files changed, 43 insertions, 1 deletions
diff --git a/spec/controllers/services_controller_spec.rb b/spec/controllers/services_controller_spec.rb
index d2d22826a..796c6b63d 100644
--- a/spec/controllers/services_controller_spec.rb
+++ b/spec/controllers/services_controller_spec.rb
@@ -1,7 +1,8 @@
# -*- coding: utf-8 -*-
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
+require 'fakeweb'
-describe ServicesController, "when using web services" do
+describe ServicesController, "when returning a message for people in other countries" do
render_views
@@ -40,4 +41,45 @@ describe ServicesController, "when using web services" do
FastGettext.set_locale(@old_locale)
end
+ describe 'when the external country from IP service is in different states' do
+
+ before (:each) do
+ FakeWeb.clean_registry
+ end
+
+ after (:each) do
+ FakeWeb.clean_registry
+ end
+
+ it "should return the 'another country' message if the service responds OK" do
+ config = MySociety::Config.load_default()
+ config['ISO_COUNTRY_CODE'] = "DE"
+ Configuration.stub!(:gaze_url).and_return('http://denmark.com')
+ FakeWeb.register_uri(:get, %r|denmark.com|, :body => "DK")
+ get :other_country_message
+ response.should be_success
+ response.body.should == 'Hello! We have an <a href="/help/alaveteli?country_name=Deutschland">important message</a> for visitors outside Deutschland <span class="close-button">X</span>'
+ end
+ it "should default to no message if the country_from_ip domain doesn't exist" do
+ Configuration.stub!(:gaze_url).and_return('http://12123sdf14qsd.com')
+ get :other_country_message
+ response.should be_success
+ response.body.should == ''
+ end
+ it "should default to no message if the country_from_ip service doesn't exist" do
+ Configuration.stub!(:gaze_url).and_return('http://www.google.com')
+ get :other_country_message
+ response.should be_success
+ response.body.should == ''
+ end
+ it "should default to no message if the country_from_ip service returns an error" do
+ FakeWeb.register_uri(:get, %r|500.com|, :body => "Error", :status => ["500", "Error"])
+ Configuration.stub!(:gaze_url).and_return('http://500.com')
+ get :other_country_message
+ response.should be_success
+ response.body.should == ''
+ end
+
+ end
+
end