1 require File.dirname(__FILE__) + '/../../test_helper'
2 require 'admin/user_controller'
4 # Re-raise errors caught by the controller.
5 class Admin::UserController; def rescue_action(e) raise e end; end
7 class Admin::UserControllerTest < Test::Unit::TestCase
10 test_helper :user, :logging, :login
13 @controller = Admin::UserController.new
14 @request = ActionController::TestRequest.new
15 @response = ActionController::TestResponse.new
16 @user = create_test_user
25 assert Admin::UserController.ancestors.include?(Admin::AbstractModelController)
28 [:index, :new, :edit, :remove].each do |action|
29 define_method "test_#{action}_action_allowed_if_admin" do
31 get action, { :id => 1 }
32 assert_response :success, "action: #{action}"
35 define_method "test_#{action}_action_not_allowed_if_other" do
37 get action, { :id => 1 }
38 assert_redirected_to page_index_url, "action: #{action}"
39 assert_match /privileges/, flash[:error], "action: #{action}"
43 def test_remove__cannot_remove_self
46 get :remove, { :id => @user.id }
47 assert_redirected_to user_index_url
48 assert_match /cannot.*self/i, flash[:error]
49 assert_not_nil User.find(@user.id)
53 get :preferences, :user => { :email => 'updated@email.com' }
54 assert_response :success
55 assigned_user = assigns(:user)
56 assert_equal @user, assigned_user
57 assert @user.object_id != assigned_user.object_id
58 assert_equal 'jdoe@gmail.com', assigned_user.email
60 def test_preferences__post
63 { :user => { :password => '', :password_confirmation => '', :email => 'updated@gmail.com' } }
65 @user = User.find(@user.id)
66 assert_redirected_to page_index_url
67 assert_match /preferences.*?saved/i, flash[:notice]
68 assert_equal 'updated@gmail.com', @user.email
70 def test_preferences__post_with_bad_data
71 get :preferences, 'user' => { :login => 'superman' }
72 assert_response :success
73 assert_match /bad form data/i, flash[:error]
76 def test_change_password
77 @user = User.create!(:name => 'Test', :login => 'pref_test', :password => 'whoa!', :password_confirmation => 'whoa!')
81 { :user => { :password => 'funtimes', :password_confirmation => 'funtimes' } }
83 @user = User.find(@user.id)
84 assert_equal User.sha1('funtimes'), @user.password
86 assert !log_matches(/"password"=>"funtimes"/)
87 assert !log_matches(/"password_confirmation"=>"funtimes"/)