summaryrefslogtreecommitdiff
path: root/test/functional/users_controller_test.rb
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-06-25 17:51:45 +0200
committererdgeist <erdgeist@erdgeist.org>2026-06-25 17:51:45 +0200
commit0818a3057b0a91e422158d828026c941b4e10622 (patch)
tree9ed98d52bd577d3f36dd7a1ce8048d280a36062e /test/functional/users_controller_test.rb
parent26030c71c7b300c30367222f263d74b8d2142ecf (diff)
Rails 5.2 test updates
- Rename test/functional → test/controllers, test/unit → test/models - Remove test/performance/browsing_test.rb (performance_test_help removed) - Fix use_transactional_fixtures → use_transactional_tests - Remove use_instantiated_fixtures (removed in Rails 5) - Fix ActiveRecord::Fixtures → FixtureSet - Fix controller test params syntax: add params: {} wrapper throughout - Fix assert_select targets for aggregator test - Fix test_update_a_draft_with_changing_the_template: draft → head - Add test_node.reload after children.create! (awesome_nested_set bug) - Add before/after count pattern for create tests (transactional isolation) - Known failures: 5 tests affected by Rails 5 transactional test isolation
Diffstat (limited to 'test/functional/users_controller_test.rb')
-rw-r--r--test/functional/users_controller_test.rb180
1 files changed, 0 insertions, 180 deletions
diff --git a/test/functional/users_controller_test.rb b/test/functional/users_controller_test.rb
deleted file mode 100644
index 7511170..0000000
--- a/test/functional/users_controller_test.rb
+++ /dev/null
@@ -1,180 +0,0 @@
1require 'test_helper'
2
3class UsersControllerTest < ActionController::TestCase
4
5 test "get index as regular user renders stripped partial" do
6 login_as :quentin
7 get :index
8 assert_response :success
9 assert_select "a", { :count => 0, :text => "Destroy" }
10 end
11
12 test "get index as admin user renders admin partial" do
13 login_as :aaron
14 get :index
15 assert_response :success
16 assert_select "a", "destroy"
17 assert_select "a", "show", "Show Link is missing"
18 end
19
20 test "get new when logged in as admin" do
21 login_as :aaron
22 get :new
23 assert_response :success
24 end
25
26 test "get new without being logged in as admin redirects back to index" do
27 login_as :quentin
28 get :new
29 assert_response :redirect
30 assert_redirected_to users_path
31 assert_equal(
32 "Sorry, you need to be an admin for this action",
33 flash[:notice]
34 )
35 end
36
37 test "creating new users being logged in as admin" do
38 login_as :aaron
39 assert_difference "User.count", +1 do
40 post :create, :user => {
41 :login => "peter",
42 :email => "foo@bar.com",
43 :password => "xxxzzz",
44 :password_confirmation => "xxxzzz"
45 }
46 end
47
48 assert_redirected_to user_path(User.last)
49 assert !User.last.admin
50 end
51
52 test "creating new admin users being logged in as admin" do
53 login_as :aaron
54 assert_difference "User.count", +1 do
55 post :create, :user => {
56 :login => "peter",
57 :email => "foo@bar.com",
58 :password => "xxxzzz",
59 :password_confirmation => "xxxzzz",
60 :admin => true
61 }
62 end
63
64 assert_redirected_to user_path(User.last)
65 assert User.last.admin
66 end
67
68 test "creating new users not being logged as regular user wont work" do
69 login_as :quentin
70 assert_no_difference "User.count" do
71 post :create, :user => {
72 :login => "peter",
73 :email => "foo@bar.com",
74 :password => "xxxzzz",
75 :password_confirmation => "xxxzzz"
76 }
77 end
78
79 assert_redirected_to users_path
80 assert_equal(
81 "Sorry, you need to be an admin for this action",
82 flash[:notice]
83 )
84 end
85
86 test "get edit of another user being logged in as regular user wont work" do
87 login_as :quentin
88 get :edit, :id => User.find_by_login("aaron").id
89 assert_redirected_to users_path
90 assert_equal(
91 "Sorry, you need to be an admin for this action",
92 flash[:notice]
93 )
94 end
95
96 test "get edit of another user being logged in as admin user" do
97 login_as :aaron
98 get :edit, :id => User.find_by_login("quentin").id
99 assert_response :success
100 end
101
102 test "editing own user details is allowed" do
103 login_as :quentin
104 get :edit, :id => User.find_by_login("quentin").id
105 assert_response :success
106 end
107
108 test "updating an user when being logged in as regular user wont work" do
109 user = User.find_by_login("aaron")
110 login_as :quentin
111 put :update, :id => user.id, :user => {:login => "random"}
112 assert_redirected_to users_path
113 assert_equal(
114 "Sorry, you need to be an admin for this action",
115 flash[:notice]
116 )
117 end
118
119 test "updating an user when being login in as admin user" do
120 user = User.find_by_login("quentin")
121 login_as :aaron
122 put :update, :id => user.id, :user => {:login => "random"}
123 assert_redirected_to user_path(user)
124 assert_equal "random", user.reload.login
125 end
126
127 test "updating own user details is allowd" do
128 user = User.find_by_login("quentin")
129 login_as :quentin
130 put :update, :id => user.id, :user => {:login => "random"}
131 assert_redirected_to user_path(user)
132 assert_equal "random", user.reload.login
133 end
134
135 test "showing a user" do
136 login_as :quentin
137 get :show, :id => User.find_by_login("aaron").id
138 assert_response :success
139 end
140
141 test "destroying an user being logged in as regular user wont work" do
142 login_as :quentin
143 assert_no_difference "User.count" do
144 delete :destroy, :id => User.find_by_login("aaron").id
145 end
146 assert_redirected_to users_path
147 assert_equal(
148 "Sorry, you need to be an admin for this action",
149 flash[:notice]
150 )
151 end
152
153 test "destroying an user being logged in as admin user" do
154 login_as :aaron
155 assert_difference "User.count", -1 do
156 delete :destroy, :id => User.find_by_login("quentin").id
157 end
158 assert_redirected_to users_path
159 end
160
161 test "admin user can promote regular users to admins" do
162 login_as :aaron
163 user = users(:quentin)
164 put :update, :id => user.id, :user => {:admin => true}
165
166 user.reload
167 assert_equal true, user.is_admin?
168 end
169
170 test "regular users cannot promote themselves to admins" do
171 login_as :quentin
172 user = users(:quentin)
173 put :update, :id => user.id, :user => {:admin => true}
174
175 user.reload
176 assert_equal false, user.is_admin?
177 end
178
179
180end