devise 3.2.4 → 4.7.1

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 (235) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +259 -994
  3. data/MIT-LICENSE +1 -1
  4. data/README.md +336 -99
  5. data/app/controllers/devise/confirmations_controller.rb +9 -3
  6. data/app/controllers/devise/omniauth_callbacks_controller.rb +12 -6
  7. data/app/controllers/devise/passwords_controller.rb +19 -6
  8. data/app/controllers/devise/registrations_controller.rb +55 -22
  9. data/app/controllers/devise/sessions_controller.rb +44 -14
  10. data/app/controllers/devise/unlocks_controller.rb +7 -2
  11. data/app/controllers/devise_controller.rb +65 -29
  12. data/app/helpers/devise_helper.rb +12 -19
  13. data/app/mailers/devise/mailer.rb +10 -0
  14. data/app/views/devise/confirmations/new.html.erb +8 -4
  15. data/app/views/devise/mailer/email_changed.html.erb +7 -0
  16. data/app/views/devise/mailer/password_change.html.erb +3 -0
  17. data/app/views/devise/passwords/edit.html.erb +15 -6
  18. data/app/views/devise/passwords/new.html.erb +8 -4
  19. data/app/views/devise/registrations/edit.html.erb +27 -13
  20. data/app/views/devise/registrations/new.html.erb +19 -8
  21. data/app/views/devise/sessions/new.html.erb +18 -9
  22. data/app/views/devise/shared/_error_messages.html.erb +15 -0
  23. data/app/views/devise/shared/{_links.erb → _links.html.erb} +9 -9
  24. data/app/views/devise/unlocks/new.html.erb +8 -4
  25. data/config/locales/en.yml +22 -16
  26. data/lib/devise/controllers/helpers.rb +109 -29
  27. data/lib/devise/controllers/rememberable.rb +12 -3
  28. data/lib/devise/controllers/scoped_views.rb +2 -0
  29. data/lib/devise/controllers/sign_in_out.rb +36 -20
  30. data/lib/devise/controllers/store_location.rb +31 -5
  31. data/lib/devise/controllers/url_helpers.rb +9 -7
  32. data/lib/devise/delegator.rb +2 -0
  33. data/lib/devise/encryptor.rb +24 -0
  34. data/lib/devise/failure_app.rb +116 -36
  35. data/lib/devise/hooks/activatable.rb +5 -4
  36. data/lib/devise/hooks/csrf_cleaner.rb +5 -1
  37. data/lib/devise/hooks/forgetable.rb +2 -0
  38. data/lib/devise/hooks/lockable.rb +6 -1
  39. data/lib/devise/hooks/proxy.rb +3 -1
  40. data/lib/devise/hooks/rememberable.rb +2 -0
  41. data/lib/devise/hooks/timeoutable.rb +15 -8
  42. data/lib/devise/hooks/trackable.rb +2 -0
  43. data/lib/devise/mailers/helpers.rb +7 -4
  44. data/lib/devise/mapping.rb +8 -2
  45. data/lib/devise/models/authenticatable.rb +76 -51
  46. data/lib/devise/models/confirmable.rb +129 -34
  47. data/lib/devise/models/database_authenticatable.rb +107 -30
  48. data/lib/devise/models/lockable.rb +19 -9
  49. data/lib/devise/models/omniauthable.rb +2 -0
  50. data/lib/devise/models/recoverable.rb +62 -26
  51. data/lib/devise/models/registerable.rb +4 -0
  52. data/lib/devise/models/rememberable.rb +58 -29
  53. data/lib/devise/models/timeoutable.rb +2 -6
  54. data/lib/devise/models/trackable.rb +20 -4
  55. data/lib/devise/models/validatable.rb +12 -5
  56. data/lib/devise/models.rb +3 -1
  57. data/lib/devise/modules.rb +2 -0
  58. data/lib/devise/omniauth/config.rb +2 -0
  59. data/lib/devise/omniauth/url_helpers.rb +14 -5
  60. data/lib/devise/omniauth.rb +2 -0
  61. data/lib/devise/orm/active_record.rb +5 -1
  62. data/lib/devise/orm/mongoid.rb +6 -2
  63. data/lib/devise/parameter_filter.rb +4 -0
  64. data/lib/devise/parameter_sanitizer.rb +139 -65
  65. data/lib/devise/rails/routes.rb +80 -61
  66. data/lib/devise/rails/warden_compat.rb +3 -10
  67. data/lib/devise/rails.rb +8 -17
  68. data/lib/devise/secret_key_finder.rb +27 -0
  69. data/lib/devise/strategies/authenticatable.rb +18 -7
  70. data/lib/devise/strategies/base.rb +2 -0
  71. data/lib/devise/strategies/database_authenticatable.rb +13 -5
  72. data/lib/devise/strategies/rememberable.rb +15 -3
  73. data/lib/devise/test/controller_helpers.rb +165 -0
  74. data/lib/devise/test/integration_helpers.rb +63 -0
  75. data/lib/devise/test_helpers.rb +7 -124
  76. data/lib/devise/time_inflector.rb +2 -0
  77. data/lib/devise/token_generator.rb +3 -41
  78. data/lib/devise/version.rb +3 -1
  79. data/lib/devise.rb +106 -79
  80. data/lib/generators/active_record/devise_generator.rb +44 -7
  81. data/lib/generators/active_record/templates/migration.rb +5 -3
  82. data/lib/generators/active_record/templates/migration_existing.rb +5 -3
  83. data/lib/generators/devise/controllers_generator.rb +46 -0
  84. data/lib/generators/devise/devise_generator.rb +4 -2
  85. data/lib/generators/devise/install_generator.rb +17 -0
  86. data/lib/generators/devise/orm_helpers.rb +10 -21
  87. data/lib/generators/devise/views_generator.rb +21 -11
  88. data/lib/generators/mongoid/devise_generator.rb +7 -5
  89. data/lib/generators/templates/README +2 -9
  90. data/lib/generators/templates/controllers/README +14 -0
  91. data/lib/generators/templates/controllers/confirmations_controller.rb +30 -0
  92. data/lib/generators/templates/controllers/omniauth_callbacks_controller.rb +30 -0
  93. data/lib/generators/templates/controllers/passwords_controller.rb +34 -0
  94. data/lib/generators/templates/controllers/registrations_controller.rb +62 -0
  95. data/lib/generators/templates/controllers/sessions_controller.rb +27 -0
  96. data/lib/generators/templates/controllers/unlocks_controller.rb +30 -0
  97. data/lib/generators/templates/devise.rb +69 -30
  98. data/lib/generators/templates/markerb/confirmation_instructions.markerb +1 -1
  99. data/lib/generators/templates/markerb/email_changed.markerb +7 -0
  100. data/lib/generators/templates/markerb/password_change.markerb +3 -0
  101. data/lib/generators/templates/markerb/reset_password_instructions.markerb +1 -1
  102. data/lib/generators/templates/markerb/unlock_instructions.markerb +1 -1
  103. data/lib/generators/templates/simple_form_for/confirmations/new.html.erb +5 -1
  104. data/lib/generators/templates/simple_form_for/passwords/edit.html.erb +10 -2
  105. data/lib/generators/templates/simple_form_for/passwords/new.html.erb +4 -1
  106. data/lib/generators/templates/simple_form_for/registrations/edit.html.erb +11 -3
  107. data/lib/generators/templates/simple_form_for/registrations/new.html.erb +11 -3
  108. data/lib/generators/templates/simple_form_for/sessions/new.html.erb +9 -4
  109. data/lib/generators/templates/simple_form_for/unlocks/new.html.erb +4 -1
  110. metadata +31 -259
  111. data/.gitignore +0 -11
  112. data/.travis.yml +0 -28
  113. data/.yardopts +0 -9
  114. data/CONTRIBUTING.md +0 -14
  115. data/Gemfile +0 -29
  116. data/Gemfile.lock +0 -160
  117. data/Rakefile +0 -35
  118. data/devise.gemspec +0 -27
  119. data/devise.png +0 -0
  120. data/gemfiles/Gemfile.rails-3.2-stable +0 -29
  121. data/gemfiles/Gemfile.rails-4.0-stable +0 -29
  122. data/gemfiles/Gemfile.rails-head +0 -29
  123. data/test/controllers/custom_strategy_test.rb +0 -62
  124. data/test/controllers/helpers_test.rb +0 -276
  125. data/test/controllers/internal_helpers_test.rb +0 -123
  126. data/test/controllers/passwords_controller_test.rb +0 -31
  127. data/test/controllers/sessions_controller_test.rb +0 -103
  128. data/test/controllers/url_helpers_test.rb +0 -59
  129. data/test/delegator_test.rb +0 -19
  130. data/test/devise_test.rb +0 -94
  131. data/test/failure_app_test.rb +0 -232
  132. data/test/generators/active_record_generator_test.rb +0 -103
  133. data/test/generators/devise_generator_test.rb +0 -39
  134. data/test/generators/install_generator_test.rb +0 -13
  135. data/test/generators/mongoid_generator_test.rb +0 -23
  136. data/test/generators/views_generator_test.rb +0 -96
  137. data/test/helpers/devise_helper_test.rb +0 -51
  138. data/test/integration/authenticatable_test.rb +0 -713
  139. data/test/integration/confirmable_test.rb +0 -284
  140. data/test/integration/database_authenticatable_test.rb +0 -84
  141. data/test/integration/http_authenticatable_test.rb +0 -105
  142. data/test/integration/lockable_test.rb +0 -239
  143. data/test/integration/omniauthable_test.rb +0 -133
  144. data/test/integration/recoverable_test.rb +0 -334
  145. data/test/integration/registerable_test.rb +0 -349
  146. data/test/integration/rememberable_test.rb +0 -167
  147. data/test/integration/timeoutable_test.rb +0 -183
  148. data/test/integration/trackable_test.rb +0 -92
  149. data/test/mailers/confirmation_instructions_test.rb +0 -115
  150. data/test/mailers/reset_password_instructions_test.rb +0 -96
  151. data/test/mailers/unlock_instructions_test.rb +0 -91
  152. data/test/mapping_test.rb +0 -127
  153. data/test/models/authenticatable_test.rb +0 -13
  154. data/test/models/confirmable_test.rb +0 -454
  155. data/test/models/database_authenticatable_test.rb +0 -249
  156. data/test/models/lockable_test.rb +0 -316
  157. data/test/models/omniauthable_test.rb +0 -7
  158. data/test/models/recoverable_test.rb +0 -184
  159. data/test/models/registerable_test.rb +0 -7
  160. data/test/models/rememberable_test.rb +0 -183
  161. data/test/models/serializable_test.rb +0 -49
  162. data/test/models/timeoutable_test.rb +0 -51
  163. data/test/models/trackable_test.rb +0 -13
  164. data/test/models/validatable_test.rb +0 -127
  165. data/test/models_test.rb +0 -144
  166. data/test/omniauth/config_test.rb +0 -57
  167. data/test/omniauth/url_helpers_test.rb +0 -54
  168. data/test/orm/active_record.rb +0 -10
  169. data/test/orm/mongoid.rb +0 -13
  170. data/test/parameter_sanitizer_test.rb +0 -81
  171. data/test/rails_app/Rakefile +0 -6
  172. data/test/rails_app/app/active_record/admin.rb +0 -6
  173. data/test/rails_app/app/active_record/shim.rb +0 -2
  174. data/test/rails_app/app/active_record/user.rb +0 -6
  175. data/test/rails_app/app/controllers/admins/sessions_controller.rb +0 -6
  176. data/test/rails_app/app/controllers/admins_controller.rb +0 -11
  177. data/test/rails_app/app/controllers/application_controller.rb +0 -9
  178. data/test/rails_app/app/controllers/home_controller.rb +0 -25
  179. data/test/rails_app/app/controllers/publisher/registrations_controller.rb +0 -2
  180. data/test/rails_app/app/controllers/publisher/sessions_controller.rb +0 -2
  181. data/test/rails_app/app/controllers/users/omniauth_callbacks_controller.rb +0 -14
  182. data/test/rails_app/app/controllers/users_controller.rb +0 -31
  183. data/test/rails_app/app/helpers/application_helper.rb +0 -3
  184. data/test/rails_app/app/mailers/users/mailer.rb +0 -12
  185. data/test/rails_app/app/mongoid/admin.rb +0 -29
  186. data/test/rails_app/app/mongoid/shim.rb +0 -23
  187. data/test/rails_app/app/mongoid/user.rb +0 -39
  188. data/test/rails_app/app/views/admins/index.html.erb +0 -1
  189. data/test/rails_app/app/views/admins/sessions/new.html.erb +0 -2
  190. data/test/rails_app/app/views/home/admin_dashboard.html.erb +0 -1
  191. data/test/rails_app/app/views/home/index.html.erb +0 -1
  192. data/test/rails_app/app/views/home/join.html.erb +0 -1
  193. data/test/rails_app/app/views/home/private.html.erb +0 -1
  194. data/test/rails_app/app/views/home/user_dashboard.html.erb +0 -1
  195. data/test/rails_app/app/views/layouts/application.html.erb +0 -24
  196. data/test/rails_app/app/views/users/edit_form.html.erb +0 -1
  197. data/test/rails_app/app/views/users/index.html.erb +0 -1
  198. data/test/rails_app/app/views/users/mailer/confirmation_instructions.erb +0 -1
  199. data/test/rails_app/app/views/users/sessions/new.html.erb +0 -1
  200. data/test/rails_app/bin/bundle +0 -3
  201. data/test/rails_app/bin/rails +0 -4
  202. data/test/rails_app/bin/rake +0 -4
  203. data/test/rails_app/config/application.rb +0 -40
  204. data/test/rails_app/config/boot.rb +0 -14
  205. data/test/rails_app/config/database.yml +0 -18
  206. data/test/rails_app/config/environment.rb +0 -5
  207. data/test/rails_app/config/environments/development.rb +0 -30
  208. data/test/rails_app/config/environments/production.rb +0 -80
  209. data/test/rails_app/config/environments/test.rb +0 -36
  210. data/test/rails_app/config/initializers/backtrace_silencers.rb +0 -7
  211. data/test/rails_app/config/initializers/devise.rb +0 -181
  212. data/test/rails_app/config/initializers/inflections.rb +0 -2
  213. data/test/rails_app/config/initializers/secret_token.rb +0 -8
  214. data/test/rails_app/config/initializers/session_store.rb +0 -1
  215. data/test/rails_app/config/routes.rb +0 -105
  216. data/test/rails_app/config.ru +0 -4
  217. data/test/rails_app/db/migrate/20100401102949_create_tables.rb +0 -71
  218. data/test/rails_app/db/schema.rb +0 -55
  219. data/test/rails_app/lib/shared_admin.rb +0 -17
  220. data/test/rails_app/lib/shared_user.rb +0 -29
  221. data/test/rails_app/public/404.html +0 -26
  222. data/test/rails_app/public/422.html +0 -26
  223. data/test/rails_app/public/500.html +0 -26
  224. data/test/rails_app/public/favicon.ico +0 -0
  225. data/test/routes_test.rb +0 -262
  226. data/test/support/action_controller/record_identifier.rb +0 -10
  227. data/test/support/assertions.rb +0 -40
  228. data/test/support/helpers.rb +0 -70
  229. data/test/support/integration.rb +0 -92
  230. data/test/support/locale/en.yml +0 -8
  231. data/test/support/mongoid.yml +0 -6
  232. data/test/support/webrat/integrations/rails.rb +0 -24
  233. data/test/test_helper.rb +0 -27
  234. data/test/test_helpers_test.rb +0 -173
  235. data/test/test_models.rb +0 -33
@@ -1,103 +0,0 @@
1
- require "test_helper"
2
-
3
- if DEVISE_ORM == :active_record
4
- require "generators/active_record/devise_generator"
5
-
6
- class ActiveRecordGeneratorTest < Rails::Generators::TestCase
7
- tests ActiveRecord::Generators::DeviseGenerator
8
- destination File.expand_path("../../tmp", __FILE__)
9
- setup :prepare_destination
10
-
11
- test "all files are properly created with rails31 migration syntax" do
12
- run_generator %w(monster)
13
- assert_migration "db/migrate/devise_create_monsters.rb", /def change/
14
- end
15
-
16
- test "all files for namespaced model are properly created" do
17
- run_generator %w(admin/monster)
18
- assert_migration "db/migrate/devise_create_admin_monsters.rb", /def change/
19
- end
20
-
21
- test "update model migration when model exists" do
22
- run_generator %w(monster)
23
- assert_file "app/models/monster.rb"
24
- run_generator %w(monster)
25
- assert_migration "db/migrate/add_devise_to_monsters.rb"
26
- end
27
-
28
- test "all files are properly deleted" do
29
- run_generator %w(monster)
30
- run_generator %w(monster)
31
- assert_migration "db/migrate/devise_create_monsters.rb"
32
- assert_migration "db/migrate/add_devise_to_monsters.rb"
33
- run_generator %w(monster), behavior: :revoke
34
- assert_no_migration "db/migrate/add_devise_to_monsters.rb"
35
- assert_migration "db/migrate/devise_create_monsters.rb"
36
- run_generator %w(monster), behavior: :revoke
37
- assert_no_file "app/models/monster.rb"
38
- assert_no_migration "db/migrate/devise_create_monsters.rb"
39
- end
40
- end
41
-
42
- module RailsEngine
43
- class Engine < Rails::Engine
44
- isolate_namespace RailsEngine
45
- end
46
- end
47
-
48
- def simulate_inside_engine(engine, namespace)
49
- if Rails::Generators.respond_to?(:namespace=)
50
- swap Rails::Generators, namespace: namespace do
51
- yield
52
- end
53
- else
54
- swap Rails, application: engine.instance do
55
- yield
56
- end
57
- end
58
- end
59
-
60
- class ActiveRecordEngineGeneratorTest < Rails::Generators::TestCase
61
- tests ActiveRecord::Generators::DeviseGenerator
62
- destination File.expand_path("../../tmp", __FILE__)
63
- setup :prepare_destination
64
-
65
- test "all files are properly created in rails 4.0" do
66
- ActiveRecord::Generators::DeviseGenerator.any_instance.stubs(:rails_3?).returns(false)
67
- simulate_inside_engine(RailsEngine::Engine, RailsEngine) do
68
- run_generator ["monster"]
69
-
70
- assert_file "app/models/rails_engine/monster.rb", /devise/
71
- assert_file "app/models/rails_engine/monster.rb" do |content|
72
- assert_no_match /attr_accessible :email/, content
73
- end
74
- end
75
- end
76
-
77
- test "all files are properly created in rails 3.2 when strong_parameters gem is not installed" do
78
- ActiveRecord::Generators::DeviseGenerator.any_instance.stubs(:rails_3?).returns(true)
79
- ActiveRecord::Generators::DeviseGenerator.any_instance.stubs(:strong_parameters_enabled?).returns(false)
80
- simulate_inside_engine(RailsEngine::Engine, RailsEngine) do
81
- run_generator ["monster"]
82
-
83
- assert_file "app/models/rails_engine/monster.rb", /devise/
84
- assert_file "app/models/rails_engine/monster.rb" do |content|
85
- assert_match /attr_accessible :email/, content
86
- end
87
- end
88
- end
89
-
90
- test "all files are properly created in rails 3.2 when strong_parameters gem is installed" do
91
- ActiveRecord::Generators::DeviseGenerator.any_instance.stubs(:rails_3?).returns(true)
92
- ActiveRecord::Generators::DeviseGenerator.any_instance.stubs(:strong_parameters_enabled?).returns(true)
93
- simulate_inside_engine(RailsEngine::Engine, RailsEngine) do
94
- run_generator ["monster"]
95
-
96
- assert_file "app/models/rails_engine/monster.rb", /devise/
97
- assert_file "app/models/rails_engine/monster.rb" do |content|
98
- assert_no_match /attr_accessible :email/, content
99
- end
100
- end
101
- end
102
- end
103
- end
@@ -1,39 +0,0 @@
1
- require 'test_helper'
2
-
3
- require "generators/devise/devise_generator"
4
-
5
- class DeviseGeneratorTest < Rails::Generators::TestCase
6
- tests Devise::Generators::DeviseGenerator
7
- destination File.expand_path("../../tmp", __FILE__)
8
-
9
- setup do
10
- prepare_destination
11
- copy_routes
12
- end
13
-
14
- test "route generation for simple model names" do
15
- run_generator %w(monster name:string)
16
- assert_file "config/routes.rb", /devise_for :monsters/
17
- end
18
-
19
- test "route generation for namespaced model names" do
20
- run_generator %w(monster/goblin name:string)
21
- match = /devise_for :goblins, class_name: "Monster::Goblin"/
22
- assert_file "config/routes.rb", match
23
- end
24
-
25
- test "route generation with skip routes" do
26
- run_generator %w(monster name:string --skip-routes)
27
- match = /devise_for :monsters, skip: :all/
28
- assert_file "config/routes.rb", match
29
- end
30
-
31
- def copy_routes
32
- routes = File.expand_path("../../rails_app/config/routes.rb", __FILE__)
33
- destination = File.join(destination_root, "config")
34
-
35
- FileUtils.mkdir_p(destination)
36
- FileUtils.cp routes, destination
37
- end
38
-
39
- end
@@ -1,13 +0,0 @@
1
- require "test_helper"
2
-
3
- class InstallGeneratorTest < Rails::Generators::TestCase
4
- tests Devise::Generators::InstallGenerator
5
- destination File.expand_path("../../tmp", __FILE__)
6
- setup :prepare_destination
7
-
8
- test "Assert all files are properly created" do
9
- run_generator
10
- assert_file "config/initializers/devise.rb"
11
- assert_file "config/locales/devise.en.yml"
12
- end
13
- end
@@ -1,23 +0,0 @@
1
- require "test_helper"
2
-
3
- if DEVISE_ORM == :mongoid
4
- require "generators/mongoid/devise_generator"
5
-
6
- class MongoidGeneratorTest < Rails::Generators::TestCase
7
- tests Mongoid::Generators::DeviseGenerator
8
- destination File.expand_path("../../tmp", __FILE__)
9
- setup :prepare_destination
10
-
11
- test "all files are properly created" do
12
- run_generator %w(monster)
13
- assert_file "app/models/monster.rb", /devise/
14
- end
15
-
16
- test "all files are properly deleted" do
17
- run_generator %w(monster)
18
- run_generator %w(monster), behavior: :revoke
19
- assert_no_file "app/models/monster.rb"
20
- end
21
- end
22
- end
23
-
@@ -1,96 +0,0 @@
1
- require "test_helper"
2
-
3
- class ViewsGeneratorTest < Rails::Generators::TestCase
4
- tests Devise::Generators::ViewsGenerator
5
- destination File.expand_path("../../tmp", __FILE__)
6
- setup :prepare_destination
7
-
8
- test "Assert all views are properly created with no params" do
9
- run_generator
10
- assert_files
11
- assert_shared_links
12
- end
13
-
14
- test "Assert all views are properly created with scope param" do
15
- run_generator %w(users)
16
- assert_files "users"
17
- assert_shared_links "users"
18
-
19
- run_generator %w(admins)
20
- assert_files "admins"
21
- assert_shared_links "admins"
22
- end
23
-
24
- test "Assert views with simple form" do
25
- run_generator %w(-b simple_form_for)
26
- assert_files
27
- assert_file "app/views/devise/confirmations/new.html.erb", /simple_form_for/
28
-
29
- run_generator %w(users -b simple_form_for)
30
- assert_files "users"
31
- assert_file "app/views/users/confirmations/new.html.erb", /simple_form_for/
32
- end
33
-
34
- test "Assert views with markerb" do
35
- run_generator %w(--markerb)
36
- assert_files nil, mail_template_engine: "markerb"
37
- end
38
-
39
-
40
- test "Assert only views within specified directories" do
41
- run_generator %w(-v sessions registrations)
42
- assert_file "app/views/devise/sessions/new.html.erb"
43
- assert_file "app/views/devise/registrations/new.html.erb"
44
- assert_file "app/views/devise/registrations/edit.html.erb"
45
- assert_no_file "app/views/devise/confirmations/new.html.erb"
46
- assert_no_file "app/views/devise/mailer/confirmation_instructions.html.erb"
47
- end
48
-
49
- test "Assert specified directories with scope" do
50
- run_generator %w(users -v sessions)
51
- assert_file "app/views/users/sessions/new.html.erb"
52
- assert_no_file "app/views/users/confirmations/new.html.erb"
53
- end
54
-
55
- test "Assert specified directories with simple form" do
56
- run_generator %w(-v registrations -b simple_form_for)
57
- assert_file "app/views/devise/registrations/new.html.erb", /simple_form_for/
58
- assert_no_file "app/views/devise/confirmations/new.html.erb"
59
- end
60
-
61
- test "Assert specified directories with markerb" do
62
- run_generator %w(--markerb -v passwords mailer)
63
- assert_file "app/views/devise/passwords/new.html.erb"
64
- assert_no_file "app/views/devise/confirmations/new.html.erb"
65
- assert_file "app/views/devise/mailer/reset_password_instructions.markerb"
66
- end
67
-
68
- def assert_files(scope = nil, options={})
69
- scope = "devise" if scope.nil?
70
- mail_template_engine = options[:mail_template_engine] || "html.erb"
71
-
72
- assert_file "app/views/#{scope}/confirmations/new.html.erb"
73
- assert_file "app/views/#{scope}/mailer/confirmation_instructions.#{mail_template_engine}"
74
- assert_file "app/views/#{scope}/mailer/reset_password_instructions.#{mail_template_engine}"
75
- assert_file "app/views/#{scope}/mailer/unlock_instructions.#{mail_template_engine}"
76
- assert_file "app/views/#{scope}/passwords/edit.html.erb"
77
- assert_file "app/views/#{scope}/passwords/new.html.erb"
78
- assert_file "app/views/#{scope}/registrations/new.html.erb"
79
- assert_file "app/views/#{scope}/registrations/edit.html.erb"
80
- assert_file "app/views/#{scope}/sessions/new.html.erb"
81
- assert_file "app/views/#{scope}/shared/_links.erb"
82
- assert_file "app/views/#{scope}/unlocks/new.html.erb"
83
- end
84
-
85
- def assert_shared_links(scope = nil)
86
- scope = "devise" if scope.nil?
87
- link = /<%= render \"#{scope}\/shared\/links\" %>/
88
-
89
- assert_file "app/views/#{scope}/passwords/edit.html.erb", link
90
- assert_file "app/views/#{scope}/passwords/new.html.erb", link
91
- assert_file "app/views/#{scope}/confirmations/new.html.erb", link
92
- assert_file "app/views/#{scope}/registrations/new.html.erb", link
93
- assert_file "app/views/#{scope}/sessions/new.html.erb", link
94
- assert_file "app/views/#{scope}/unlocks/new.html.erb", link
95
- end
96
- end
@@ -1,51 +0,0 @@
1
- require 'test_helper'
2
-
3
- class DeviseHelperTest < ActionDispatch::IntegrationTest
4
- setup do
5
- model_labels = { models: { user: "utilisateur" } }
6
-
7
- I18n.backend.store_translations :fr,
8
- {
9
- errors: { messages: { not_saved: {
10
- one: "Erreur lors de l'enregistrement de '%{resource}': 1 erreur.",
11
- other: "Erreur lors de l'enregistrement de '%{resource}': %{count} erreurs."
12
- } } },
13
- activerecord: model_labels,
14
- mongoid: model_labels
15
- }
16
-
17
- I18n.locale = 'fr'
18
- end
19
-
20
- teardown do
21
- I18n.locale = 'en'
22
- end
23
-
24
- test 'test errors.messages.not_saved with single error from i18n' do
25
- get new_user_registration_path
26
-
27
- fill_in 'password', with: 'new_user123'
28
- fill_in 'password confirmation', with: 'new_user123'
29
- click_button 'Sign up'
30
-
31
- assert_have_selector '#error_explanation'
32
- assert_contain "Erreur lors de l'enregistrement de 'utilisateur': 1 erreur"
33
- end
34
-
35
- test 'test errors.messages.not_saved with multiple errors from i18n' do
36
- # Dirty tracking behavior prevents email validations from being applied:
37
- # https://github.com/mongoid/mongoid/issues/756
38
- (pending "Fails on Mongoid < 2.1"; break) if defined?(Mongoid) && Mongoid::VERSION.to_f < 2.1
39
-
40
- get new_user_registration_path
41
-
42
- fill_in 'email', with: 'invalid_email'
43
- fill_in 'password', with: 'new_user123'
44
- fill_in 'password confirmation', with: 'new_user321'
45
- click_button 'Sign up'
46
-
47
- assert_have_selector '#error_explanation'
48
- assert_contain "Erreur lors de l'enregistrement de 'utilisateur': 2 erreurs"
49
- end
50
- end
51
-