Added a few tests

This commit is contained in:
Shrey 2015-06-19 13:52:11 +05:30 committed by Matt Amos
parent 965f32d545
commit 25737ce46e
3 changed files with 51 additions and 2 deletions

View file

@ -219,7 +219,7 @@ class IssuesController < ApplicationController
end
def check_permission
unless @user.administrator?
unless @user.administrator? or @user.moderator?
flash[:error] = t('application.require_admin.not_an_admin')
redirect_to root_path
end

View file

@ -38,7 +38,7 @@
</nav>
<nav class='secondary'>
<ul>
<% if @user and @user.administrator? %>
<% if @user and ( @user.administrator? or @user.moderator? ) %>
<li class="compact-hide <%= current_page_class(issues_path) %>"><%= link_to t('layouts.issues'), issues_path %></li>
<% end %>
<li class="compact-hide <%= current_page_class(traces_path) %>"><%= link_to t('layouts.gps_traces'), traces_path %></li>

View file

@ -3,6 +3,29 @@ require 'test_helper'
class IssuesControllerTest < ActionController::TestCase
fixtures :users,:user_roles
def test_view_dashboard_without_auth
# Access issues_path without login
get :index
assert_response :redirect
assert_redirected_to login_path(:referer => issues_path)
# Access issues_path as normal user
session[:user] = users(:normal_user).id
get :index
assert_response :redirect
assert_redirected_to root_path
# Access issues_path by admin
session[:user] = users(:administrator_user).id
get :index
assert_response :success
# Access issues_path by moderator
session[:user]= users(:moderator_user).id
get :index
assert_response :success
end
def test_new_issue_without_login
# Test creation of a new issue and a new report without logging in
get :new, {reportable_id: 1, reportable_type: "User", reported_user_id: 1}
@ -150,4 +173,30 @@ class IssuesControllerTest < ActionController::TestCase
assert_response :redirect
end
def test_search_issues
# Login as administrator
session[:user] = users(:administrator_user).id
# No issues against the user
get :index, search_by_user: "test1"
assert_response :redirect
assert_redirected_to issues_path
# User doesn't exist
get :index, search_by_user: "test1000"
assert_response :redirect
assert_redirected_to issues_path
# Create Issue against user_id:2
test_new_issue_after_login
assert_equal Issue.count,1
assert_equal Issue.first.reported_user_id,2
session[:user] = users(:administrator_user).id
# Find Issue against user_id:2
get :index, search_by_user: "test2"
assert_response :success
end
end