aboutsummaryrefslogtreecommitdiffstats
path: root/spec/controllers/application_controller_spec.rb
blob: a7e505376c37897bd9849ffb54ec361b85390fb9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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
        config = MySociety::Config.load_default()
        config['GAZE_URL'] = '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
        config = MySociety::Config.load_default()
        config['GAZE_URL'] = 'http://12123sdf14qsd.com'
        country = self.controller.send :country_from_ip
        country.should == config['ISO_COUNTRY_CODE']
    end
    it "should fail silently if the country_from_ip service doesn't exist" do
        config = MySociety::Config.load_default()
        config['GAZE_URL'] = 'http://www.google.com'
        country = self.controller.send :country_from_ip
        country.should == config['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"])
        config = MySociety::Config.load_default()
        config['GAZE_URL'] = 'http://500.com'
        country = self.controller.send :country_from_ip
        country.should == config['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