Added a few tests
authorShrey <shrey14099@iiitd.ac.in>
Fri, 19 Jun 2015 08:22:11 +0000 (13:52 +0530)
committerMatt Amos <zerebubuth@gmail.com>
Mon, 22 Aug 2016 15:17:54 +0000 (16:17 +0100)
app/controllers/issues_controller.rb
app/views/layouts/_header.html.erb
test/controllers/issues_controller_test.rb

index 407646830a3988ad7335244669423b49f733c128..bcea64be33de10c1f418d18571cd9ed9ee01bc37 100644 (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
index 3187d0b27f6ee7b029716d9f9810bdc43685e623..29216de72e27ef128742bcb7ee46dbeb9442e4e2 100644 (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>
index 6f8bee328a522804b771c76ab3d179ae9b7fb210..87eda15069df7c9c9340b10ef1d42d62ab3be7de 100644 (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