summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/controllers/menu_items_controller_test.rb13
-rw-r--r--test/controllers/users_controller_test.rb38
-rw-r--r--test/fixtures/users.yml18
3 files changed, 53 insertions, 16 deletions
diff --git a/test/controllers/menu_items_controller_test.rb b/test/controllers/menu_items_controller_test.rb
index 15a7b30b..d09198a3 100644
--- a/test/controllers/menu_items_controller_test.rb
+++ b/test/controllers/menu_items_controller_test.rb
@@ -9,7 +9,7 @@ class MenuItemsControllerTest < ActionController::TestCase
9 end 9 end
10 10
11 test "updating stores a title per locale" do 11 test "updating stores a title per locale" do
12 login_as :quentin 12 login_as :aaron
13 item = create_menu_item 13 item = create_menu_item
14 14
15 patch :update, params: { :id => item.id, 15 patch :update, params: { :id => item.id,
@@ -20,7 +20,7 @@ class MenuItemsControllerTest < ActionController::TestCase
20 end 20 end
21 21
22 test "blanking a non-default title falls back to the default locale" do 22 test "blanking a non-default title falls back to the default locale" do
23 login_as :quentin 23 login_as :aaron
24 item = create_menu_item 24 item = create_menu_item
25 patch :update, params: { :id => item.id, 25 patch :update, params: { :id => item.id,
26 :menu_item => { :titles => { "de" => "Transparenz", "en" => "Transparency" } } } 26 :menu_item => { :titles => { "de" => "Transparenz", "en" => "Transparency" } } }
@@ -33,7 +33,7 @@ class MenuItemsControllerTest < ActionController::TestCase
33 end 33 end
34 34
35 test "a blank default title is rejected" do 35 test "a blank default title is rejected" do
36 login_as :quentin 36 login_as :aaron
37 item = create_menu_item 37 item = create_menu_item
38 patch :update, params: { :id => item.id, 38 patch :update, params: { :id => item.id,
39 :menu_item => { :titles => { "de" => "" } } } 39 :menu_item => { :titles => { "de" => "" } } }
@@ -41,4 +41,11 @@ class MenuItemsControllerTest < ActionController::TestCase
41 assert_response :success # re-rendered :edit, not a redirect 41 assert_response :success # re-rendered :edit, not a redirect
42 assert_not_equal "", item.reload.translations.find_by(:locale => "de").title 42 assert_not_equal "", item.reload.translations.find_by(:locale => "de").title
43 end 43 end
44
45 test "an editor without redaktion cannot reach the menu" do
46 login_as :quentin
47 get :index
48 assert_redirected_to admin_path
49 assert_equal I18n.t("flash.common.redaktion_required"), flash[:error]
50 end
44end 51end
diff --git a/test/controllers/users_controller_test.rb b/test/controllers/users_controller_test.rb
index 14133029..fe099928 100644
--- a/test/controllers/users_controller_test.rb
+++ b/test/controllers/users_controller_test.rb
@@ -2,11 +2,11 @@ require 'test_helper'
2 2
3class UsersControllerTest < ActionController::TestCase 3class UsersControllerTest < ActionController::TestCase
4 4
5 test "get index as regular user renders stripped partial" do 5 test "an editor without admin cannot reach the user list" do
6 login_as :quentin 6 login_as :quentin
7 get :index 7 get :index
8 assert_response :success 8 assert_redirected_to admin_path
9 assert_select "a", { :count => 0, :text => "Destroy" } 9 assert_equal I18n.t("flash.common.admin_required"), flash[:error]
10 end 10 end
11 11
12 test "get index as admin shows every group with per-row actions" do 12 test "get index as admin shows every group with per-row actions" do
@@ -27,10 +27,10 @@ class UsersControllerTest < ActionController::TestCase
27 login_as :quentin 27 login_as :quentin
28 get :new 28 get :new
29 assert_response :redirect 29 assert_response :redirect
30 assert_redirected_to users_path 30 assert_redirected_to admin_path
31 assert_equal( 31 assert_equal(
32 I18n.t("flash.common.admin_required"), 32 I18n.t("flash.common.admin_required"),
33 flash[:notice] 33 flash[:error]
34 ) 34 )
35 end 35 end
36 36
@@ -82,20 +82,20 @@ class UsersControllerTest < ActionController::TestCase
82 } 82 }
83 end 83 end
84 84
85 assert_redirected_to users_path 85 assert_redirected_to admin_path
86 assert_equal( 86 assert_equal(
87 I18n.t("flash.common.admin_required"), 87 I18n.t("flash.common.admin_required"),
88 flash[:notice] 88 flash[:error]
89 ) 89 )
90 end 90 end
91 91
92 test "get edit of another user being logged in as regular user wont work" do 92 test "get edit of another user being logged in as regular user wont work" do
93 login_as :quentin 93 login_as :quentin
94 get :edit, params: { :id => User.find_by_login("aaron").id } 94 get :edit, params: { :id => User.find_by_login("aaron").id }
95 assert_redirected_to users_path 95 assert_redirected_to admin_path
96 assert_equal( 96 assert_equal(
97 I18n.t("flash.common.admin_required"), 97 I18n.t("flash.common.admin_required"),
98 flash[:notice] 98 flash[:error]
99 ) 99 )
100 end 100 end
101 101
@@ -115,10 +115,10 @@ class UsersControllerTest < ActionController::TestCase
115 user = User.find_by_login("aaron") 115 user = User.find_by_login("aaron")
116 login_as :quentin 116 login_as :quentin
117 put :update, params: { :id => user.id, :user => {:login => "random"} } 117 put :update, params: { :id => user.id, :user => {:login => "random"} }
118 assert_redirected_to users_path 118 assert_redirected_to admin_path
119 assert_equal( 119 assert_equal(
120 I18n.t("flash.common.admin_required"), 120 I18n.t("flash.common.admin_required"),
121 flash[:notice] 121 flash[:error]
122 ) 122 )
123 end 123 end
124 124
@@ -140,7 +140,7 @@ class UsersControllerTest < ActionController::TestCase
140 140
141 test "showing a user" do 141 test "showing a user" do
142 login_as :quentin 142 login_as :quentin
143 get :show, params: { :id => User.find_by_login("aaron").id } 143 get :show, params: { :id => users(:quentin).id }
144 assert_response :success 144 assert_response :success
145 end 145 end
146 146
@@ -148,7 +148,7 @@ class UsersControllerTest < ActionController::TestCase
148 login_as :quentin 148 login_as :quentin
149 put :deactivate, params: { :id => users(:quentin).id } 149 put :deactivate, params: { :id => users(:quentin).id }
150 150
151 assert_redirected_to users_path 151 assert_redirected_to admin_path
152 assert_not users(:quentin).reload.alumni? 152 assert_not users(:quentin).reload.alumni?
153 end 153 end
154 154
@@ -227,4 +227,16 @@ class UsersControllerTest < ActionController::TestCase
227 assert_response :success 227 assert_response :success
228 assert_select "h2", :text => /#{I18n.t("users.index.group_alumni")}/ 228 assert_select "h2", :text => /#{I18n.t("users.index.group_alumni")}/
229 end 229 end
230
231 test "an editor without admin cannot create accounts" do
232 login_as :quentin
233 get :new
234 assert_redirected_to admin_path
235 end
236
237 test "an editor cannot read another account by id" do
238 login_as :quentin
239 get :show, params: { :id => users(:aaron).id }
240 assert_redirected_to admin_path
241 end
230end 242end
diff --git a/test/fixtures/users.yml b/test/fixtures/users.yml
index f8d32d3c..2c433067 100644
--- a/test/fixtures/users.yml
+++ b/test/fixtures/users.yml
@@ -14,3 +14,21 @@ aaron:
14 crypted_password: 740a48caf7dd5ff11318d812d57c0a0928cfbc12 # 'monkey' 14 crypted_password: 740a48caf7dd5ff11318d812d57c0a0928cfbc12 # 'monkey'
15 created_at: 2024-01-02 00:00:00 15 created_at: 2024-01-02 00:00:00
16 roles: ["admin", "redaktion"] 16 roles: ["admin", "redaktion"]
17
18redella:
19 id: 3
20 login: redella
21 email: redella@example.com
22 salt: cf993996a70d31f924aff17a5f997722cb6ec2dd
23 crypted_password: 11c672158b0eb6e8c91c438b3eb844902308b138 # 'monkey'
24 created_at: 2024-01-03 00:00:00
25 roles: ["redaktion"]
26
27alufa:
28 id: 4
29 login: alufa
30 email: alufa@example.com
31 salt: cf993996a70d31f924aff17a5f997722cb6ec2dd
32 crypted_password: 11c672158b0eb6e8c91c438b3eb844902308b138 # 'monkey'
33 created_at: 2024-01-04 00:00:00
34 roles: ["redaktion", "alumni"]