diff options
-rw-r--r-- | spec/controllers/application_controller_spec.rb | 54 | ||||
-rw-r--r-- | spec/controllers/request_controller_spec.rb | 27 | ||||
-rw-r--r-- | spec/controllers/services_controller_spec.rb | 46 |
3 files changed, 71 insertions, 56 deletions
diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb deleted file mode 100644 index 18341ae6f..000000000 --- a/spec/controllers/application_controller_spec.rb +++ /dev/null @@ -1,54 +0,0 @@ -require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') -require 'fakeweb' - -describe ApplicationController, "when accessing third party services" do - - before (:each) do - FakeWeb.clean_registry - end - - after (:each) do - FakeWeb.clean_registry - end - - it "should succeed if the service responds OK" do - Configuration.stub!(:gaze_url).and_return('http://denmark.com') - FakeWeb.register_uri(:get, %r|denmark.com|, :body => "DK") - country = self.controller.send :country_from_ip - country.should == "DK" - end - it "should fail silently if the country_from_ip domain doesn't exist" do - Configuration.stub!(:gaze_url).and_return('http://12123sdf14qsd.com') - country = self.controller.send :country_from_ip - country.should == Configuration.iso_country_code - end - it "should fail silently if the country_from_ip service doesn't exist" do - Configuration.stub!(:gaze_url).and_return('http://www.google.com') - country = self.controller.send :country_from_ip - country.should == Configuration.iso_country_code - end - it "should fail silently 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') - country = self.controller.send :country_from_ip - country.should == Configuration.iso_country_code - end -end - -describe ApplicationController, "when caching fragments" do - - it "should not fail with long filenames" do - long_name = "blahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblah.txt" - params = { :only_path => true, - :file_name => [long_name], - :controller => "request", - :action => "get_attachment_as_html", - :id => "132", - :incoming_message_id => "44", - :part => "2" } - path = self.controller.send(:foi_fragment_cache_path, params) - self.controller.send(:foi_fragment_cache_write, path, "whassap") - end - -end - diff --git a/spec/controllers/request_controller_spec.rb b/spec/controllers/request_controller_spec.rb index 521ad7b5a..7cfa5cb4a 100644 --- a/spec/controllers/request_controller_spec.rb +++ b/spec/controllers/request_controller_spec.rb @@ -2313,4 +2313,31 @@ describe RequestController, "when reporting a request (logged in)" do end end +describe RequestController, "when caching fragments" do + + it "should not fail with long filenames" do + long_name = "blahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblah.txt" + info_request = mock(InfoRequest, :user_can_view? => true, + :all_can_view? => true) + incoming_message = mock(IncomingMessage, :info_request => info_request, + :parse_raw_email! => true, + :info_request_id => 132, + :get_attachments_for_display => nil, + :html_mask_stuff! => nil) + attachment = mock(FoiAttachment, :display_filename => long_name, + :body_as_html => ['some text', 'wrapper']) + IncomingMessage.stub!(:find).with("44").and_return(incoming_message) + IncomingMessage.stub!(:get_attachment_by_url_part_number).and_return(attachment) + InfoRequest.stub!(:find).with("132").and_return(info_request) + params = { :file_name => [long_name], + :controller => "request", + :action => "get_attachment_as_html", + :id => "132", + :incoming_message_id => "44", + :part => "2" } + get :get_attachment_as_html, params + end + +end + diff --git a/spec/controllers/services_controller_spec.rb b/spec/controllers/services_controller_spec.rb index a701ae247..a9950d520 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 integrate_views @@ -40,4 +41,45 @@ describe ServicesController, "when using web services" do FastGettext.set_locale(@old_locale) end -end
\ No newline at end of file + 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 |