]> git.openstreetmap.org Git - rails.git/blobdiff - test/integration/user_roles_test.rb
Check that a request that requires authentication is redirected when the user hasn...
[rails.git] / test / integration / user_roles_test.rb
index 17531ef3fb8b6354f5d9c683760c9be6fe76c49a..9d367150dd9d4baba4406f7856d66e5169ec6b72 100644 (file)
@@ -1,55 +1,57 @@
-require File.dirname(__FILE__) + '/../test_helper'
+require "test_helper"
 
 
-class UserRolesTest < ActionController::IntegrationTest
-  fixtures :users, :user_roles
+class UserRolesTest < ActionDispatch::IntegrationTest
+  def setup
+    stub_hostip_requests
+  end
 
   test "grant" do
 
   test "grant" do
-    check_fail(:grant, :public_user, :moderator)
+    check_fail(:grant, :user, :moderator)
     check_fail(:grant, :moderator_user, :moderator)
     check_success(:grant, :administrator_user, :moderator)
   end
 
   test "revoke" do
     check_fail(:grant, :moderator_user, :moderator)
     check_success(:grant, :administrator_user, :moderator)
   end
 
   test "revoke" do
-    check_fail(:revoke, :public_user, :moderator)
+    check_fail(:revoke, :user, :moderator)
     check_fail(:revoke, :moderator_user, :moderator)
     # this other user doesn't have moderator role, so this fails
     check_fail(:revoke, :administrator_user, :moderator)
   end
 
     check_fail(:revoke, :moderator_user, :moderator)
     # this other user doesn't have moderator role, so this fails
     check_fail(:revoke, :administrator_user, :moderator)
   end
 
+  private
+
   def check_fail(action, user, role)
   def check_fail(action, user, role)
-    get '/login'
+    get "/login"
     assert_response :redirect
     assert_response :redirect
-    assert_redirected_to "controller" => "user", "action" => "login", "cookie_test" => "true"
+    assert_redirected_to "controller" => "users", "action" => "login", "cookie_test" => "true"
     follow_redirect!
     assert_response :success
     follow_redirect!
     assert_response :success
-    post '/login', {'username' => users(user).email, 'password' => "test", :referer => "/"}
+    post "/login", :params => { "username" => create(user).email, "password" => "test", :referer => "/" }
     assert_response :redirect
     follow_redirect!
     assert_response :success
 
     assert_response :redirect
     follow_redirect!
     assert_response :success
 
-    get "/user/#{users(:second_public_user).display_name}/role/#{role}/#{action}"
-    assert_response :redirect
-    assert_redirected_to :controller => 'user', :action => 'view', :display_name => users(:second_public_user).display_name
+    target_user = create(:user)
+    post "/user/#{ERB::Util.u(target_user.display_name)}/role/#{role}/#{action}"
+    assert_redirected_to user_path(target_user)
 
     reset!
   end
 
   def check_success(action, user, role)
 
     reset!
   end
 
   def check_success(action, user, role)
-    get '/login'
+    get "/login"
     assert_response :redirect
     assert_response :redirect
-    assert_redirected_to "controller" => "user", "action" => "login", "cookie_test" => "true"
+    assert_redirected_to "controller" => "users", "action" => "login", "cookie_test" => "true"
     follow_redirect!
     assert_response :success
     follow_redirect!
     assert_response :success
-    post '/login', {'username' => users(user).email, 'password' => "test", :referer => "/"}
+    post "/login", :params => { "username" => create(user).email, "password" => "test", :referer => "/" }
     assert_response :redirect
     follow_redirect!
     assert_response :success
 
     assert_response :redirect
     follow_redirect!
     assert_response :success
 
-    get "/user/#{users(:second_public_user).display_name}/role/#{role}/#{action}"
-    assert_response :success
-    post "/user/#{users(:second_public_user).display_name}/role/#{role}/#{action}", {:confirm => "yes", :nonce => session[:nonce]}
-    assert_response :redirect
-    assert_redirected_to :controller => 'user', :action => 'view', :display_name => users(:second_public_user).display_name
+    target_user = create(:user)
+    post "/user/#{ERB::Util.u(target_user.display_name)}/role/#{role}/#{action}"
+    assert_redirected_to user_path(target_user)
 
     reset!
   end
 
     reset!
   end