aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--spec/controllers/request_controller_spec.rb23
1 files changed, 23 insertions, 0 deletions
diff --git a/spec/controllers/request_controller_spec.rb b/spec/controllers/request_controller_spec.rb
index 24ea0dfdd..7b24e88d7 100644
--- a/spec/controllers/request_controller_spec.rb
+++ b/spec/controllers/request_controller_spec.rb
@@ -1848,23 +1848,42 @@ end
describe RequestController, "when reporting a request" do
integrate_views
+ it "should only allow logged-in users to report requests" do
+ get :report_request, :url_title => info_requests(:badger_request).url_title
+ post_redirect = PostRedirect.get_last_post_redirect
+ response.should redirect_to(:controller => 'user', :action => 'signin', :token => post_redirect.token)
+ end
+
it "should mark a request as having been reported" do
ir = info_requests(:badger_request)
title = ir.url_title
get :show, :url_title => title
assigns[:info_request].attention_requested.should == false
+
+ session[:user_id] = users(:bob_smith_user).id
get :report_request, :url_title => title
+ response.should redirect_to(:action => :show, :url_title => title)
+
get :show, :url_title => title
+ response.should be_success
assigns[:info_request].attention_requested.should == true
assigns[:info_request].described_state.should == "attention_requested"
end
it "should not allow a request to be reported twice" do
title = info_requests(:badger_request).url_title
+
+ session[:user_id] = users(:bob_smith_user).id
get :report_request, :url_title => title
+ response.should redirect_to(:action => :show, :url_title => title)
+
get :show, :url_title => title
response.body.should include("has been reported")
+
+ session[:user_id] = users(:bob_smith_user).id
get :report_request, :url_title => title
+ response.should redirect_to(:action => :show, :url_title => title)
+
get :show, :url_title => title
response.body.should include("has already been reported")
end
@@ -1873,7 +1892,11 @@ describe RequestController, "when reporting a request" do
title = info_requests(:badger_request).url_title
get :show, :url_title => title
response.body.should include("Offensive?")
+
+ session[:user_id] = users(:bob_smith_user).id
get :report_request, :url_title => title
+ response.should redirect_to(:action => :show, :url_title => title)
+
get :show, :url_title => title
response.body.should_not include("Offensive?")
response.body.should include("This request has been reported")