devise 4.4.0 → 4.7.3

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 (220) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +125 -4
  3. data/MIT-LICENSE +2 -1
  4. data/README.md +124 -58
  5. data/app/controllers/devise/passwords_controller.rb +1 -0
  6. data/app/controllers/devise/registrations_controller.rb +26 -8
  7. data/app/controllers/devise_controller.rb +3 -3
  8. data/app/helpers/devise_helper.rb +21 -18
  9. data/app/mailers/devise/mailer.rb +5 -5
  10. data/app/views/devise/confirmations/new.html.erb +1 -1
  11. data/app/views/devise/passwords/edit.html.erb +3 -3
  12. data/app/views/devise/passwords/new.html.erb +1 -1
  13. data/app/views/devise/registrations/edit.html.erb +4 -4
  14. data/app/views/devise/registrations/new.html.erb +3 -3
  15. data/app/views/devise/sessions/new.html.erb +3 -3
  16. data/app/views/devise/shared/_error_messages.html.erb +15 -0
  17. data/app/views/devise/shared/_links.html.erb +7 -7
  18. data/app/views/devise/unlocks/new.html.erb +1 -1
  19. data/config/locales/en.yml +3 -2
  20. data/lib/devise.rb +5 -4
  21. data/lib/devise/controllers/helpers.rb +13 -13
  22. data/lib/devise/controllers/sign_in_out.rb +10 -4
  23. data/lib/devise/controllers/url_helpers.rb +1 -1
  24. data/lib/devise/failure_app.rb +25 -5
  25. data/lib/devise/hooks/timeoutable.rb +2 -2
  26. data/lib/devise/mapping.rb +1 -1
  27. data/lib/devise/models/authenticatable.rb +44 -45
  28. data/lib/devise/models/confirmable.rb +19 -4
  29. data/lib/devise/models/database_authenticatable.rb +50 -12
  30. data/lib/devise/models/lockable.rb +3 -3
  31. data/lib/devise/models/recoverable.rb +2 -2
  32. data/lib/devise/models/registerable.rb +2 -0
  33. data/lib/devise/models/rememberable.rb +1 -1
  34. data/lib/devise/models/trackable.rb +14 -2
  35. data/lib/devise/models/validatable.rb +1 -1
  36. data/lib/devise/parameter_filter.rb +2 -0
  37. data/lib/devise/parameter_sanitizer.rb +13 -1
  38. data/lib/devise/rails.rb +1 -5
  39. data/lib/devise/rails/routes.rb +6 -6
  40. data/lib/devise/secret_key_finder.rb +27 -0
  41. data/lib/devise/strategies/authenticatable.rb +1 -1
  42. data/lib/devise/strategies/database_authenticatable.rb +6 -1
  43. data/lib/devise/test/controller_helpers.rb +4 -1
  44. data/lib/devise/test/integration_helpers.rb +1 -1
  45. data/lib/devise/version.rb +1 -1
  46. data/lib/generators/active_record/devise_generator.rb +9 -9
  47. data/lib/generators/devise/controllers_generator.rb +1 -1
  48. data/lib/generators/devise/devise_generator.rb +1 -1
  49. data/lib/generators/devise/install_generator.rb +1 -5
  50. data/lib/generators/devise/orm_helpers.rb +2 -2
  51. data/lib/generators/devise/views_generator.rb +1 -1
  52. data/lib/generators/mongoid/devise_generator.rb +5 -5
  53. data/lib/generators/templates/README +9 -1
  54. data/lib/generators/templates/controllers/omniauth_callbacks_controller.rb +1 -1
  55. data/lib/generators/templates/devise.rb +37 -5
  56. data/lib/generators/templates/simple_form_for/confirmations/new.html.erb +5 -1
  57. data/lib/generators/templates/simple_form_for/passwords/edit.html.erb +10 -2
  58. data/lib/generators/templates/simple_form_for/passwords/new.html.erb +4 -1
  59. data/lib/generators/templates/simple_form_for/registrations/edit.html.erb +11 -3
  60. data/lib/generators/templates/simple_form_for/registrations/new.html.erb +11 -3
  61. data/lib/generators/templates/simple_form_for/sessions/new.html.erb +7 -2
  62. data/lib/generators/templates/simple_form_for/unlocks/new.html.erb +4 -1
  63. metadata +8 -308
  64. data/.gitignore +0 -10
  65. data/.travis.yml +0 -63
  66. data/.yardopts +0 -9
  67. data/CODE_OF_CONDUCT.md +0 -22
  68. data/CONTRIBUTING.md +0 -79
  69. data/Gemfile +0 -39
  70. data/Gemfile.lock +0 -193
  71. data/ISSUE_TEMPLATE.md +0 -19
  72. data/Rakefile +0 -37
  73. data/bin/test +0 -13
  74. data/devise.gemspec +0 -28
  75. data/devise.png +0 -0
  76. data/gemfiles/Gemfile.rails-4.1-stable +0 -32
  77. data/gemfiles/Gemfile.rails-4.1-stable.lock +0 -171
  78. data/gemfiles/Gemfile.rails-4.2-stable +0 -32
  79. data/gemfiles/Gemfile.rails-4.2-stable.lock +0 -192
  80. data/gemfiles/Gemfile.rails-5.0-stable +0 -33
  81. data/gemfiles/Gemfile.rails-5.0-stable.lock +0 -192
  82. data/guides/bug_report_templates/integration_test.rb +0 -106
  83. data/test/controllers/custom_registrations_controller_test.rb +0 -42
  84. data/test/controllers/custom_strategy_test.rb +0 -66
  85. data/test/controllers/helper_methods_test.rb +0 -24
  86. data/test/controllers/helpers_test.rb +0 -318
  87. data/test/controllers/inherited_controller_i18n_messages_test.rb +0 -53
  88. data/test/controllers/internal_helpers_test.rb +0 -129
  89. data/test/controllers/load_hooks_controller_test.rb +0 -21
  90. data/test/controllers/passwords_controller_test.rb +0 -34
  91. data/test/controllers/sessions_controller_test.rb +0 -108
  92. data/test/controllers/url_helpers_test.rb +0 -67
  93. data/test/delegator_test.rb +0 -21
  94. data/test/devise_test.rb +0 -109
  95. data/test/failure_app_test.rb +0 -340
  96. data/test/generators/active_record_generator_test.rb +0 -130
  97. data/test/generators/controllers_generator_test.rb +0 -50
  98. data/test/generators/devise_generator_test.rb +0 -41
  99. data/test/generators/install_generator_test.rb +0 -26
  100. data/test/generators/mongoid_generator_test.rb +0 -25
  101. data/test/generators/views_generator_test.rb +0 -105
  102. data/test/helpers/devise_helper_test.rb +0 -51
  103. data/test/integration/authenticatable_test.rb +0 -712
  104. data/test/integration/confirmable_test.rb +0 -326
  105. data/test/integration/database_authenticatable_test.rb +0 -97
  106. data/test/integration/http_authenticatable_test.rb +0 -108
  107. data/test/integration/lockable_test.rb +0 -242
  108. data/test/integration/mounted_engine_test.rb +0 -38
  109. data/test/integration/omniauthable_test.rb +0 -137
  110. data/test/integration/recoverable_test.rb +0 -349
  111. data/test/integration/registerable_test.rb +0 -365
  112. data/test/integration/rememberable_test.rb +0 -219
  113. data/test/integration/timeoutable_test.rb +0 -186
  114. data/test/integration/trackable_test.rb +0 -94
  115. data/test/mailers/confirmation_instructions_test.rb +0 -117
  116. data/test/mailers/email_changed_test.rb +0 -132
  117. data/test/mailers/mailer_test.rb +0 -20
  118. data/test/mailers/reset_password_instructions_test.rb +0 -98
  119. data/test/mailers/unlock_instructions_test.rb +0 -93
  120. data/test/mapping_test.rb +0 -136
  121. data/test/models/authenticatable_test.rb +0 -25
  122. data/test/models/confirmable_test.rb +0 -538
  123. data/test/models/database_authenticatable_test.rb +0 -283
  124. data/test/models/lockable_test.rb +0 -352
  125. data/test/models/omniauthable_test.rb +0 -9
  126. data/test/models/recoverable_test.rb +0 -263
  127. data/test/models/registerable_test.rb +0 -9
  128. data/test/models/rememberable_test.rb +0 -184
  129. data/test/models/serializable_test.rb +0 -60
  130. data/test/models/timeoutable_test.rb +0 -53
  131. data/test/models/trackable_test.rb +0 -52
  132. data/test/models/validatable_test.rb +0 -121
  133. data/test/models_test.rb +0 -155
  134. data/test/omniauth/config_test.rb +0 -61
  135. data/test/omniauth/url_helpers_test.rb +0 -53
  136. data/test/orm/active_record.rb +0 -19
  137. data/test/orm/mongoid.rb +0 -15
  138. data/test/parameter_sanitizer_test.rb +0 -77
  139. data/test/rails_app/Rakefile +0 -6
  140. data/test/rails_app/app/active_record/admin.rb +0 -8
  141. data/test/rails_app/app/active_record/shim.rb +0 -4
  142. data/test/rails_app/app/active_record/user.rb +0 -11
  143. data/test/rails_app/app/active_record/user_on_engine.rb +0 -9
  144. data/test/rails_app/app/active_record/user_on_main_app.rb +0 -9
  145. data/test/rails_app/app/active_record/user_with_validations.rb +0 -12
  146. data/test/rails_app/app/active_record/user_without_email.rb +0 -10
  147. data/test/rails_app/app/controllers/admins/sessions_controller.rb +0 -8
  148. data/test/rails_app/app/controllers/admins_controller.rb +0 -8
  149. data/test/rails_app/app/controllers/application_controller.rb +0 -13
  150. data/test/rails_app/app/controllers/application_with_fake_engine.rb +0 -32
  151. data/test/rails_app/app/controllers/custom/registrations_controller.rb +0 -33
  152. data/test/rails_app/app/controllers/home_controller.rb +0 -31
  153. data/test/rails_app/app/controllers/publisher/registrations_controller.rb +0 -4
  154. data/test/rails_app/app/controllers/publisher/sessions_controller.rb +0 -4
  155. data/test/rails_app/app/controllers/users/omniauth_callbacks_controller.rb +0 -16
  156. data/test/rails_app/app/controllers/users_controller.rb +0 -33
  157. data/test/rails_app/app/helpers/application_helper.rb +0 -5
  158. data/test/rails_app/app/mailers/users/from_proc_mailer.rb +0 -5
  159. data/test/rails_app/app/mailers/users/mailer.rb +0 -5
  160. data/test/rails_app/app/mailers/users/reply_to_mailer.rb +0 -6
  161. data/test/rails_app/app/mongoid/admin.rb +0 -31
  162. data/test/rails_app/app/mongoid/shim.rb +0 -25
  163. data/test/rails_app/app/mongoid/user.rb +0 -41
  164. data/test/rails_app/app/mongoid/user_on_engine.rb +0 -41
  165. data/test/rails_app/app/mongoid/user_on_main_app.rb +0 -41
  166. data/test/rails_app/app/mongoid/user_with_validations.rb +0 -37
  167. data/test/rails_app/app/mongoid/user_without_email.rb +0 -35
  168. data/test/rails_app/app/views/admins/index.html.erb +0 -1
  169. data/test/rails_app/app/views/admins/sessions/new.html.erb +0 -2
  170. data/test/rails_app/app/views/home/admin_dashboard.html.erb +0 -1
  171. data/test/rails_app/app/views/home/index.html.erb +0 -1
  172. data/test/rails_app/app/views/home/join.html.erb +0 -1
  173. data/test/rails_app/app/views/home/private.html.erb +0 -1
  174. data/test/rails_app/app/views/home/user_dashboard.html.erb +0 -1
  175. data/test/rails_app/app/views/layouts/application.html.erb +0 -24
  176. data/test/rails_app/app/views/users/edit_form.html.erb +0 -1
  177. data/test/rails_app/app/views/users/index.html.erb +0 -1
  178. data/test/rails_app/app/views/users/mailer/confirmation_instructions.erb +0 -1
  179. data/test/rails_app/app/views/users/sessions/new.html.erb +0 -1
  180. data/test/rails_app/bin/bundle +0 -3
  181. data/test/rails_app/bin/rails +0 -4
  182. data/test/rails_app/bin/rake +0 -4
  183. data/test/rails_app/config.ru +0 -4
  184. data/test/rails_app/config/application.rb +0 -46
  185. data/test/rails_app/config/boot.rb +0 -22
  186. data/test/rails_app/config/database.yml +0 -18
  187. data/test/rails_app/config/environment.rb +0 -7
  188. data/test/rails_app/config/environments/development.rb +0 -32
  189. data/test/rails_app/config/environments/production.rb +0 -88
  190. data/test/rails_app/config/environments/test.rb +0 -47
  191. data/test/rails_app/config/initializers/backtrace_silencers.rb +0 -9
  192. data/test/rails_app/config/initializers/devise.rb +0 -182
  193. data/test/rails_app/config/initializers/inflections.rb +0 -4
  194. data/test/rails_app/config/initializers/secret_token.rb +0 -5
  195. data/test/rails_app/config/initializers/session_store.rb +0 -3
  196. data/test/rails_app/config/routes.rb +0 -128
  197. data/test/rails_app/db/migrate/20100401102949_create_tables.rb +0 -77
  198. data/test/rails_app/db/schema.rb +0 -57
  199. data/test/rails_app/lib/shared_admin.rb +0 -23
  200. data/test/rails_app/lib/shared_user.rb +0 -32
  201. data/test/rails_app/lib/shared_user_without_email.rb +0 -28
  202. data/test/rails_app/lib/shared_user_without_omniauth.rb +0 -15
  203. data/test/rails_app/public/404.html +0 -26
  204. data/test/rails_app/public/422.html +0 -26
  205. data/test/rails_app/public/500.html +0 -26
  206. data/test/rails_app/public/favicon.ico +0 -0
  207. data/test/rails_test.rb +0 -11
  208. data/test/routes_test.rb +0 -281
  209. data/test/support/action_controller/record_identifier.rb +0 -12
  210. data/test/support/assertions.rb +0 -30
  211. data/test/support/helpers.rb +0 -83
  212. data/test/support/http_method_compatibility.rb +0 -53
  213. data/test/support/integration.rb +0 -94
  214. data/test/support/locale/en.yml +0 -8
  215. data/test/support/mongoid.yml +0 -6
  216. data/test/support/webrat/integrations/rails.rb +0 -35
  217. data/test/test/controller_helpers_test.rb +0 -188
  218. data/test/test/integration_helpers_test.rb +0 -34
  219. data/test/test_helper.rb +0 -36
  220. data/test/test_models.rb +0 -35
@@ -1,33 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source "https://rubygems.org"
4
-
5
- gemspec path: ".."
6
-
7
- gem "rails", '~> 5.0.0'
8
- gem "omniauth"
9
- gem "omniauth-oauth2"
10
- gem "rdoc"
11
-
12
- gem "activemodel-serializers-xml", github: "rails/activemodel-serializers-xml"
13
-
14
- gem "rails-controller-testing"
15
-
16
- gem "responders", "~> 2.1"
17
-
18
- group :test do
19
- gem "omniauth-facebook"
20
- gem "omniauth-openid"
21
- gem "webrat", "0.7.3", require: false
22
- gem "mocha", "~> 1.1", require: false
23
- gem 'test_after_commit', require: false
24
- end
25
-
26
- platforms :ruby do
27
- gem "sqlite3"
28
- end
29
-
30
- # TODO:
31
- # group :mongoid do
32
- # gem "mongoid", "~> 4.0.0"
33
- # end
@@ -1,192 +0,0 @@
1
- GIT
2
- remote: git://github.com/rails/activemodel-serializers-xml.git
3
- revision: dd9c0acf26aab111ebc647cd8deb99ebc6946531
4
- specs:
5
- activemodel-serializers-xml (1.0.1)
6
- activemodel (> 5.x)
7
- activesupport (> 5.x)
8
- builder (~> 3.1)
9
-
10
- PATH
11
- remote: ..
12
- specs:
13
- devise (4.4.0)
14
- bcrypt (~> 3.0)
15
- orm_adapter (~> 0.1)
16
- railties (>= 4.1.0, < 5.2)
17
- responders
18
- warden (~> 1.2.3)
19
-
20
- GEM
21
- remote: https://rubygems.org/
22
- specs:
23
- actioncable (5.0.2)
24
- actionpack (= 5.0.2)
25
- nio4r (>= 1.2, < 3.0)
26
- websocket-driver (~> 0.6.1)
27
- actionmailer (5.0.2)
28
- actionpack (= 5.0.2)
29
- actionview (= 5.0.2)
30
- activejob (= 5.0.2)
31
- mail (~> 2.5, >= 2.5.4)
32
- rails-dom-testing (~> 2.0)
33
- actionpack (5.0.2)
34
- actionview (= 5.0.2)
35
- activesupport (= 5.0.2)
36
- rack (~> 2.0)
37
- rack-test (~> 0.6.3)
38
- rails-dom-testing (~> 2.0)
39
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
40
- actionview (5.0.2)
41
- activesupport (= 5.0.2)
42
- builder (~> 3.1)
43
- erubis (~> 2.7.0)
44
- rails-dom-testing (~> 2.0)
45
- rails-html-sanitizer (~> 1.0, >= 1.0.3)
46
- activejob (5.0.2)
47
- activesupport (= 5.0.2)
48
- globalid (>= 0.3.6)
49
- activemodel (5.0.2)
50
- activesupport (= 5.0.2)
51
- activerecord (5.0.2)
52
- activemodel (= 5.0.2)
53
- activesupport (= 5.0.2)
54
- arel (~> 7.0)
55
- activesupport (5.0.2)
56
- concurrent-ruby (~> 1.0, >= 1.0.2)
57
- i18n (~> 0.7)
58
- minitest (~> 5.1)
59
- tzinfo (~> 1.1)
60
- arel (7.1.4)
61
- bcrypt (3.1.11)
62
- builder (3.2.3)
63
- concurrent-ruby (1.0.5)
64
- erubis (2.7.0)
65
- faraday (0.11.0)
66
- multipart-post (>= 1.2, < 3)
67
- globalid (0.4.0)
68
- activesupport (>= 4.2.0)
69
- hashie (3.5.5)
70
- i18n (0.8.1)
71
- jwt (1.5.6)
72
- loofah (2.0.3)
73
- nokogiri (>= 1.5.9)
74
- mail (2.6.5)
75
- mime-types (>= 1.16, < 4)
76
- metaclass (0.0.4)
77
- method_source (0.8.2)
78
- mime-types (3.1)
79
- mime-types-data (~> 3.2015)
80
- mime-types-data (3.2016.0521)
81
- mini_portile2 (2.1.0)
82
- minitest (5.10.1)
83
- mocha (1.2.1)
84
- metaclass (~> 0.0.1)
85
- multi_json (1.12.1)
86
- multi_xml (0.6.0)
87
- multipart-post (2.0.0)
88
- nio4r (2.0.0)
89
- nokogiri (1.7.2)
90
- mini_portile2 (~> 2.1.0)
91
- oauth2 (1.3.1)
92
- faraday (>= 0.8, < 0.12)
93
- jwt (~> 1.0)
94
- multi_json (~> 1.3)
95
- multi_xml (~> 0.5)
96
- rack (>= 1.2, < 3)
97
- omniauth (1.6.1)
98
- hashie (>= 3.4.6, < 3.6.0)
99
- rack (>= 1.6.2, < 3)
100
- omniauth-facebook (4.0.0)
101
- omniauth-oauth2 (~> 1.2)
102
- omniauth-oauth2 (1.4.0)
103
- oauth2 (~> 1.0)
104
- omniauth (~> 1.2)
105
- omniauth-openid (1.0.1)
106
- omniauth (~> 1.0)
107
- rack-openid (~> 1.3.1)
108
- orm_adapter (0.5.0)
109
- rack (2.0.2)
110
- rack-openid (1.3.1)
111
- rack (>= 1.1.0)
112
- ruby-openid (>= 2.1.8)
113
- rack-test (0.6.3)
114
- rack (>= 1.0)
115
- rails (5.0.2)
116
- actioncable (= 5.0.2)
117
- actionmailer (= 5.0.2)
118
- actionpack (= 5.0.2)
119
- actionview (= 5.0.2)
120
- activejob (= 5.0.2)
121
- activemodel (= 5.0.2)
122
- activerecord (= 5.0.2)
123
- activesupport (= 5.0.2)
124
- bundler (>= 1.3.0, < 2.0)
125
- railties (= 5.0.2)
126
- sprockets-rails (>= 2.0.0)
127
- rails-controller-testing (1.0.1)
128
- actionpack (~> 5.x)
129
- actionview (~> 5.x)
130
- activesupport (~> 5.x)
131
- rails-dom-testing (2.0.3)
132
- activesupport (>= 4.2.0)
133
- nokogiri (>= 1.6)
134
- rails-html-sanitizer (1.0.3)
135
- loofah (~> 2.0)
136
- railties (5.0.2)
137
- actionpack (= 5.0.2)
138
- activesupport (= 5.0.2)
139
- method_source
140
- rake (>= 0.8.7)
141
- thor (>= 0.18.1, < 2.0)
142
- rake (12.0.0)
143
- rdoc (5.1.0)
144
- responders (2.4.0)
145
- actionpack (>= 4.2.0, < 5.3)
146
- railties (>= 4.2.0, < 5.3)
147
- ruby-openid (2.7.0)
148
- sprockets (3.7.1)
149
- concurrent-ruby (~> 1.0)
150
- rack (> 1, < 3)
151
- sprockets-rails (3.2.0)
152
- actionpack (>= 4.0)
153
- activesupport (>= 4.0)
154
- sprockets (>= 3.0.0)
155
- sqlite3 (1.3.13)
156
- test_after_commit (1.1.0)
157
- activerecord (>= 3.2)
158
- thor (0.19.4)
159
- thread_safe (0.3.6)
160
- tzinfo (1.2.3)
161
- thread_safe (~> 0.1)
162
- warden (1.2.7)
163
- rack (>= 1.0)
164
- webrat (0.7.3)
165
- nokogiri (>= 1.2.0)
166
- rack (>= 1.0)
167
- rack-test (>= 0.5.3)
168
- websocket-driver (0.6.5)
169
- websocket-extensions (>= 0.1.0)
170
- websocket-extensions (0.1.2)
171
-
172
- PLATFORMS
173
- ruby
174
-
175
- DEPENDENCIES
176
- activemodel-serializers-xml!
177
- devise!
178
- mocha (~> 1.1)
179
- omniauth
180
- omniauth-facebook
181
- omniauth-oauth2
182
- omniauth-openid
183
- rails (~> 5.0.0)
184
- rails-controller-testing
185
- rdoc
186
- responders (~> 2.1)
187
- sqlite3
188
- test_after_commit
189
- webrat (= 0.7.3)
190
-
191
- BUNDLED WITH
192
- 1.15.3
@@ -1,106 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- begin
4
- require 'bundler/inline'
5
- rescue LoadError => e
6
- $stderr.puts 'Bundler version 1.10 or later is required. Please update your Bundler'
7
- raise e
8
- end
9
-
10
- gemfile(true) do
11
- source 'https://rubygems.org'
12
- # Activate the gem you are reporting the issue against.
13
- gem 'rails', '~> 4.2.0'
14
- gem 'devise', '~> 4.0'
15
- gem 'sqlite3'
16
- gem 'byebug'
17
- end
18
-
19
- require 'rack/test'
20
- require 'action_controller/railtie'
21
- require 'active_record'
22
- require 'devise/rails/routes'
23
- require 'devise/rails/warden_compat'
24
-
25
- ActiveRecord::Base.establish_connection( adapter: :sqlite3, database: ':memory:')
26
-
27
- class DeviseCreateUsers < ActiveRecord::Migration
28
- def change
29
- create_table(:users) do |t|
30
- t.string :email, null: false
31
- t.string :encrypted_password, null: true
32
- t.timestamps null: false
33
- end
34
-
35
- end
36
- end
37
-
38
- Devise.setup do |config|
39
- require 'devise/orm/active_record'
40
- config.secret_key = 'secret_key_base'
41
- end
42
-
43
- class TestApp < Rails::Application
44
- config.root = File.dirname(__FILE__)
45
- config.session_store :cookie_store, key: 'cookie_store_key'
46
- secrets.secret_token = 'secret_token'
47
- secrets.secret_key_base = 'secret_key_base'
48
- config.eager_load = false
49
-
50
- config.middleware.use Warden::Manager do |config|
51
- Devise.warden_config = config
52
- end
53
-
54
- config.logger = Logger.new($stdout)
55
- Rails.logger = config.logger
56
-
57
- end
58
-
59
- Rails.application.initialize!
60
-
61
- DeviseCreateUsers.migrate(:up)
62
-
63
- class User < ActiveRecord::Base
64
- devise :database_authenticatable
65
- end
66
-
67
- Rails.application.routes.draw do
68
- devise_for :users
69
-
70
- get '/' => 'test#index'
71
- end
72
-
73
- class ApplicationController < ActionController::Base
74
- end
75
-
76
- class TestController < ApplicationController
77
- include Rails.application.routes.url_helpers
78
-
79
- before_filter :authenticate_user!
80
-
81
- def index
82
- render plain: 'Home'
83
- end
84
- end
85
-
86
- require 'minitest/autorun'
87
-
88
- class BugTest < ActionDispatch::IntegrationTest
89
- include Rack::Test::Methods
90
- include Warden::Test::Helpers
91
-
92
- def test_returns_success
93
- Warden.test_mode!
94
-
95
- login_as User.create!(email: 'test@test.com', password: 'test123456', password_confirmation: 'test123456')
96
-
97
- get '/'
98
- assert last_response.ok?
99
- end
100
-
101
- private
102
-
103
- def app
104
- Rails.application
105
- end
106
- end
@@ -1,42 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'test_helper'
4
-
5
- class CustomRegistrationsControllerTest < Devise::ControllerTestCase
6
- tests Custom::RegistrationsController
7
-
8
- include Devise::Test::ControllerHelpers
9
-
10
- setup do
11
- request.env["devise.mapping"] = Devise.mappings[:user]
12
- @password = 'password'
13
- @user = create_user(password: @password, password_confirmation: @password).tap(&:confirm)
14
- end
15
-
16
- test "yield resource to block on create success" do
17
- post :create, params: { user: { email: "user@example.org", password: "password", password_confirmation: "password" } }
18
- assert @controller.create_block_called?, "create failed to yield resource to provided block"
19
- end
20
-
21
- test "yield resource to block on create failure" do
22
- post :create, params: { user: { } }
23
- assert @controller.create_block_called?, "create failed to yield resource to provided block"
24
- end
25
-
26
- test "yield resource to block on update success" do
27
- sign_in @user
28
- put :update, params: { user: { current_password: @password } }
29
- assert @controller.update_block_called?, "update failed to yield resource to provided block"
30
- end
31
-
32
- test "yield resource to block on update failure" do
33
- sign_in @user
34
- put :update, params: { user: { } }
35
- assert @controller.update_block_called?, "update failed to yield resource to provided block"
36
- end
37
-
38
- test "yield resource to block on new" do
39
- get :new
40
- assert @controller.new_block_called?, "new failed to yield resource to provided block"
41
- end
42
- end
@@ -1,66 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'test_helper'
4
- require 'ostruct'
5
- require 'warden/strategies/base'
6
- require 'devise/test_helpers'
7
-
8
- class CustomStrategyController < ActionController::Base
9
- def new
10
- warden.authenticate!(:custom_strategy)
11
- end
12
- end
13
-
14
- # These tests are to prove that a warden strategy can successfully
15
- # return a custom response, including a specific status code and
16
- # custom http response headers. This does work in production,
17
- # however, at the time of writing this, the Devise test helpers do
18
- # not recognise the custom response and proceed to calling the
19
- # Failure App. This makes it impossible to write tests for a
20
- # strategy that return a custom response with Devise.
21
- class CustomStrategy < Warden::Strategies::Base
22
- def authenticate!
23
- custom_headers = { "X-FOO" => "BAR" }
24
- response = Rack::Response.new("BAD REQUEST", 400, custom_headers)
25
- custom! response.finish
26
- end
27
- end
28
-
29
- class CustomStrategyTest < Devise::ControllerTestCase
30
- tests CustomStrategyController
31
-
32
- include Devise::Test::ControllerHelpers
33
-
34
- setup do
35
- Warden::Strategies.add(:custom_strategy, CustomStrategy)
36
- end
37
-
38
- teardown do
39
- Warden::Strategies._strategies.delete(:custom_strategy)
40
- end
41
-
42
- test "custom strategy can return its own status code" do
43
- ret = get :new
44
-
45
- # check the returned rack array
46
- # assert ret.is_a?(Array)
47
- # assert_equal 400, ret.first
48
- assert ret.is_a?(ActionDispatch::TestResponse)
49
-
50
- # check the saved response as well. This is purely so that the response is available to the testing framework
51
- # for verification. In production, the above array would be delivered directly to Rack.
52
- assert_response 400
53
- end
54
-
55
- test "custom strategy can return custom headers" do
56
- ret = get :new
57
-
58
- # check the returned rack array
59
- # assert ret.is_a?(Array)
60
- # assert_equal ret.third['X-FOO'], 'BAR'
61
- assert ret.is_a?(ActionDispatch::TestResponse)
62
-
63
- # check the saved response headers as well.
64
- assert_equal response.headers['X-FOO'], 'BAR'
65
- end
66
- end
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'test_helper'
4
-
5
- class ApiController < ActionController::Metal
6
- include Devise::Controllers::Helpers
7
- end
8
-
9
- class HelperMethodsTest < Devise::ControllerTestCase
10
- tests ApiController
11
-
12
- test 'includes Devise::Controllers::Helpers' do
13
- assert_includes @controller.class.ancestors, Devise::Controllers::Helpers
14
- end
15
-
16
- test 'does not respond_to helper or helper_method' do
17
- refute_respond_to @controller.class, :helper
18
- refute_respond_to @controller.class, :helper_method
19
- end
20
-
21
- test 'defines methods like current_user' do
22
- assert_respond_to @controller, :current_user
23
- end
24
- end