aboutsummaryrefslogtreecommitdiffstats
path: root/spec/controllers/request_controller_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/controllers/request_controller_spec.rb')
-rw-r--r--spec/controllers/request_controller_spec.rb35
1 files changed, 32 insertions, 3 deletions
diff --git a/spec/controllers/request_controller_spec.rb b/spec/controllers/request_controller_spec.rb
index 01a663bf8..530e9b2c3 100644
--- a/spec/controllers/request_controller_spec.rb
+++ b/spec/controllers/request_controller_spec.rb
@@ -193,6 +193,7 @@ describe RequestController, "when changing things that appear on the request pag
end
describe RequestController, "when showing one request" do
+ integrate_views
before(:each) do
load_raw_emails_data
@@ -209,6 +210,12 @@ describe RequestController, "when showing one request" do
response.should render_template('show')
end
+ it "should show the request" do
+ get :show, :url_title => 'why_do_you_have_such_a_fancy_dog'
+ response.should be_success
+ response.body.should include("Why do you have such a fancy dog?")
+ end
+
it "should assign the request" do
get :show, :url_title => 'why_do_you_have_such_a_fancy_dog'
assigns[:info_request].should == info_requests(:fancy_dog_request)
@@ -1486,7 +1493,7 @@ describe RequestController, "sending unclassified new response reminder alerts"
deliveries = ActionMailer::Base.deliveries
deliveries.size.should == 3 # sufficiently late it sends reminders too
mail = deliveries[0]
- mail.body.should =~ /To let us know/
+ mail.body.should =~ /To let everyone know/
mail.to_addrs.first.to_s.should == info_requests(:fancy_dog_request).user.name_and_email
mail.body =~ /(http:\/\/.*\/c\/(.*))/
mail_url = $1
@@ -1843,9 +1850,17 @@ describe RequestController, "when showing similar requests" do
end
-describe RequestController, "when reporting a request" do
- integrate_views
+describe RequestController, "when reporting a request when not logged in" do
+ 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
+end
+describe RequestController, "when reporting a request (logged in)" do
+ integrate_views
+
before do
@user = users(:robin_user)
session[:user_id] = @user.id
@@ -1856,19 +1871,29 @@ describe RequestController, "when reporting a request" do
title = ir.url_title
get :show, :url_title => title
assigns[:info_request].attention_requested.should == false
+
post :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
+
post :report_request, :url_title => title
+ response.should redirect_to(:action => :show, :url_title => title)
get :show, :url_title => title
+ response.should be_success
response.body.should include("has been reported")
+
post :report_request, :url_title => title
+ response.should redirect_to(:action => :show, :url_title => title)
get :show, :url_title => title
+ response.should be_success
response.body.should include("has already been reported")
end
@@ -1876,10 +1901,14 @@ describe RequestController, "when reporting a request" do
title = info_requests(:badger_request).url_title
get :show, :url_title => title
response.body.should include("Offensive?")
+
post :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")
+
info_requests(:badger_request).set_described_state("successful")
get :show, :url_title => title
response.body.should_not include("This request has been reported")