devise_token_auth_fork_dfabarbosa 1.0.0

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.
Files changed (164) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +13 -0
  3. data/README.md +97 -0
  4. data/Rakefile +42 -0
  5. data/app/controllers/devise_token_auth/application_controller.rb +79 -0
  6. data/app/controllers/devise_token_auth/concerns/resource_finder.rb +44 -0
  7. data/app/controllers/devise_token_auth/concerns/set_user_by_token.rb +164 -0
  8. data/app/controllers/devise_token_auth/confirmations_controller.rb +39 -0
  9. data/app/controllers/devise_token_auth/omniauth_callbacks_controller.rb +239 -0
  10. data/app/controllers/devise_token_auth/passwords_controller.rb +188 -0
  11. data/app/controllers/devise_token_auth/registrations_controller.rb +204 -0
  12. data/app/controllers/devise_token_auth/sessions_controller.rb +131 -0
  13. data/app/controllers/devise_token_auth/token_validations_controller.rb +31 -0
  14. data/app/controllers/devise_token_auth/unlocks_controller.rb +89 -0
  15. data/app/models/devise_token_auth/concerns/active_record_support.rb +34 -0
  16. data/app/models/devise_token_auth/concerns/mongoid_support.rb +19 -0
  17. data/app/models/devise_token_auth/concerns/user.rb +262 -0
  18. data/app/models/devise_token_auth/concerns/user_omniauth_callbacks.rb +28 -0
  19. data/app/validators/devise_token_auth/email_validator.rb +23 -0
  20. data/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
  21. data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  22. data/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
  23. data/app/views/devise_token_auth/omniauth_external_window.html.erb +38 -0
  24. data/config/locales/da-DK.yml +50 -0
  25. data/config/locales/de.yml +49 -0
  26. data/config/locales/en.yml +50 -0
  27. data/config/locales/es.yml +49 -0
  28. data/config/locales/fr.yml +49 -0
  29. data/config/locales/it.yml +46 -0
  30. data/config/locales/ja.yml +46 -0
  31. data/config/locales/nl.yml +30 -0
  32. data/config/locales/pl.yml +48 -0
  33. data/config/locales/pt-BR.yml +46 -0
  34. data/config/locales/pt.yml +48 -0
  35. data/config/locales/ro.yml +46 -0
  36. data/config/locales/ru.yml +50 -0
  37. data/config/locales/sq.yml +46 -0
  38. data/config/locales/sv.yml +50 -0
  39. data/config/locales/uk.yml +59 -0
  40. data/config/locales/vi.yml +50 -0
  41. data/config/locales/zh-CN.yml +46 -0
  42. data/config/locales/zh-HK.yml +48 -0
  43. data/config/locales/zh-TW.yml +48 -0
  44. data/lib/devise_token_auth.rb +13 -0
  45. data/lib/devise_token_auth/blacklist.rb +2 -0
  46. data/lib/devise_token_auth/controllers/helpers.rb +161 -0
  47. data/lib/devise_token_auth/controllers/url_helpers.rb +10 -0
  48. data/lib/devise_token_auth/engine.rb +90 -0
  49. data/lib/devise_token_auth/errors.rb +8 -0
  50. data/lib/devise_token_auth/rails/routes.rb +116 -0
  51. data/lib/devise_token_auth/url.rb +41 -0
  52. data/lib/devise_token_auth/version.rb +5 -0
  53. data/lib/generators/devise_token_auth/USAGE +31 -0
  54. data/lib/generators/devise_token_auth/install_generator.rb +91 -0
  55. data/lib/generators/devise_token_auth/install_generator_helpers.rb +98 -0
  56. data/lib/generators/devise_token_auth/install_mongoid_generator.rb +46 -0
  57. data/lib/generators/devise_token_auth/install_views_generator.rb +18 -0
  58. data/lib/generators/devise_token_auth/templates/devise_token_auth.rb +50 -0
  59. data/lib/generators/devise_token_auth/templates/devise_token_auth_create_users.rb.erb +56 -0
  60. data/lib/generators/devise_token_auth/templates/user.rb.erb +9 -0
  61. data/lib/generators/devise_token_auth/templates/user_mongoid.rb.erb +63 -0
  62. data/lib/tasks/devise_token_auth_tasks.rake +6 -0
  63. data/test/controllers/custom/custom_confirmations_controller_test.rb +25 -0
  64. data/test/controllers/custom/custom_omniauth_callbacks_controller_test.rb +33 -0
  65. data/test/controllers/custom/custom_passwords_controller_test.rb +79 -0
  66. data/test/controllers/custom/custom_registrations_controller_test.rb +63 -0
  67. data/test/controllers/custom/custom_sessions_controller_test.rb +39 -0
  68. data/test/controllers/custom/custom_token_validations_controller_test.rb +42 -0
  69. data/test/controllers/demo_group_controller_test.rb +151 -0
  70. data/test/controllers/demo_mang_controller_test.rb +284 -0
  71. data/test/controllers/demo_user_controller_test.rb +629 -0
  72. data/test/controllers/devise_token_auth/confirmations_controller_test.rb +127 -0
  73. data/test/controllers/devise_token_auth/omniauth_callbacks_controller_test.rb +376 -0
  74. data/test/controllers/devise_token_auth/passwords_controller_test.rb +666 -0
  75. data/test/controllers/devise_token_auth/registrations_controller_test.rb +907 -0
  76. data/test/controllers/devise_token_auth/sessions_controller_test.rb +541 -0
  77. data/test/controllers/devise_token_auth/token_validations_controller_test.rb +102 -0
  78. data/test/controllers/devise_token_auth/unlocks_controller_test.rb +196 -0
  79. data/test/controllers/overrides/confirmations_controller_test.rb +47 -0
  80. data/test/controllers/overrides/omniauth_callbacks_controller_test.rb +53 -0
  81. data/test/controllers/overrides/passwords_controller_test.rb +64 -0
  82. data/test/controllers/overrides/registrations_controller_test.rb +46 -0
  83. data/test/controllers/overrides/sessions_controller_test.rb +35 -0
  84. data/test/controllers/overrides/token_validations_controller_test.rb +43 -0
  85. data/test/dummy/README.rdoc +28 -0
  86. data/test/dummy/app/active_record/lockable_user.rb +7 -0
  87. data/test/dummy/app/active_record/mang.rb +5 -0
  88. data/test/dummy/app/active_record/only_email_user.rb +7 -0
  89. data/test/dummy/app/active_record/scoped_user.rb +9 -0
  90. data/test/dummy/app/active_record/unconfirmable_user.rb +9 -0
  91. data/test/dummy/app/active_record/unregisterable_user.rb +9 -0
  92. data/test/dummy/app/active_record/user.rb +6 -0
  93. data/test/dummy/app/controllers/application_controller.rb +18 -0
  94. data/test/dummy/app/controllers/auth_origin_controller.rb +7 -0
  95. data/test/dummy/app/controllers/custom/confirmations_controller.rb +13 -0
  96. data/test/dummy/app/controllers/custom/omniauth_callbacks_controller.rb +13 -0
  97. data/test/dummy/app/controllers/custom/passwords_controller.rb +39 -0
  98. data/test/dummy/app/controllers/custom/registrations_controller.rb +39 -0
  99. data/test/dummy/app/controllers/custom/sessions_controller.rb +29 -0
  100. data/test/dummy/app/controllers/custom/token_validations_controller.rb +19 -0
  101. data/test/dummy/app/controllers/demo_group_controller.rb +15 -0
  102. data/test/dummy/app/controllers/demo_mang_controller.rb +14 -0
  103. data/test/dummy/app/controllers/demo_user_controller.rb +27 -0
  104. data/test/dummy/app/controllers/overrides/confirmations_controller.rb +28 -0
  105. data/test/dummy/app/controllers/overrides/omniauth_callbacks_controller.rb +16 -0
  106. data/test/dummy/app/controllers/overrides/passwords_controller.rb +35 -0
  107. data/test/dummy/app/controllers/overrides/registrations_controller.rb +29 -0
  108. data/test/dummy/app/controllers/overrides/sessions_controller.rb +36 -0
  109. data/test/dummy/app/controllers/overrides/token_validations_controller.rb +23 -0
  110. data/test/dummy/app/helpers/application_helper.rb +1058 -0
  111. data/test/dummy/app/models/concerns/favorite_color.rb +19 -0
  112. data/test/dummy/app/mongoid/lockable_user.rb +38 -0
  113. data/test/dummy/app/mongoid/mang.rb +53 -0
  114. data/test/dummy/app/mongoid/only_email_user.rb +33 -0
  115. data/test/dummy/app/mongoid/scoped_user.rb +57 -0
  116. data/test/dummy/app/mongoid/unconfirmable_user.rb +51 -0
  117. data/test/dummy/app/mongoid/unregisterable_user.rb +54 -0
  118. data/test/dummy/app/mongoid/user.rb +56 -0
  119. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  120. data/test/dummy/config.ru +18 -0
  121. data/test/dummy/config/application.rb +48 -0
  122. data/test/dummy/config/application.yml.bk +0 -0
  123. data/test/dummy/config/boot.rb +11 -0
  124. data/test/dummy/config/environment.rb +7 -0
  125. data/test/dummy/config/environments/development.rb +46 -0
  126. data/test/dummy/config/environments/production.rb +84 -0
  127. data/test/dummy/config/environments/test.rb +50 -0
  128. data/test/dummy/config/initializers/assets.rb +10 -0
  129. data/test/dummy/config/initializers/backtrace_silencers.rb +9 -0
  130. data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
  131. data/test/dummy/config/initializers/devise.rb +17 -0
  132. data/test/dummy/config/initializers/devise_token_auth.rb +24 -0
  133. data/test/dummy/config/initializers/figaro.rb +3 -0
  134. data/test/dummy/config/initializers/filter_parameter_logging.rb +6 -0
  135. data/test/dummy/config/initializers/inflections.rb +18 -0
  136. data/test/dummy/config/initializers/mime_types.rb +6 -0
  137. data/test/dummy/config/initializers/omniauth.rb +10 -0
  138. data/test/dummy/config/initializers/session_store.rb +5 -0
  139. data/test/dummy/config/initializers/wrap_parameters.rb +16 -0
  140. data/test/dummy/config/routes.rb +55 -0
  141. data/test/dummy/config/spring.rb +3 -0
  142. data/test/dummy/db/migrate/20140715061447_devise_token_auth_create_users.rb +65 -0
  143. data/test/dummy/db/migrate/20140715061805_devise_token_auth_create_mangs.rb +64 -0
  144. data/test/dummy/db/migrate/20140829044006_add_operating_thetan_to_user.rb +8 -0
  145. data/test/dummy/db/migrate/20140916224624_add_favorite_color_to_mangs.rb +7 -0
  146. data/test/dummy/db/migrate/20141222035835_devise_token_auth_create_only_email_users.rb +62 -0
  147. data/test/dummy/db/migrate/20141222053502_devise_token_auth_create_unregisterable_users.rb +63 -0
  148. data/test/dummy/db/migrate/20150708104536_devise_token_auth_create_unconfirmable_users.rb +63 -0
  149. data/test/dummy/db/migrate/20160103235141_devise_token_auth_create_scoped_users.rb +63 -0
  150. data/test/dummy/db/migrate/20160629184441_devise_token_auth_create_lockable_users.rb +63 -0
  151. data/test/dummy/db/schema.rb +200 -0
  152. data/test/dummy/lib/migration_database_helper.rb +43 -0
  153. data/test/factories/users.rb +40 -0
  154. data/test/lib/devise_token_auth/blacklist_test.rb +11 -0
  155. data/test/lib/devise_token_auth/url_test.rb +26 -0
  156. data/test/lib/generators/devise_token_auth/install_generator_test.rb +217 -0
  157. data/test/lib/generators/devise_token_auth/install_generator_with_namespace_test.rb +222 -0
  158. data/test/lib/generators/devise_token_auth/install_views_generator_test.rb +25 -0
  159. data/test/models/concerns/mongoid_support_test.rb +31 -0
  160. data/test/models/only_email_user_test.rb +37 -0
  161. data/test/models/user_test.rb +140 -0
  162. data/test/support/controllers/routes.rb +43 -0
  163. data/test/test_helper.rb +103 -0
  164. metadata +437 -0
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+ require 'fileutils'
5
+ require 'generators/devise_token_auth/install_views_generator'
6
+
7
+ module DeviseTokenAuth
8
+ class InstallViewsGeneratorTest < Rails::Generators::TestCase
9
+ tests InstallViewsGenerator
10
+ destination Rails.root.join('tmp/generators')
11
+
12
+ describe 'default values, clean install' do
13
+ setup :prepare_destination
14
+
15
+ before do
16
+ run_generator
17
+ end
18
+
19
+ test 'files are copied' do
20
+ assert_file 'app/views/devise/mailer/reset_password_instructions.html.erb'
21
+ assert_file 'app/views/devise/mailer/confirmation_instructions.html.erb'
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ if DEVISE_TOKEN_AUTH_ORM == :mongoid
6
+ class DeviseTokenAuth::Concerns::MongoidSupportTest < ActiveSupport::TestCase
7
+ describe DeviseTokenAuth::Concerns::MongoidSupport do
8
+ before do
9
+ @user = create(:user)
10
+ end
11
+
12
+ describe '#as_json' do
13
+ test 'should be defined' do
14
+ assert @user.methods.include?(:as_json)
15
+ end
16
+
17
+ test 'should except _id attribute' do
18
+ refute @user.as_json.key?('_id')
19
+ end
20
+
21
+ test 'should return with id attribute' do
22
+ assert_equal @user._id.to_s, @user.as_json['id']
23
+ end
24
+
25
+ test 'should accept options' do
26
+ refute @user.as_json(except: [:created_at]).key?('created_at')
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ class OnlyEmailUserTest < ActiveSupport::TestCase
6
+ describe OnlyEmailUser do
7
+ test 'trackable is disabled' do
8
+ refute OnlyEmailUser.method_defined?(:sign_in_count)
9
+ refute OnlyEmailUser.method_defined?(:current_sign_in_at)
10
+ refute OnlyEmailUser.method_defined?(:last_sign_in_at)
11
+ refute OnlyEmailUser.method_defined?(:current_sign_in_ip)
12
+ refute OnlyEmailUser.method_defined?(:last_sign_in_ip)
13
+ end
14
+
15
+ test 'confirmable is disabled' do
16
+ refute OnlyEmailUser.method_defined?(:confirmation_token)
17
+ refute OnlyEmailUser.method_defined?(:confirmed_at)
18
+ refute OnlyEmailUser.method_defined?(:confirmation_sent_at)
19
+ refute OnlyEmailUser.method_defined?(:unconfirmed_email)
20
+ end
21
+
22
+ test 'lockable is disabled' do
23
+ refute OnlyEmailUser.method_defined?(:failed_attempts)
24
+ refute OnlyEmailUser.method_defined?(:unlock_token)
25
+ refute OnlyEmailUser.method_defined?(:locked_at)
26
+ end
27
+
28
+ test 'recoverable is disabled' do
29
+ refute OnlyEmailUser.method_defined?(:reset_password_token)
30
+ refute OnlyEmailUser.method_defined?(:reset_password_sent_at)
31
+ end
32
+
33
+ test 'rememberable is disabled' do
34
+ refute OnlyEmailUser.method_defined?(:remember_created_at)
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,140 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ class UserTest < ActiveSupport::TestCase
6
+ describe User do
7
+ describe 'serialization' do
8
+ test 'hash should not include sensitive info' do
9
+ @resource = build(:user)
10
+ refute @resource.as_json[:tokens]
11
+ end
12
+ end
13
+
14
+ describe 'creation' do
15
+ test 'save fails if uid is missing' do
16
+ @resource = User.new
17
+ @resource.uid = nil
18
+ @resource.save
19
+
20
+ assert @resource.errors.messages[:uid]
21
+ end
22
+ end
23
+
24
+ describe 'email registration' do
25
+ test 'model should not save if email is blank' do
26
+ @resource = build(:user, email: nil)
27
+
28
+ refute @resource.save
29
+ assert @resource.errors.messages[:email] == [I18n.t('errors.messages.blank')]
30
+ end
31
+
32
+ test 'model should not save if email is not an email' do
33
+ @resource = build(:user, email: '@example.com')
34
+
35
+ refute @resource.save
36
+ assert @resource.errors.messages[:email] == [I18n.t('errors.messages.not_email')]
37
+ end
38
+ end
39
+
40
+ describe 'email uniqueness' do
41
+ test 'model should not save if email is taken' do
42
+ user_attributes = attributes_for(:user)
43
+ create(:user, user_attributes)
44
+ @resource = build(:user, user_attributes)
45
+
46
+ refute @resource.save
47
+ assert @resource.errors.messages[:email].first.include? 'taken'
48
+ assert @resource.errors.messages[:email].none? { |e| e =~ /translation missing/ }
49
+ end
50
+ end
51
+
52
+ describe 'oauth2 authentication' do
53
+ test 'model should save even if email is blank' do
54
+ @resource = build(:user, :facebook, email: nil)
55
+
56
+ assert @resource.save
57
+ assert @resource.errors.messages[:email].blank?
58
+ end
59
+ end
60
+
61
+ describe 'token expiry' do
62
+ before do
63
+ @resource = create(:user, :confirmed)
64
+
65
+ @auth_headers = @resource.create_new_auth_token
66
+
67
+ @token = @auth_headers['access-token']
68
+ @client_id = @auth_headers['client']
69
+ end
70
+
71
+ test 'should properly indicate whether token is current' do
72
+ assert @resource.token_is_current?(@token, @client_id)
73
+ # we want to update the expiry without forcing a cleanup (see below)
74
+ @resource.tokens[@client_id]['expiry'] = Time.zone.now.to_i - 10.seconds
75
+ refute @resource.token_is_current?(@token, @client_id)
76
+ end
77
+ end
78
+
79
+ describe 'user specific token lifespan' do
80
+ before do
81
+ @resource = create(:user, :confirmed)
82
+
83
+ auth_headers = @resource.create_new_auth_token
84
+ @token_global = auth_headers['access-token']
85
+ @client_id_global = auth_headers['client']
86
+
87
+ def @resource.token_lifespan
88
+ 1.minute
89
+ end
90
+
91
+ auth_headers = @resource.create_new_auth_token
92
+ @token_specific = auth_headers['access-token']
93
+ @client_id_specific = auth_headers['client']
94
+ end
95
+
96
+ test 'works per user' do
97
+ assert @resource.token_is_current?(@token_global, @client_id_global)
98
+
99
+ time = Time.zone.now.to_i
100
+ expiry_global = @resource.tokens[@client_id_global]['expiry'] || @resource.tokens[@client_id_global][:expiry]
101
+
102
+ assert expiry_global > time + DeviseTokenAuth.token_lifespan - 5.seconds
103
+ assert expiry_global < time + DeviseTokenAuth.token_lifespan + 5.seconds
104
+
105
+ expiry_specific = @resource.tokens[@client_id_specific]['expiry'] || @resource.tokens[@client_id_specific][:expiry]
106
+ assert expiry_specific > time + 55.seconds
107
+ assert expiry_specific < time + 65.seconds
108
+ end
109
+ end
110
+
111
+ describe 'expired tokens are destroyed on save' do
112
+ before do
113
+ @resource = create(:user, :confirmed)
114
+
115
+ @old_auth_headers = @resource.create_new_auth_token
116
+ @new_auth_headers = @resource.create_new_auth_token
117
+ expire_token(@resource, @old_auth_headers['client'])
118
+ end
119
+
120
+ test 'expired token was removed' do
121
+ refute @resource.tokens[@old_auth_headers[:client]]
122
+ end
123
+
124
+ test 'current token was not removed' do
125
+ assert @resource.tokens[@new_auth_headers['client']]
126
+ end
127
+ end
128
+
129
+ describe 'nil tokens are handled properly' do
130
+ before do
131
+ @resource = create(:user, :confirmed)
132
+ end
133
+
134
+ test 'tokens can be set to nil' do
135
+ @resource.tokens = nil
136
+ assert @resource.save
137
+ end
138
+ end
139
+ end
140
+ end
@@ -0,0 +1,43 @@
1
+ class Module
2
+ include Minitest::Spec::DSL
3
+ end
4
+
5
+ module ControllerRoutesAfterBlock
6
+ after do
7
+ Rails.application.reload_routes!
8
+ end
9
+ end
10
+
11
+ module CustomControllersRoutes
12
+ include ControllerRoutesAfterBlock
13
+
14
+ before do
15
+ Rails.application.routes.draw do
16
+ mount_devise_token_auth_for 'User', at: 'nice_user_auth', controllers: {
17
+ registrations: 'custom/registrations',
18
+ confirmations: 'custom/confirmations',
19
+ passwords: 'custom/passwords',
20
+ sessions: 'custom/sessions',
21
+ token_validations: 'custom/token_validations',
22
+ omniauth_callbacks: 'custom/omniauth_callbacks'
23
+ }
24
+ end
25
+ end
26
+ end
27
+
28
+ module OverridesControllersRoutes
29
+ include ControllerRoutesAfterBlock
30
+
31
+ before do
32
+ Rails.application.routes.draw do
33
+ mount_devise_token_auth_for 'User', at: 'evil_user_auth', controllers: {
34
+ confirmations: 'overrides/confirmations',
35
+ passwords: 'overrides/passwords',
36
+ omniauth_callbacks: 'overrides/omniauth_callbacks',
37
+ registrations: 'overrides/registrations',
38
+ sessions: 'overrides/sessions',
39
+ token_validations: 'overrides/token_validations'
40
+ }
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,103 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'simplecov'
4
+ SimpleCov.formatter = SimpleCov::Formatter::HTMLFormatter
5
+ SimpleCov.start 'rails' do
6
+ add_filter ['.bundle', 'test', 'config']
7
+ end
8
+
9
+ ENV['RAILS_ENV'] = 'test'
10
+ DEVISE_TOKEN_AUTH_ORM = (ENV['DEVISE_TOKEN_AUTH_ORM'] || :active_record).to_sym
11
+
12
+ puts "\n==> DeviseTokenAuth.orm = #{DEVISE_TOKEN_AUTH_ORM.inspect}"
13
+
14
+ require File.expand_path('dummy/config/environment', __dir__)
15
+ require 'active_support/testing/autorun'
16
+ require 'minitest/rails'
17
+ require 'mocha/minitest'
18
+ require 'database_cleaner'
19
+
20
+ FactoryBot.definition_file_paths = [File.expand_path('factories', __dir__)]
21
+ FactoryBot.find_definitions
22
+
23
+ Dir[File.join(__dir__, 'support/**', '*.rb')].each { |file| require file }
24
+
25
+ # I hate the default reporter. Use ProgressReporter instead.
26
+ Minitest::Reporters.use! Minitest::Reporters::ProgressReporter.new
27
+
28
+ class ActionDispatch::IntegrationTest
29
+ def follow_all_redirects!
30
+ follow_redirect! while response.status.to_s =~ /^3\d{2}/
31
+ end
32
+ end
33
+
34
+ class ActiveSupport::TestCase
35
+ include FactoryBot::Syntax::Methods
36
+
37
+ ActiveRecord::Migration.check_pending! if DEVISE_TOKEN_AUTH_ORM == :active_record
38
+
39
+ strategies = { active_record: :transaction,
40
+ mongoid: :truncation }
41
+ DatabaseCleaner.strategy = strategies[DEVISE_TOKEN_AUTH_ORM]
42
+ setup { DatabaseCleaner.start }
43
+ teardown { DatabaseCleaner.clean }
44
+
45
+ # Add more helper methods to be used by all tests here...
46
+
47
+ def age_token(user, client_id)
48
+ if user.tokens[client_id]
49
+ user.tokens[client_id]['updated_at'] = Time.zone.now - (DeviseTokenAuth.batch_request_buffer_throttle + 10.seconds)
50
+ user.save!
51
+ end
52
+ end
53
+
54
+ def expire_token(user, client_id)
55
+ if user.tokens[client_id]
56
+ user.tokens[client_id]['expiry'] = (Time.zone.now - (DeviseTokenAuth.token_lifespan.to_f + 10.seconds)).to_i
57
+ user.save!
58
+ end
59
+ end
60
+
61
+ # Suppress OmniAuth logger output
62
+ def silence_omniauth
63
+ previous_logger = OmniAuth.config.logger
64
+ OmniAuth.config.logger = Logger.new('/dev/null')
65
+ yield
66
+ ensure
67
+ OmniAuth.config.logger = previous_logger
68
+ end
69
+ end
70
+
71
+ class ActionController::TestCase
72
+ include Devise::Test::ControllerHelpers
73
+
74
+ setup do
75
+ @routes = Dummy::Application.routes
76
+ @request.env['devise.mapping'] = Devise.mappings[:user]
77
+ end
78
+ end
79
+
80
+ # TODO: remove it when support for Rails < 5 has been dropped
81
+ module Rails
82
+ module Controller
83
+ module Testing
84
+ module Integration
85
+ %w[get post patch put head delete get_via_redirect post_via_redirect].each do |method|
86
+ define_method(method) do |path_or_action, **args|
87
+ if Rails::VERSION::MAJOR >= 5
88
+ super path_or_action, args
89
+ else
90
+ super path_or_action, args[:params], args[:headers]
91
+ end
92
+ end
93
+ end
94
+ end
95
+ end
96
+ end
97
+ end
98
+
99
+ module ActionController
100
+ class TestCase
101
+ include Rails::Controller::Testing::Integration
102
+ end
103
+ end
metadata ADDED
@@ -0,0 +1,437 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: devise_token_auth_fork_dfabarbosa
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Lynn Hurley
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-01-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 4.2.0
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '6'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 4.2.0
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '6'
33
+ - !ruby/object:Gem::Dependency
34
+ name: devise
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">"
38
+ - !ruby/object:Gem::Version
39
+ version: 3.5.2
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '4.6'
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">"
48
+ - !ruby/object:Gem::Version
49
+ version: 3.5.2
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '4.6'
53
+ - !ruby/object:Gem::Dependency
54
+ name: appraisal
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ type: :development
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ - !ruby/object:Gem::Dependency
68
+ name: sqlite3
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '1.3'
74
+ type: :development
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: '1.3'
81
+ - !ruby/object:Gem::Dependency
82
+ name: pg
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ - !ruby/object:Gem::Dependency
96
+ name: mysql2
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
109
+ - !ruby/object:Gem::Dependency
110
+ name: mongoid
111
+ requirement: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: '4'
116
+ - - "<"
117
+ - !ruby/object:Gem::Version
118
+ version: '8'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '4'
126
+ - - "<"
127
+ - !ruby/object:Gem::Version
128
+ version: '8'
129
+ - !ruby/object:Gem::Dependency
130
+ name: mongoid-locker
131
+ requirement: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - "~>"
134
+ - !ruby/object:Gem::Version
135
+ version: '1.0'
136
+ type: :development
137
+ prerelease: false
138
+ version_requirements: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - "~>"
141
+ - !ruby/object:Gem::Version
142
+ version: '1.0'
143
+ description: For use with client side single page apps such as the venerable https://github.com/lynndylanhurley/ng-token-auth.
144
+ email:
145
+ - lynn.dylan.hurley@gmail.com
146
+ executables: []
147
+ extensions: []
148
+ extra_rdoc_files: []
149
+ files:
150
+ - LICENSE
151
+ - README.md
152
+ - Rakefile
153
+ - app/controllers/devise_token_auth/application_controller.rb
154
+ - app/controllers/devise_token_auth/concerns/resource_finder.rb
155
+ - app/controllers/devise_token_auth/concerns/set_user_by_token.rb
156
+ - app/controllers/devise_token_auth/confirmations_controller.rb
157
+ - app/controllers/devise_token_auth/omniauth_callbacks_controller.rb
158
+ - app/controllers/devise_token_auth/passwords_controller.rb
159
+ - app/controllers/devise_token_auth/registrations_controller.rb
160
+ - app/controllers/devise_token_auth/sessions_controller.rb
161
+ - app/controllers/devise_token_auth/token_validations_controller.rb
162
+ - app/controllers/devise_token_auth/unlocks_controller.rb
163
+ - app/models/devise_token_auth/concerns/active_record_support.rb
164
+ - app/models/devise_token_auth/concerns/mongoid_support.rb
165
+ - app/models/devise_token_auth/concerns/user.rb
166
+ - app/models/devise_token_auth/concerns/user_omniauth_callbacks.rb
167
+ - app/validators/devise_token_auth/email_validator.rb
168
+ - app/views/devise/mailer/confirmation_instructions.html.erb
169
+ - app/views/devise/mailer/reset_password_instructions.html.erb
170
+ - app/views/devise/mailer/unlock_instructions.html.erb
171
+ - app/views/devise_token_auth/omniauth_external_window.html.erb
172
+ - config/locales/da-DK.yml
173
+ - config/locales/de.yml
174
+ - config/locales/en.yml
175
+ - config/locales/es.yml
176
+ - config/locales/fr.yml
177
+ - config/locales/it.yml
178
+ - config/locales/ja.yml
179
+ - config/locales/nl.yml
180
+ - config/locales/pl.yml
181
+ - config/locales/pt-BR.yml
182
+ - config/locales/pt.yml
183
+ - config/locales/ro.yml
184
+ - config/locales/ru.yml
185
+ - config/locales/sq.yml
186
+ - config/locales/sv.yml
187
+ - config/locales/uk.yml
188
+ - config/locales/vi.yml
189
+ - config/locales/zh-CN.yml
190
+ - config/locales/zh-HK.yml
191
+ - config/locales/zh-TW.yml
192
+ - lib/devise_token_auth.rb
193
+ - lib/devise_token_auth/blacklist.rb
194
+ - lib/devise_token_auth/controllers/helpers.rb
195
+ - lib/devise_token_auth/controllers/url_helpers.rb
196
+ - lib/devise_token_auth/engine.rb
197
+ - lib/devise_token_auth/errors.rb
198
+ - lib/devise_token_auth/rails/routes.rb
199
+ - lib/devise_token_auth/url.rb
200
+ - lib/devise_token_auth/version.rb
201
+ - lib/generators/devise_token_auth/USAGE
202
+ - lib/generators/devise_token_auth/install_generator.rb
203
+ - lib/generators/devise_token_auth/install_generator_helpers.rb
204
+ - lib/generators/devise_token_auth/install_mongoid_generator.rb
205
+ - lib/generators/devise_token_auth/install_views_generator.rb
206
+ - lib/generators/devise_token_auth/templates/devise_token_auth.rb
207
+ - lib/generators/devise_token_auth/templates/devise_token_auth_create_users.rb.erb
208
+ - lib/generators/devise_token_auth/templates/user.rb.erb
209
+ - lib/generators/devise_token_auth/templates/user_mongoid.rb.erb
210
+ - lib/tasks/devise_token_auth_tasks.rake
211
+ - test/controllers/custom/custom_confirmations_controller_test.rb
212
+ - test/controllers/custom/custom_omniauth_callbacks_controller_test.rb
213
+ - test/controllers/custom/custom_passwords_controller_test.rb
214
+ - test/controllers/custom/custom_registrations_controller_test.rb
215
+ - test/controllers/custom/custom_sessions_controller_test.rb
216
+ - test/controllers/custom/custom_token_validations_controller_test.rb
217
+ - test/controllers/demo_group_controller_test.rb
218
+ - test/controllers/demo_mang_controller_test.rb
219
+ - test/controllers/demo_user_controller_test.rb
220
+ - test/controllers/devise_token_auth/confirmations_controller_test.rb
221
+ - test/controllers/devise_token_auth/omniauth_callbacks_controller_test.rb
222
+ - test/controllers/devise_token_auth/passwords_controller_test.rb
223
+ - test/controllers/devise_token_auth/registrations_controller_test.rb
224
+ - test/controllers/devise_token_auth/sessions_controller_test.rb
225
+ - test/controllers/devise_token_auth/token_validations_controller_test.rb
226
+ - test/controllers/devise_token_auth/unlocks_controller_test.rb
227
+ - test/controllers/overrides/confirmations_controller_test.rb
228
+ - test/controllers/overrides/omniauth_callbacks_controller_test.rb
229
+ - test/controllers/overrides/passwords_controller_test.rb
230
+ - test/controllers/overrides/registrations_controller_test.rb
231
+ - test/controllers/overrides/sessions_controller_test.rb
232
+ - test/controllers/overrides/token_validations_controller_test.rb
233
+ - test/dummy/README.rdoc
234
+ - test/dummy/app/active_record/lockable_user.rb
235
+ - test/dummy/app/active_record/mang.rb
236
+ - test/dummy/app/active_record/only_email_user.rb
237
+ - test/dummy/app/active_record/scoped_user.rb
238
+ - test/dummy/app/active_record/unconfirmable_user.rb
239
+ - test/dummy/app/active_record/unregisterable_user.rb
240
+ - test/dummy/app/active_record/user.rb
241
+ - test/dummy/app/controllers/application_controller.rb
242
+ - test/dummy/app/controllers/auth_origin_controller.rb
243
+ - test/dummy/app/controllers/custom/confirmations_controller.rb
244
+ - test/dummy/app/controllers/custom/omniauth_callbacks_controller.rb
245
+ - test/dummy/app/controllers/custom/passwords_controller.rb
246
+ - test/dummy/app/controllers/custom/registrations_controller.rb
247
+ - test/dummy/app/controllers/custom/sessions_controller.rb
248
+ - test/dummy/app/controllers/custom/token_validations_controller.rb
249
+ - test/dummy/app/controllers/demo_group_controller.rb
250
+ - test/dummy/app/controllers/demo_mang_controller.rb
251
+ - test/dummy/app/controllers/demo_user_controller.rb
252
+ - test/dummy/app/controllers/overrides/confirmations_controller.rb
253
+ - test/dummy/app/controllers/overrides/omniauth_callbacks_controller.rb
254
+ - test/dummy/app/controllers/overrides/passwords_controller.rb
255
+ - test/dummy/app/controllers/overrides/registrations_controller.rb
256
+ - test/dummy/app/controllers/overrides/sessions_controller.rb
257
+ - test/dummy/app/controllers/overrides/token_validations_controller.rb
258
+ - test/dummy/app/helpers/application_helper.rb
259
+ - test/dummy/app/models/concerns/favorite_color.rb
260
+ - test/dummy/app/mongoid/lockable_user.rb
261
+ - test/dummy/app/mongoid/mang.rb
262
+ - test/dummy/app/mongoid/only_email_user.rb
263
+ - test/dummy/app/mongoid/scoped_user.rb
264
+ - test/dummy/app/mongoid/unconfirmable_user.rb
265
+ - test/dummy/app/mongoid/unregisterable_user.rb
266
+ - test/dummy/app/mongoid/user.rb
267
+ - test/dummy/app/views/layouts/application.html.erb
268
+ - test/dummy/config.ru
269
+ - test/dummy/config/application.rb
270
+ - test/dummy/config/application.yml.bk
271
+ - test/dummy/config/boot.rb
272
+ - test/dummy/config/environment.rb
273
+ - test/dummy/config/environments/development.rb
274
+ - test/dummy/config/environments/production.rb
275
+ - test/dummy/config/environments/test.rb
276
+ - test/dummy/config/initializers/assets.rb
277
+ - test/dummy/config/initializers/backtrace_silencers.rb
278
+ - test/dummy/config/initializers/cookies_serializer.rb
279
+ - test/dummy/config/initializers/devise.rb
280
+ - test/dummy/config/initializers/devise_token_auth.rb
281
+ - test/dummy/config/initializers/figaro.rb
282
+ - test/dummy/config/initializers/filter_parameter_logging.rb
283
+ - test/dummy/config/initializers/inflections.rb
284
+ - test/dummy/config/initializers/mime_types.rb
285
+ - test/dummy/config/initializers/omniauth.rb
286
+ - test/dummy/config/initializers/session_store.rb
287
+ - test/dummy/config/initializers/wrap_parameters.rb
288
+ - test/dummy/config/routes.rb
289
+ - test/dummy/config/spring.rb
290
+ - test/dummy/db/migrate/20140715061447_devise_token_auth_create_users.rb
291
+ - test/dummy/db/migrate/20140715061805_devise_token_auth_create_mangs.rb
292
+ - test/dummy/db/migrate/20140829044006_add_operating_thetan_to_user.rb
293
+ - test/dummy/db/migrate/20140916224624_add_favorite_color_to_mangs.rb
294
+ - test/dummy/db/migrate/20141222035835_devise_token_auth_create_only_email_users.rb
295
+ - test/dummy/db/migrate/20141222053502_devise_token_auth_create_unregisterable_users.rb
296
+ - test/dummy/db/migrate/20150708104536_devise_token_auth_create_unconfirmable_users.rb
297
+ - test/dummy/db/migrate/20160103235141_devise_token_auth_create_scoped_users.rb
298
+ - test/dummy/db/migrate/20160629184441_devise_token_auth_create_lockable_users.rb
299
+ - test/dummy/db/schema.rb
300
+ - test/dummy/lib/migration_database_helper.rb
301
+ - test/factories/users.rb
302
+ - test/lib/devise_token_auth/blacklist_test.rb
303
+ - test/lib/devise_token_auth/url_test.rb
304
+ - test/lib/generators/devise_token_auth/install_generator_test.rb
305
+ - test/lib/generators/devise_token_auth/install_generator_with_namespace_test.rb
306
+ - test/lib/generators/devise_token_auth/install_views_generator_test.rb
307
+ - test/models/concerns/mongoid_support_test.rb
308
+ - test/models/only_email_user_test.rb
309
+ - test/models/user_test.rb
310
+ - test/support/controllers/routes.rb
311
+ - test/test_helper.rb
312
+ homepage: http://github.com/lynndylanhurley/devise_token_auth
313
+ licenses:
314
+ - WTFPL
315
+ metadata: {}
316
+ post_install_message:
317
+ rdoc_options: []
318
+ require_paths:
319
+ - lib
320
+ required_ruby_version: !ruby/object:Gem::Requirement
321
+ requirements:
322
+ - - ">="
323
+ - !ruby/object:Gem::Version
324
+ version: 2.2.0
325
+ required_rubygems_version: !ruby/object:Gem::Requirement
326
+ requirements:
327
+ - - ">="
328
+ - !ruby/object:Gem::Version
329
+ version: '0'
330
+ requirements: []
331
+ rubyforge_project:
332
+ rubygems_version: 2.6.14
333
+ signing_key:
334
+ specification_version: 4
335
+ summary: Token based authentication for rails. Uses Devise + OmniAuth.
336
+ test_files:
337
+ - test/dummy/app/mongoid/only_email_user.rb
338
+ - test/dummy/app/mongoid/scoped_user.rb
339
+ - test/dummy/app/mongoid/mang.rb
340
+ - test/dummy/app/mongoid/unregisterable_user.rb
341
+ - test/dummy/app/mongoid/lockable_user.rb
342
+ - test/dummy/app/mongoid/unconfirmable_user.rb
343
+ - test/dummy/app/mongoid/user.rb
344
+ - test/dummy/app/models/concerns/favorite_color.rb
345
+ - test/dummy/app/active_record/only_email_user.rb
346
+ - test/dummy/app/active_record/scoped_user.rb
347
+ - test/dummy/app/active_record/mang.rb
348
+ - test/dummy/app/active_record/unregisterable_user.rb
349
+ - test/dummy/app/active_record/lockable_user.rb
350
+ - test/dummy/app/active_record/unconfirmable_user.rb
351
+ - test/dummy/app/active_record/user.rb
352
+ - test/dummy/app/controllers/overrides/token_validations_controller.rb
353
+ - test/dummy/app/controllers/overrides/omniauth_callbacks_controller.rb
354
+ - test/dummy/app/controllers/overrides/passwords_controller.rb
355
+ - test/dummy/app/controllers/overrides/sessions_controller.rb
356
+ - test/dummy/app/controllers/overrides/confirmations_controller.rb
357
+ - test/dummy/app/controllers/overrides/registrations_controller.rb
358
+ - test/dummy/app/controllers/application_controller.rb
359
+ - test/dummy/app/controllers/demo_user_controller.rb
360
+ - test/dummy/app/controllers/auth_origin_controller.rb
361
+ - test/dummy/app/controllers/demo_mang_controller.rb
362
+ - test/dummy/app/controllers/demo_group_controller.rb
363
+ - test/dummy/app/controllers/custom/token_validations_controller.rb
364
+ - test/dummy/app/controllers/custom/omniauth_callbacks_controller.rb
365
+ - test/dummy/app/controllers/custom/passwords_controller.rb
366
+ - test/dummy/app/controllers/custom/sessions_controller.rb
367
+ - test/dummy/app/controllers/custom/confirmations_controller.rb
368
+ - test/dummy/app/controllers/custom/registrations_controller.rb
369
+ - test/dummy/app/views/layouts/application.html.erb
370
+ - test/dummy/app/helpers/application_helper.rb
371
+ - test/dummy/config/routes.rb
372
+ - test/dummy/config/environments/production.rb
373
+ - test/dummy/config/environments/development.rb
374
+ - test/dummy/config/environments/test.rb
375
+ - test/dummy/config/spring.rb
376
+ - test/dummy/config/environment.rb
377
+ - test/dummy/config/application.rb
378
+ - test/dummy/config/boot.rb
379
+ - test/dummy/config/application.yml.bk
380
+ - test/dummy/config/initializers/backtrace_silencers.rb
381
+ - test/dummy/config/initializers/devise_token_auth.rb
382
+ - test/dummy/config/initializers/mime_types.rb
383
+ - test/dummy/config/initializers/filter_parameter_logging.rb
384
+ - test/dummy/config/initializers/session_store.rb
385
+ - test/dummy/config/initializers/wrap_parameters.rb
386
+ - test/dummy/config/initializers/assets.rb
387
+ - test/dummy/config/initializers/cookies_serializer.rb
388
+ - test/dummy/config/initializers/devise.rb
389
+ - test/dummy/config/initializers/omniauth.rb
390
+ - test/dummy/config/initializers/inflections.rb
391
+ - test/dummy/config/initializers/figaro.rb
392
+ - test/dummy/config.ru
393
+ - test/dummy/lib/migration_database_helper.rb
394
+ - test/dummy/db/schema.rb
395
+ - test/dummy/db/migrate/20150708104536_devise_token_auth_create_unconfirmable_users.rb
396
+ - test/dummy/db/migrate/20140829044006_add_operating_thetan_to_user.rb
397
+ - test/dummy/db/migrate/20140916224624_add_favorite_color_to_mangs.rb
398
+ - test/dummy/db/migrate/20141222053502_devise_token_auth_create_unregisterable_users.rb
399
+ - test/dummy/db/migrate/20141222035835_devise_token_auth_create_only_email_users.rb
400
+ - test/dummy/db/migrate/20160629184441_devise_token_auth_create_lockable_users.rb
401
+ - test/dummy/db/migrate/20160103235141_devise_token_auth_create_scoped_users.rb
402
+ - test/dummy/db/migrate/20140715061447_devise_token_auth_create_users.rb
403
+ - test/dummy/db/migrate/20140715061805_devise_token_auth_create_mangs.rb
404
+ - test/dummy/README.rdoc
405
+ - test/models/only_email_user_test.rb
406
+ - test/models/concerns/mongoid_support_test.rb
407
+ - test/models/user_test.rb
408
+ - test/support/controllers/routes.rb
409
+ - test/factories/users.rb
410
+ - test/lib/devise_token_auth/url_test.rb
411
+ - test/lib/devise_token_auth/blacklist_test.rb
412
+ - test/lib/generators/devise_token_auth/install_generator_test.rb
413
+ - test/lib/generators/devise_token_auth/install_views_generator_test.rb
414
+ - test/lib/generators/devise_token_auth/install_generator_with_namespace_test.rb
415
+ - test/test_helper.rb
416
+ - test/controllers/overrides/token_validations_controller_test.rb
417
+ - test/controllers/overrides/confirmations_controller_test.rb
418
+ - test/controllers/overrides/registrations_controller_test.rb
419
+ - test/controllers/overrides/omniauth_callbacks_controller_test.rb
420
+ - test/controllers/overrides/sessions_controller_test.rb
421
+ - test/controllers/overrides/passwords_controller_test.rb
422
+ - test/controllers/demo_mang_controller_test.rb
423
+ - test/controllers/devise_token_auth/token_validations_controller_test.rb
424
+ - test/controllers/devise_token_auth/confirmations_controller_test.rb
425
+ - test/controllers/devise_token_auth/unlocks_controller_test.rb
426
+ - test/controllers/devise_token_auth/registrations_controller_test.rb
427
+ - test/controllers/devise_token_auth/omniauth_callbacks_controller_test.rb
428
+ - test/controllers/devise_token_auth/sessions_controller_test.rb
429
+ - test/controllers/devise_token_auth/passwords_controller_test.rb
430
+ - test/controllers/demo_user_controller_test.rb
431
+ - test/controllers/custom/custom_omniauth_callbacks_controller_test.rb
432
+ - test/controllers/custom/custom_sessions_controller_test.rb
433
+ - test/controllers/custom/custom_confirmations_controller_test.rb
434
+ - test/controllers/custom/custom_token_validations_controller_test.rb
435
+ - test/controllers/custom/custom_registrations_controller_test.rb
436
+ - test/controllers/custom/custom_passwords_controller_test.rb
437
+ - test/controllers/demo_group_controller_test.rb