diff options
Diffstat (limited to 'test/controllers')
| -rw-r--r-- | test/controllers/menu_items_controller_test.rb | 13 | ||||
| -rw-r--r-- | test/controllers/users_controller_test.rb | 38 |
2 files changed, 35 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 | ||
| 44 | end | 51 | end |
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 | ||
| 3 | class UsersControllerTest < ActionController::TestCase | 3 | class 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 | ||
| 230 | end | 242 | end |
