aboutsummaryrefslogtreecommitdiffstats
path: root/spec/controllers/body_controller_spec.rb
blob: c18797275f480588738e5f4dc866d617c1d422fd (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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
require File.dirname(__FILE__) + '/../spec_helper'

describe BodyController, "when showing a body" do
    integrate_views
    fixtures :public_bodies, :public_body_versions
  
    it "should be successful" do
        get :show, :url_name => "dfh"
        response.should be_success
    end

    it "should render with 'show' template" do
        get :show, :url_name => "dfh"
        response.should render_template('show')
    end

    it "should assign the body" do
        get :show, :url_name => "dfh"
        assigns[:public_bodies].should == [ public_bodies(:humpadink_public_body) ]
    end

    it "should redirect to newest name if you use historic name of public body in URL" do
        get :show, :url_name => "hdink"
        response.should redirect_to(:controller => 'body', :action => 'show', :url_name => "dfh")
    end
    
    it "should redirect to lower case name if you use mixed case name in URL" do
        get :show, :url_name => "dFh"
        response.should redirect_to(:controller => 'body', :action => 'show', :url_name => "dfh")
    end
end

describe BodyController, "when listing bodies" do
    integrate_views
    fixtures :public_bodies, :public_body_versions
    
    it "should be successful" do
        get :list
        response.should be_success
    end

    it "should list bodies in alphabetical order" do
        get :list

        response.should render_template('list')

        assigns[:public_bodies].should == [ public_bodies(:humpadink_public_body), public_bodies(:geraldine_public_body) ]
        assigns[:tag].should be_nil
        assigns[:description].should == "All"
    end

    it "should list a tagged thing on the appropriate list page, and others on the other page, and all still on the all page" do
        public_bodies(:humpadink_public_body).tag_string = "foo local_council"

        get :list, :tag => "local_council"
        response.should render_template('list')
        assigns[:public_bodies].should == [ public_bodies(:humpadink_public_body) ]
        assigns[:tag].should == "local_council"
        assigns[:description].should == "Local Councils"

        get :list, :tag => "other"
        response.should render_template('list')
        assigns[:public_bodies].should == [ public_bodies(:geraldine_public_body) ]

        get :list
        response.should render_template('list')
        assigns[:public_bodies].should == [ public_bodies(:humpadink_public_body), public_bodies(:geraldine_public_body) ]

    end

end