aboutsummaryrefslogtreecommitdiffstats
path: root/spec/controllers/admin_public_body_controller_spec.rb
diff options
context:
space:
mode:
authorRobin Houston <robin.houston@gmail.com>2012-01-27 00:32:21 +0000
committerRobin Houston <robin.houston@gmail.com>2012-01-27 00:32:21 +0000
commitcb9c215d3eb3369d7f619d98c55e357247ca72d1 (patch)
tree52eab973e9695bf6c7fc8e07bb11434dc1a3c900 /spec/controllers/admin_public_body_controller_spec.rb
parent673b5cc3939e9abc3bc1f5984f2a61ed45b70529 (diff)
parent4782d614fa4fbed323c66da4a854ca8182f42fb5 (diff)
Merge branch 'release/0.5' into develop
Diffstat (limited to 'spec/controllers/admin_public_body_controller_spec.rb')
-rw-r--r--spec/controllers/admin_public_body_controller_spec.rb73
1 files changed, 35 insertions, 38 deletions
diff --git a/spec/controllers/admin_public_body_controller_spec.rb b/spec/controllers/admin_public_body_controller_spec.rb
index 2670f2add..6954e22a1 100644
--- a/spec/controllers/admin_public_body_controller_spec.rb
+++ b/spec/controllers/admin_public_body_controller_spec.rb
@@ -25,9 +25,9 @@ describe AdminPublicBodyController, "when administering public bodies" do
end
it "creates a new public body" do
- PublicBody.count.should == 2
+ n = PublicBody.count
post :create, { :public_body => { :name => "New Quango", :short_name => "", :tag_string => "blah", :request_email => 'newquango@localhost', :last_edit_comment => 'From test code' } }
- PublicBody.count.should == 3
+ PublicBody.count.should == n + 1
end
it "edits a public body" do
@@ -42,13 +42,19 @@ describe AdminPublicBodyController, "when administering public bodies" do
pb.name.should == "Renamed"
end
+ it "does not destroy a public body that has associated requests" do
+ id = public_bodies(:humpadink_public_body).id
+ n = PublicBody.count
+ post :destroy, { :id => id }
+ response.should redirect_to(:controller=>'admin_public_body', :action=>'show', :id => id)
+ PublicBody.count.should == n
+ end
+
it "destroys a public body" do
- PublicBody.count.should == 2
- info_request_events(:badger_outgoing_message_event).destroy
- outgoing_messages(:badger_outgoing_message).destroy
- info_requests(:badger_request).destroy
- post :destroy, { :id => 3 }
- PublicBody.count.should == 1
+ n = PublicBody.count
+ post :destroy, { :id => public_bodies(:forlorn_public_body).id }
+ response.should redirect_to(:controller=>'admin_public_body', :action=>'list')
+ PublicBody.count.should == n - 1
end
it "sets a using_admin flag" do
@@ -64,10 +70,10 @@ describe AdminPublicBodyController, "when administering public bodies and paying
it "disallows non-authenticated users to do anything" do
@request.env["HTTP_AUTHORIZATION"] = ""
- PublicBody.count.should == 2
+ n = PublicBody.count.should
post :destroy, { :id => 3 }
response.code.should == "401"
- PublicBody.count.should == 2
+ PublicBody.count.should == n
session[:using_admin].should == nil
end
@@ -76,25 +82,22 @@ describe AdminPublicBodyController, "when administering public bodies and paying
config['ADMIN_USERNAME'] = ''
config['ADMIN_PASSWORD'] = ''
@request.env["HTTP_AUTHORIZATION"] = ""
- PublicBody.count.should == 2
- info_request_events(:badger_outgoing_message_event).destroy
- outgoing_messages(:badger_outgoing_message).destroy
- info_requests(:badger_request).destroy
- post :destroy, { :id => 3 }
- PublicBody.count.should == 1
+
+ n = PublicBody.count
+ post :destroy, { :id => public_bodies(:forlorn_public_body).id }
+ PublicBody.count.should == n - 1
session[:using_admin].should == 1
end
+
it "skips admin authorisation when no username set" do
config = MySociety::Config.load_default()
config['ADMIN_USERNAME'] = ''
config['ADMIN_PASSWORD'] = 'fuz'
@request.env["HTTP_AUTHORIZATION"] = ""
- PublicBody.count.should == 2
- info_request_events(:badger_outgoing_message_event).destroy
- outgoing_messages(:badger_outgoing_message).destroy
- info_requests(:badger_request).destroy
- post :destroy, { :id => 3 }
- PublicBody.count.should == 1
+
+ n = PublicBody.count
+ post :destroy, { :id => public_bodies(:forlorn_public_body).id }
+ PublicBody.count.should == n - 1
session[:using_admin].should == 1
end
it "forces authorisation when password and username set" do
@@ -102,14 +105,11 @@ describe AdminPublicBodyController, "when administering public bodies and paying
config['ADMIN_USERNAME'] = 'biz'
config['ADMIN_PASSWORD'] = 'fuz'
@request.env["HTTP_AUTHORIZATION"] = ""
- PublicBody.count.should == 2
+ n = PublicBody.count.should
basic_auth_login(@request, "baduser", "badpassword")
- info_request_events(:badger_outgoing_message_event).destroy
- outgoing_messages(:badger_outgoing_message).destroy
- info_requests(:badger_request).destroy
- post :destroy, { :id => 3 }
+ post :destroy, { :id => public_bodies(:forlorn_public_body).id }
response.code.should == "401"
- PublicBody.count.should == 2
+ PublicBody.count.should == n
session[:using_admin].should == nil
end
@@ -179,12 +179,9 @@ describe AdminPublicBodyController, "when administering public bodies with i18n"
end
it "destroy a public body" do
- PublicBody.count.should == 2
- info_request_events(:badger_outgoing_message_event).destroy
- outgoing_messages(:badger_outgoing_message).destroy
- info_requests(:badger_request).destroy
- post :destroy, { :id => 3 }
- PublicBody.count.should == 1
+ n = PublicBody.count
+ post :destroy, { :id => public_bodies(:forlorn_public_body).id }
+ PublicBody.count.should == n - 1
end
end
@@ -207,23 +204,23 @@ describe AdminPublicBodyController, "when creating public bodies with i18n" do
it "creates a new public body in one locale" do
- PublicBody.count.should == 2
+ n = PublicBody.count
post :create, { :public_body => { :name => "New Quango", :short_name => "", :tag_string => "blah", :request_email => 'newquango@localhost', :last_edit_comment => 'From test code' } }
- PublicBody.count.should == 3
+ PublicBody.count.should == n + 1
body = PublicBody.find_by_name("New Quango")
response.should redirect_to(:controller=>'admin_public_body', :action=>'show', :id=>body.id)
end
it "creates a new public body with multiple locales" do
- PublicBody.count.should == 2
+ n = PublicBody.count
post :create, {
:public_body => {
:name => "New Quango", :short_name => "", :tag_string => "blah", :request_email => 'newquango@localhost', :last_edit_comment => 'From test code',
:translated_versions => [{ :locale => "es", :name => "Mi Nuevo Quango", :short_name => "", :request_email => 'newquango@localhost' }]
}
}
- PublicBody.count.should == 3
+ PublicBody.count.should == n + 1
body = PublicBody.find_by_name("New Quango")
body.translations.map {|t| t.locale.to_s}.sort.should == ["en", "es"]