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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
require File.dirname(__FILE__) + '/../spec_helper'
describe PublicBodyController, "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_body].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 => 'public_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 => 'public_body', :action => 'show', :url_name => "dfh")
end
end
describe PublicBodyController, "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 == "all"
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
it "should list a machine tagged thing, should get it in both ways" do
public_bodies(:humpadink_public_body).tag_string = "eats_cheese:stilton"
get :list, :tag => "eats_cheese"
response.should render_template('list')
assigns[:public_bodies].should == [ public_bodies(:humpadink_public_body) ]
assigns[:tag].should == "eats_cheese"
get :list, :tag => "eats_cheese:jarlsberg"
response.should render_template('list')
assigns[:public_bodies].should == [ ]
assigns[:tag].should == "eats_cheese:jarlsberg"
get :list, :tag => "eats_cheese:stilton"
response.should render_template('list')
assigns[:public_bodies].should == [ public_bodies(:humpadink_public_body) ]
assigns[:tag].should == "eats_cheese:stilton"
end
end
|