1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
require 'test_helper'
class UsersControllerTest < ActionController::TestCase
include StubRecordHelper
test "should get new" do
get :new
assert_equal User, assigns(:user).class
assert_response :success
end
test "should create new user" do
user = stub_record User
User.expects(:create).with(user.params).returns(user)
post :create, :user => user.params, :format => :json
assert_nil session[:user_id]
assert_json_response user
assert_response :success
end
test "should redirect to signup form on failed attempt" do
params = User.valid_attributes_hash.slice(:login)
user = User.new(params)
params.stringify_keys!
assert !user.valid?
User.expects(:create).with(params).returns(user)
post :create, :user => params, :format => :json
assert_json_error user.errors.messages
assert_response 422
end
test "should get edit view" do
user = stub_record User
User.expects(:find_by_param).with(user.id.to_s).returns(user)
login user
get :edit, :id => user.id
assert_equal user, assigns[:user]
end
test "should process updated params" do
user = stub_record User
user.expects(:update_attributes).with(user.params).returns(true)
User.expects(:find_by_param).with(user.id.to_s).returns(user)
login user
put :update, :user => user.params, :id => user.id, :format => :json
assert_equal user, assigns[:user]
assert_response 204
assert_equal " ", @response.body
end
test "admin can edit user" do
user = stub_record User
user.expects(:update_attributes).with(user.params).returns(true)
User.expects(:find_by_param).with(user.id.to_s).returns(user)
login :is_admin? => true
put :update, :user => user.params, :id => user.id, :format => :json
assert_equal user, assigns[:user]
assert_response 204
assert_equal " ", @response.body
end
test "admin can destroy user" do
login :is_admin? => true
user = stub_record User
user.expects(:destroy)
User.expects(:find_by_param).with(user.id.to_s).returns(user)
delete :destroy, :id => user.id
assert_response :redirect
# assert_redirected_to users_path
end
test "non-admin can't destroy user" do
login
user = stub_record User
delete :destroy, :id => user.id
assert_access_denied
end
test "admin can list users" do
login :is_admin? => true
get :index
assert_response :success
assert assigns(:users)
end
test "non-admin can't list users" do
login
get :index
assert_access_denied
end
test "admin can autocomplete users" do
login :is_admin? => true
get :index, :format => :json
assert_response :success
assert assigns(:users)
end
test "admin can search users" do
login :is_admin? => true
get :index, :query => "a"
assert_response :success
assert assigns(:users)
end
end
|