X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/daa2496024cf0bdc65e58eb6e2802784f411f68b..09c5740b5bb94c75a5c8c83cdbb80ae7b5ccbdf4:/test/functional/user_roles_controller_test.rb diff --git a/test/functional/user_roles_controller_test.rb b/test/functional/user_roles_controller_test.rb index c2de53934..3bced12e4 100644 --- a/test/functional/user_roles_controller_test.rb +++ b/test/functional/user_roles_controller_test.rb @@ -4,25 +4,35 @@ class UserRolesControllerTest < ActionController::TestCase fixtures :users, :user_roles test "grant" do - check_redirect(:grant, :public_user, "/403.html") - check_redirect(:grant, :moderator_user, "/403.html") - check_redirect(:grant, :administrator_user, {:controller => :user, :action => :view}) + check_forbidden(:grant, :public_user) + check_forbidden(:grant, :moderator_user) + check_success(:grant, :administrator_user) end test "revoke" do - check_redirect(:revoke, :public_user, "/403.html") - check_redirect(:revoke, :moderator_user, "/403.html") - check_redirect(:revoke, :administrator_user, {:controller => :user, :action => :view}) + check_forbidden(:revoke, :public_user) + check_forbidden(:revoke, :moderator_user) + check_success(:revoke, :administrator_user) end - def check_redirect(action, user, redirect) + def check_forbidden(action, user) UserRole::ALL_ROLES.each do |role| u = users(user) basic_authorization(u.email, "test") get(action, {:display_name => users(:second_public_user).display_name, :role => role}, {'user' => u.id}) assert_response :redirect - assert_redirected_to redirect + assert_redirected_to "/403.html" + end + end + + def check_success(action, user) + UserRole::ALL_ROLES.each do |role| + u = users(user) + basic_authorization(u.email, "test") + + get(action, {:display_name => users(:second_public_user).display_name, :role => role}, {'user' => u.id}) + assert_response :success end end end