devise_token_auth 0.1.28.beta6 → 0.1.28.beta7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +75 -20
- data/app/controllers/devise_token_auth/application_controller.rb +12 -0
- data/app/controllers/devise_token_auth/auth_controller.rb +1 -2
- data/app/controllers/devise_token_auth/concerns/set_user_by_token.rb +26 -10
- data/app/controllers/devise_token_auth/confirmations_controller.rb +1 -3
- data/app/controllers/devise_token_auth/passwords_controller.rb +11 -15
- data/app/controllers/devise_token_auth/registrations_controller.rb +16 -14
- data/app/controllers/devise_token_auth/sessions_controller.rb +2 -6
- data/app/models/devise_token_auth/concerns/user.rb +49 -1
- data/app/views/devise/mailer/confirmation_instructions.html.erb +1 -1
- data/app/views/devise/mailer/reset_password_instructions.html.erb +1 -1
- data/config/initializers/devise.rb +9 -0
- data/lib/devise_token_auth.rb +2 -0
- data/lib/devise_token_auth/controllers/helpers.rb +129 -0
- data/lib/devise_token_auth/controllers/url_helpers.rb +8 -0
- data/lib/devise_token_auth/engine.rb +4 -0
- data/lib/devise_token_auth/version.rb +1 -1
- data/test/controllers/demo_group_controller_test.rb +126 -0
- data/test/controllers/{demo_controller_test.rb → demo_mang_controller_test.rb} +32 -59
- data/test/controllers/demo_user_controller_test.rb +262 -0
- data/test/controllers/devise_token_auth/auth_controller_test.rb +1 -1
- data/test/controllers/devise_token_auth/confirmations_controller_test.rb +19 -6
- data/test/controllers/devise_token_auth/passwords_controller_test.rb +35 -7
- data/test/controllers/devise_token_auth/registrations_controller_test.rb +61 -8
- data/test/dummy/app/controllers/demo_group_controller.rb +13 -0
- data/test/dummy/app/controllers/demo_mang_controller.rb +12 -0
- data/test/dummy/app/controllers/demo_user_controller.rb +12 -0
- data/test/dummy/config/routes.rb +6 -5
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/migrate/20140916224624_add_favorite_color_to_mangs.rb +5 -0
- data/test/dummy/db/schema.rb +2 -3
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/development.log +3977 -0
- data/test/dummy/log/test.log +165539 -0
- data/test/dummy/tmp/generators/app/controllers/application_controller.rb +8 -0
- data/test/dummy/tmp/generators/app/models/user.rb +0 -4
- data/test/dummy/tmp/generators/db/migrate/{20140916215707_devise_token_auth_create_users.rb → 20140922164332_devise_token_auth_create_users.rb} +0 -0
- data/test/lib/generators/devise_token_auth/install_generator_test.rb +2 -2
- data/test/models/user_test.rb +0 -12
- data/test/test_helper.rb +9 -9
- metadata +22 -8
- data/test/dummy/app/controllers/demo_controller.rb +0 -16
@@ -0,0 +1,262 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
# was the web request successful?
|
4
|
+
# was the user redirected to the right page?
|
5
|
+
# was the user successfully authenticated?
|
6
|
+
# was the correct object stored in the response?
|
7
|
+
# was the appropriate message delivered in the json payload?
|
8
|
+
|
9
|
+
class DemoUserControllerTest < ActionDispatch::IntegrationTest
|
10
|
+
describe DemoUserController do
|
11
|
+
describe "Token access" do
|
12
|
+
before do
|
13
|
+
@user = users(:confirmed_email_user)
|
14
|
+
@user.skip_confirmation!
|
15
|
+
@user.save!
|
16
|
+
|
17
|
+
@auth_headers = @user.create_new_auth_token
|
18
|
+
|
19
|
+
@token = @auth_headers['access-token']
|
20
|
+
@client_id = @auth_headers['client']
|
21
|
+
@expiry = @auth_headers['expiry']
|
22
|
+
end
|
23
|
+
|
24
|
+
describe 'successful request' do
|
25
|
+
before do
|
26
|
+
# ensure that request is not treated as batch request
|
27
|
+
age_token(@user, @client_id)
|
28
|
+
|
29
|
+
get '/demo/members_only', {}, @auth_headers
|
30
|
+
|
31
|
+
@resp_token = response.headers['access-token']
|
32
|
+
@resp_client_id = response.headers['client']
|
33
|
+
@resp_expiry = response.headers['expiry']
|
34
|
+
@resp_uid = response.headers['uid']
|
35
|
+
end
|
36
|
+
|
37
|
+
describe 'devise mappings' do
|
38
|
+
it 'should define current_user' do
|
39
|
+
assert_equal @user, @controller.current_user
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should define user_signed_in?' do
|
43
|
+
assert @controller.user_signed_in?
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'should not define current_mang' do
|
47
|
+
refute_equal @user, @controller.current_mang
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'should return success status' do
|
52
|
+
assert_equal 200, response.status
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'should receive new token after successful request' do
|
56
|
+
refute_equal @token, @resp_token
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'should preserve the client id from the first request' do
|
60
|
+
assert_equal @client_id, @resp_client_id
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should return the user's uid in the auth header" do
|
64
|
+
assert_equal @user.uid, @resp_uid
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'should not treat this request as a batch request' do
|
68
|
+
refute assigns(:is_batch_request)
|
69
|
+
end
|
70
|
+
|
71
|
+
describe 'subsequent requests' do
|
72
|
+
before do
|
73
|
+
@user.reload
|
74
|
+
# ensure that request is not treated as batch request
|
75
|
+
age_token(@user, @client_id)
|
76
|
+
|
77
|
+
get '/demo/members_only', {}, @auth_headers.merge({'access-token' => @resp_token})
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'should not treat this request as a batch request' do
|
81
|
+
refute assigns(:is_batch_request)
|
82
|
+
end
|
83
|
+
|
84
|
+
it "should allow a new request to be made using new token" do
|
85
|
+
assert_equal 200, response.status
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
describe 'failed request' do
|
91
|
+
before do
|
92
|
+
get '/demo/members_only', {}, @auth_headers.merge({'access-token' => "bogus"})
|
93
|
+
end
|
94
|
+
|
95
|
+
it 'should not return any auth headers' do
|
96
|
+
refute response.headers['access-token']
|
97
|
+
end
|
98
|
+
|
99
|
+
it 'should return error: unauthorized status' do
|
100
|
+
assert_equal 401, response.status
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
describe 'disable change_headers_on_each_request' do
|
105
|
+
before do
|
106
|
+
DeviseTokenAuth.change_headers_on_each_request = false
|
107
|
+
@user.reload
|
108
|
+
age_token(@user, @client_id)
|
109
|
+
|
110
|
+
get '/demo/members_only', {}, @auth_headers
|
111
|
+
|
112
|
+
@first_is_batch_request = assigns(:is_batch_request)
|
113
|
+
@first_user = assigns(:user).dup
|
114
|
+
@first_access_token = response.headers['access-token']
|
115
|
+
@first_response_status = response.status
|
116
|
+
|
117
|
+
@user.reload
|
118
|
+
age_token(@user, @client_id)
|
119
|
+
|
120
|
+
# use expired auth header
|
121
|
+
get '/demo/members_only', {}, @auth_headers
|
122
|
+
|
123
|
+
@second_is_batch_request = assigns(:is_batch_request)
|
124
|
+
@second_user = assigns(:user).dup
|
125
|
+
@second_access_token = response.headers['access-token']
|
126
|
+
@second_response_status = response.status
|
127
|
+
end
|
128
|
+
|
129
|
+
after do
|
130
|
+
DeviseTokenAuth.change_headers_on_each_request = true
|
131
|
+
end
|
132
|
+
|
133
|
+
it 'should allow the first request through' do
|
134
|
+
assert_equal 200, @first_response_status
|
135
|
+
end
|
136
|
+
|
137
|
+
it 'should allow the second request through' do
|
138
|
+
assert_equal 200, @second_response_status
|
139
|
+
end
|
140
|
+
|
141
|
+
it 'should return auth headers from the first request' do
|
142
|
+
assert @first_access_token
|
143
|
+
end
|
144
|
+
|
145
|
+
it 'should not treat either requests as batch requests' do
|
146
|
+
refute @first_is_batch_request
|
147
|
+
refute @second_is_batch_request
|
148
|
+
end
|
149
|
+
|
150
|
+
it 'should return auth headers from the second request' do
|
151
|
+
assert @second_access_token
|
152
|
+
end
|
153
|
+
|
154
|
+
it 'should define user during first request' do
|
155
|
+
assert @first_user
|
156
|
+
end
|
157
|
+
|
158
|
+
it 'should define user during second request' do
|
159
|
+
assert @second_user
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
describe 'batch requests' do
|
164
|
+
describe 'success' do
|
165
|
+
before do
|
166
|
+
age_token(@user, @client_id)
|
167
|
+
#request.headers.merge!(@auth_headers)
|
168
|
+
|
169
|
+
get '/demo/members_only', {}, @auth_headers
|
170
|
+
|
171
|
+
@first_is_batch_request = assigns(:is_batch_request)
|
172
|
+
@first_user = assigns(:user)
|
173
|
+
@first_access_token = response.headers['access-token']
|
174
|
+
|
175
|
+
get '/demo/members_only', {}, @auth_headers
|
176
|
+
|
177
|
+
@second_is_batch_request = assigns(:is_batch_request)
|
178
|
+
@second_user = assigns(:user)
|
179
|
+
@second_access_token = response.headers['access-token']
|
180
|
+
end
|
181
|
+
|
182
|
+
it 'should allow both requests through' do
|
183
|
+
assert_equal 200, response.status
|
184
|
+
end
|
185
|
+
|
186
|
+
it 'should not treat the first request as a batch request' do
|
187
|
+
refute @first_is_batch_request
|
188
|
+
end
|
189
|
+
|
190
|
+
it 'should treat the second request as a batch request' do
|
191
|
+
assert @second_is_batch_request
|
192
|
+
end
|
193
|
+
|
194
|
+
it 'should return access token for first (non-batch) request' do
|
195
|
+
assert @first_access_token
|
196
|
+
end
|
197
|
+
|
198
|
+
it 'should NOT return auth headers for second (batched) requests' do
|
199
|
+
refute @second_access_token
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
describe 'time out' do
|
204
|
+
before do
|
205
|
+
@user.reload
|
206
|
+
age_token(@user, @client_id)
|
207
|
+
|
208
|
+
get '/demo/members_only', {}, @auth_headers
|
209
|
+
|
210
|
+
@first_is_batch_request = assigns(:is_batch_request)
|
211
|
+
@first_user = assigns(:user).dup
|
212
|
+
@first_access_token = response.headers['access-token']
|
213
|
+
@first_response_status = response.status
|
214
|
+
|
215
|
+
@user.reload
|
216
|
+
age_token(@user, @client_id)
|
217
|
+
|
218
|
+
# use expired auth header
|
219
|
+
get '/demo/members_only', {}, @auth_headers
|
220
|
+
|
221
|
+
@second_is_batch_request = assigns(:is_batch_request)
|
222
|
+
@second_user = assigns(:user)
|
223
|
+
@second_access_token = response.headers['access-token']
|
224
|
+
@second_response_status = response.status
|
225
|
+
end
|
226
|
+
|
227
|
+
it 'should allow the first request through' do
|
228
|
+
assert_equal 200, @first_response_status
|
229
|
+
end
|
230
|
+
|
231
|
+
it 'should not allow the second request through' do
|
232
|
+
assert_equal 401, @second_response_status
|
233
|
+
end
|
234
|
+
|
235
|
+
it 'should not treat first request as batch request' do
|
236
|
+
refute @secord_is_batch_request
|
237
|
+
end
|
238
|
+
|
239
|
+
it 'should return auth headers from the first request' do
|
240
|
+
assert @first_access_token
|
241
|
+
end
|
242
|
+
|
243
|
+
it 'should not treat second request as batch request' do
|
244
|
+
refute @secord_is_batch_request
|
245
|
+
end
|
246
|
+
|
247
|
+
it 'should not return auth headers from the second request' do
|
248
|
+
refute @second_access_token
|
249
|
+
end
|
250
|
+
|
251
|
+
it 'should define user during first request' do
|
252
|
+
assert @first_user
|
253
|
+
end
|
254
|
+
|
255
|
+
it 'should not define user during second request' do
|
256
|
+
refute @second_user
|
257
|
+
end
|
258
|
+
end
|
259
|
+
end
|
260
|
+
end
|
261
|
+
end
|
262
|
+
end
|
@@ -104,7 +104,7 @@ class OmniauthTest < ActionDispatch::IntegrationTest
|
|
104
104
|
describe 'alternate user model' do
|
105
105
|
describe 'from api to provider' do
|
106
106
|
before do
|
107
|
-
get_via_redirect '/
|
107
|
+
get_via_redirect '/mangs/facebook', {
|
108
108
|
auth_origin_url: @redirect_url
|
109
109
|
}
|
110
110
|
|
@@ -12,14 +12,19 @@ class DeviseTokenAuth::ConfirmationsControllerTest < ActionController::TestCase
|
|
12
12
|
before do
|
13
13
|
@new_user = users(:unconfirmed_email_user)
|
14
14
|
@new_user.send_confirmation_instructions
|
15
|
-
@mail
|
16
|
-
@token
|
15
|
+
@mail = ActionMailer::Base.deliveries.last
|
16
|
+
@token = @mail.body.match(/confirmation_token=(.*)\"/)[1]
|
17
|
+
@client_config = @mail.body.match(/config=(.*)\&/)[1]
|
17
18
|
end
|
18
19
|
|
19
20
|
test 'should generate raw token' do
|
20
21
|
assert @token
|
21
22
|
end
|
22
23
|
|
24
|
+
test "should include config name as 'default' in confirmation link" do
|
25
|
+
assert_equal "default", @client_config
|
26
|
+
end
|
27
|
+
|
23
28
|
test "should store token hash in user" do
|
24
29
|
assert @new_user.confirmation_token
|
25
30
|
end
|
@@ -61,16 +66,24 @@ class DeviseTokenAuth::ConfirmationsControllerTest < ActionController::TestCase
|
|
61
66
|
end
|
62
67
|
|
63
68
|
before do
|
64
|
-
@
|
65
|
-
@new_user
|
66
|
-
|
67
|
-
@
|
69
|
+
@config_name = "altUser"
|
70
|
+
@new_user = mangs(:unconfirmed_email_user)
|
71
|
+
|
72
|
+
@new_user.send_confirmation_instructions(client_config: @config_name)
|
73
|
+
|
74
|
+
@mail = ActionMailer::Base.deliveries.last
|
75
|
+
@token = @mail.body.match(/confirmation_token=(.*)\"/)[1]
|
76
|
+
@client_config = @mail.body.match(/config=(.*)\&/)[1]
|
68
77
|
end
|
69
78
|
|
70
79
|
test 'should generate raw token' do
|
71
80
|
assert @token
|
72
81
|
end
|
73
82
|
|
83
|
+
test "should include config name in confirmation link" do
|
84
|
+
assert_equal @config_name, @client_config
|
85
|
+
end
|
86
|
+
|
74
87
|
test "should store token hash in user" do
|
75
88
|
assert @new_user.confirmation_token
|
76
89
|
end
|
@@ -24,18 +24,15 @@ class DeviseTokenAuth::PasswordsControllerTest < ActionController::TestCase
|
|
24
24
|
@mail = ActionMailer::Base.deliveries.last
|
25
25
|
@user.reload
|
26
26
|
|
27
|
+
@mail_config_name = CGI.unescape(@mail.body.match(/config=([^&]*)&/)[1])
|
28
|
+
@mail_redirect_url = CGI.unescape(@mail.body.match(/redirect_url=([^&]*)&/)[1])
|
27
29
|
@mail_reset_token = @mail.body.match(/reset_password_token=(.*)\"/)[1]
|
28
|
-
@mail_redirect_url = CGI.unescape(@mail.body.match(/redirect_url=(.*)&/)[1])
|
29
30
|
end
|
30
31
|
|
31
32
|
test 'response should return success status' do
|
32
33
|
assert_equal 200, response.status
|
33
34
|
end
|
34
35
|
|
35
|
-
test 'action should save password_reset_redirect_url to user table' do
|
36
|
-
assert_equal @redirect_url, @user.reset_password_redirect_url
|
37
|
-
end
|
38
|
-
|
39
36
|
test 'action should send an email' do
|
40
37
|
assert @mail
|
41
38
|
end
|
@@ -48,6 +45,10 @@ class DeviseTokenAuth::PasswordsControllerTest < ActionController::TestCase
|
|
48
45
|
assert_equal @redirect_url, @mail_redirect_url
|
49
46
|
end
|
50
47
|
|
48
|
+
test 'the client config name should fall back to "default"' do
|
49
|
+
assert_equal 'default', @mail_config_name
|
50
|
+
end
|
51
|
+
|
51
52
|
test 'the email body should contain a link with reset token as a query param' do
|
52
53
|
user = User.reset_password_by_token({
|
53
54
|
reset_password_token: @mail_reset_token
|
@@ -184,8 +185,9 @@ class DeviseTokenAuth::PasswordsControllerTest < ActionController::TestCase
|
|
184
185
|
@mail = ActionMailer::Base.deliveries.last
|
185
186
|
@user.reload
|
186
187
|
|
188
|
+
@mail_config_name = CGI.unescape(@mail.body.match(/config=([^&]*)&/)[1])
|
189
|
+
@mail_redirect_url = CGI.unescape(@mail.body.match(/redirect_url=([^&]*)&/)[1])
|
187
190
|
@mail_reset_token = @mail.body.match(/reset_password_token=(.*)\"/)[1]
|
188
|
-
@mail_redirect_url = CGI.unescape(@mail.body.match(/redirect_url=(.*)&/)[1])
|
189
191
|
end
|
190
192
|
|
191
193
|
test 'response should return success status' do
|
@@ -214,8 +216,9 @@ class DeviseTokenAuth::PasswordsControllerTest < ActionController::TestCase
|
|
214
216
|
@mail = ActionMailer::Base.deliveries.last
|
215
217
|
@user.reload
|
216
218
|
|
219
|
+
@mail_config_name = CGI.unescape(@mail.body.match(/config=([^&]*)&/)[1])
|
220
|
+
@mail_redirect_url = CGI.unescape(@mail.body.match(/redirect_url=([^&]*)&/)[1])
|
217
221
|
@mail_reset_token = @mail.body.match(/reset_password_token=(.*)\"/)[1]
|
218
|
-
@mail_redirect_url = CGI.unescape(@mail.body.match(/redirect_url=(.*)&/)[1])
|
219
222
|
|
220
223
|
xhr :get, :edit, {
|
221
224
|
reset_password_token: @mail_reset_token,
|
@@ -229,5 +232,30 @@ class DeviseTokenAuth::PasswordsControllerTest < ActionController::TestCase
|
|
229
232
|
assert @user.confirmed_at
|
230
233
|
end
|
231
234
|
end
|
235
|
+
|
236
|
+
describe 'alternate user type' do
|
237
|
+
before do
|
238
|
+
@user = users(:confirmed_email_user)
|
239
|
+
@redirect_url = 'http://ng-token-auth.dev'
|
240
|
+
@config_name = "altUser"
|
241
|
+
|
242
|
+
xhr :post, :create, {
|
243
|
+
email: @user.email,
|
244
|
+
redirect_url: @redirect_url,
|
245
|
+
config_name: @config_name
|
246
|
+
}
|
247
|
+
|
248
|
+
@mail = ActionMailer::Base.deliveries.last
|
249
|
+
@user.reload
|
250
|
+
|
251
|
+
@mail_config_name = CGI.unescape(@mail.body.match(/config=([^&]*)&/)[1])
|
252
|
+
@mail_redirect_url = CGI.unescape(@mail.body.match(/redirect_url=([^&]*)&/)[1])
|
253
|
+
@mail_reset_token = @mail.body.match(/reset_password_token=(.*)\"/)[1]
|
254
|
+
end
|
255
|
+
|
256
|
+
test 'config_name param is included in the confirmation email link' do
|
257
|
+
assert_equal @config_name, @mail_config_name
|
258
|
+
end
|
259
|
+
end
|
232
260
|
end
|
233
261
|
end
|
@@ -39,10 +39,6 @@ class DeviseTokenAuth::RegistrationsControllerTest < ActionController::TestCase
|
|
39
39
|
assert @data['data']['email']
|
40
40
|
end
|
41
41
|
|
42
|
-
test "confirm_success_url be allowed by strong params" do
|
43
|
-
assert @data['data']['confirm_success_url']
|
44
|
-
end
|
45
|
-
|
46
42
|
test "new user should receive confirmation email" do
|
47
43
|
assert_equal @user.email, @mail['to'].to_s
|
48
44
|
end
|
@@ -54,21 +50,41 @@ class DeviseTokenAuth::RegistrationsControllerTest < ActionController::TestCase
|
|
54
50
|
|
55
51
|
describe "Adding extra params" do
|
56
52
|
before do
|
53
|
+
@redirect_url = Faker::Internet.url
|
54
|
+
@operating_thetan = 2
|
55
|
+
|
57
56
|
xhr :post, :create, {
|
58
57
|
email: Faker::Internet.email,
|
59
58
|
password: "secret123",
|
60
59
|
password_confirmation: "secret123",
|
61
|
-
confirm_success_url:
|
62
|
-
|
60
|
+
confirm_success_url: @redirect_url,
|
61
|
+
favorite_color: @fav_color,
|
62
|
+
operating_thetan: @operating_thetan
|
63
63
|
}
|
64
64
|
|
65
65
|
@user = assigns(:resource)
|
66
66
|
@data = JSON.parse(response.body)
|
67
67
|
@mail = ActionMailer::Base.deliveries.last
|
68
|
+
|
69
|
+
@mail_reset_token = @mail.body.match(/confirmation_token=([^&]*)&/)[1]
|
70
|
+
@mail_redirect_url = CGI.unescape(@mail.body.match(/redirect_url=(.*)\"/)[1])
|
71
|
+
@mail_config_name = CGI.unescape(@mail.body.match(/config=([^&]*)&/)[1])
|
72
|
+
end
|
73
|
+
|
74
|
+
test 'redirect_url is included as param in email' do
|
75
|
+
assert_equal @redirect_url, @mail_redirect_url
|
76
|
+
end
|
77
|
+
|
78
|
+
test "additional sign_up params should be considered" do
|
79
|
+
assert_equal @operating_thetan, @user.operating_thetan
|
80
|
+
end
|
81
|
+
|
82
|
+
test 'config_name param is included in the confirmation email link' do
|
83
|
+
assert @mail_config_name
|
68
84
|
end
|
69
85
|
|
70
|
-
test "
|
71
|
-
assert_equal
|
86
|
+
test "client config name falls back to 'default'" do
|
87
|
+
assert_equal "default", @mail_config_name
|
72
88
|
end
|
73
89
|
end
|
74
90
|
|
@@ -334,5 +350,42 @@ class DeviseTokenAuth::RegistrationsControllerTest < ActionController::TestCase
|
|
334
350
|
refute Mang.where(id: @user.id).first
|
335
351
|
end
|
336
352
|
end
|
353
|
+
|
354
|
+
|
355
|
+
describe "Passing client config name" do
|
356
|
+
setup do
|
357
|
+
@request.env['devise.mapping'] = Devise.mappings[:mang]
|
358
|
+
end
|
359
|
+
|
360
|
+
teardown do
|
361
|
+
@request.env['devise.mapping'] = Devise.mappings[:user]
|
362
|
+
end
|
363
|
+
|
364
|
+
before do
|
365
|
+
@config_name = 'altUser'
|
366
|
+
|
367
|
+
xhr :post, :create, {
|
368
|
+
email: Faker::Internet.email,
|
369
|
+
password: "secret123",
|
370
|
+
password_confirmation: "secret123",
|
371
|
+
confirm_success_url: Faker::Internet.url,
|
372
|
+
config_name: @config_name
|
373
|
+
}
|
374
|
+
|
375
|
+
@user = assigns(:resource)
|
376
|
+
@data = JSON.parse(response.body)
|
377
|
+
@mail = ActionMailer::Base.deliveries.last
|
378
|
+
|
379
|
+
@user.reload
|
380
|
+
|
381
|
+
@mail_reset_token = @mail.body.match(/confirmation_token=([^&]*)&/)[1]
|
382
|
+
@mail_redirect_url = CGI.unescape(@mail.body.match(/redirect_url=(.*)\"/)[1])
|
383
|
+
@mail_config_name = CGI.unescape(@mail.body.match(/config=([^&]*)&/)[1])
|
384
|
+
end
|
385
|
+
|
386
|
+
test 'config_name param is included in the confirmation email link' do
|
387
|
+
assert_equal @config_name, @mail_config_name
|
388
|
+
end
|
389
|
+
end
|
337
390
|
end
|
338
391
|
end
|