+ assert_redirected_to :controller => :errors, :action => :forbidden
+
+ # Ignore issue as administrator
+ session[:user] = create(:administrator_user).id
+ get :ignore, :params => { :id => issue.id }
+ assert_response :not_found
+ assert_equal false, issue.reload.ignored?
+
+ # Ignore issue as moderator
+ session[:user] = create(:moderator_user).id
+ get :ignore, :params => { :id => issue.id }
+ assert_response :redirect
+ assert_equal true, issue.reload.ignored?
+ end
+
+ def test_ignore_administrator
+ target_user = create(:user)
+ issue = create(:issue, :reportable => target_user, :reported_user => target_user, :assigned_role => "administrator")
+
+ # Ignore issue without login
+ get :ignore, :params => { :id => issue.id }
+ assert_response :redirect
+ assert_redirected_to login_path(:referer => ignore_issue_path(issue))
+
+ # Ignore issue as normal user
+ session[:user] = create(:user).id
+ get :ignore, :params => { :id => issue.id }
+ assert_response :redirect
+ assert_redirected_to :controller => :errors, :action => :forbidden
+
+ # Ignore issue as moderator
+ session[:user] = create(:moderator_user).id
+ get :ignore, :params => { :id => issue.id }
+ assert_response :not_found
+ assert_equal false, issue.reload.ignored?
+
+ # Ignore issue as administrator
+ session[:user] = create(:administrator_user).id
+ get :ignore, :params => { :id => issue.id }
+ assert_response :redirect
+ assert_equal true, issue.reload.ignored?