devise 3.5.10 → 4.0.0.rc1

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 (96) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +9 -9
  3. data/CHANGELOG.md +33 -1188
  4. data/Gemfile +0 -1
  5. data/Gemfile.lock +15 -18
  6. data/MIT-LICENSE +1 -1
  7. data/README.md +20 -10
  8. data/app/controllers/devise/omniauth_callbacks_controller.rb +4 -4
  9. data/app/controllers/devise/passwords_controller.rb +2 -2
  10. data/app/controllers/devise/registrations_controller.rb +2 -2
  11. data/app/controllers/devise/sessions_controller.rb +4 -4
  12. data/app/controllers/devise/unlocks_controller.rb +1 -1
  13. data/app/controllers/devise_controller.rb +11 -7
  14. data/devise.gemspec +2 -3
  15. data/gemfiles/Gemfile.rails-4.1-stable +0 -1
  16. data/gemfiles/Gemfile.rails-4.1-stable.lock +38 -41
  17. data/gemfiles/Gemfile.rails-4.2-stable +0 -1
  18. data/gemfiles/Gemfile.rails-4.2-stable.lock +47 -50
  19. data/gemfiles/Gemfile.rails-5.0-beta +37 -0
  20. data/gemfiles/Gemfile.rails-5.0-beta.lock +242 -0
  21. data/lib/devise.rb +8 -8
  22. data/lib/devise/controllers/helpers.rb +7 -11
  23. data/lib/devise/failure_app.rb +17 -9
  24. data/lib/devise/models/authenticatable.rb +5 -1
  25. data/lib/devise/models/confirmable.rb +3 -4
  26. data/lib/devise/models/database_authenticatable.rb +1 -0
  27. data/lib/devise/models/lockable.rb +1 -5
  28. data/lib/devise/models/rememberable.rb +5 -11
  29. data/lib/devise/parameter_sanitizer.rb +176 -61
  30. data/lib/devise/rails.rb +1 -10
  31. data/lib/devise/rails/routes.rb +25 -14
  32. data/lib/devise/rails/warden_compat.rb +1 -10
  33. data/lib/devise/strategies/rememberable.rb +6 -3
  34. data/lib/devise/test_helpers.rb +9 -4
  35. data/lib/devise/token_generator.rb +1 -41
  36. data/lib/devise/version.rb +1 -1
  37. data/lib/generators/active_record/devise_generator.rb +3 -3
  38. data/lib/generators/active_record/templates/migration.rb +1 -1
  39. data/lib/generators/active_record/templates/migration_existing.rb +1 -1
  40. data/lib/generators/devise/orm_helpers.rb +0 -17
  41. data/lib/generators/templates/controllers/registrations_controller.rb +4 -4
  42. data/lib/generators/templates/controllers/sessions_controller.rb +2 -2
  43. data/lib/generators/templates/devise.rb +4 -5
  44. data/test/controllers/custom_registrations_controller_test.rb +5 -5
  45. data/test/controllers/custom_strategy_test.rb +7 -5
  46. data/test/controllers/helper_methods_test.rb +3 -2
  47. data/test/controllers/helpers_test.rb +1 -1
  48. data/test/controllers/inherited_controller_i18n_messages_test.rb +2 -2
  49. data/test/controllers/internal_helpers_test.rb +8 -10
  50. data/test/controllers/load_hooks_controller_test.rb +1 -1
  51. data/test/controllers/passwords_controller_test.rb +4 -3
  52. data/test/controllers/sessions_controller_test.rb +21 -18
  53. data/test/controllers/url_helpers_test.rb +1 -1
  54. data/test/failure_app_test.rb +19 -14
  55. data/test/generators/active_record_generator_test.rb +0 -26
  56. data/test/helpers/devise_helper_test.rb +1 -1
  57. data/test/integration/authenticatable_test.rb +18 -18
  58. data/test/integration/confirmable_test.rb +5 -5
  59. data/test/integration/database_authenticatable_test.rb +1 -1
  60. data/test/integration/http_authenticatable_test.rb +4 -5
  61. data/test/integration/lockable_test.rb +4 -3
  62. data/test/integration/omniauthable_test.rb +1 -1
  63. data/test/integration/recoverable_test.rb +10 -10
  64. data/test/integration/registerable_test.rb +9 -11
  65. data/test/integration/rememberable_test.rb +7 -43
  66. data/test/integration/timeoutable_test.rb +4 -4
  67. data/test/integration/trackable_test.rb +1 -1
  68. data/test/models/confirmable_test.rb +5 -13
  69. data/test/models/lockable_test.rb +0 -22
  70. data/test/models/rememberable_test.rb +0 -12
  71. data/test/models/validatable_test.rb +2 -10
  72. data/test/omniauth/url_helpers_test.rb +1 -2
  73. data/test/orm/active_record.rb +6 -1
  74. data/test/parameter_sanitizer_test.rb +103 -53
  75. data/test/rails_app/app/active_record/user.rb +3 -0
  76. data/test/rails_app/app/controllers/admins_controller.rb +1 -1
  77. data/test/rails_app/app/controllers/application_controller.rb +2 -2
  78. data/test/rails_app/app/controllers/home_controller.rb +5 -1
  79. data/test/rails_app/app/controllers/users/omniauth_callbacks_controller.rb +2 -2
  80. data/test/rails_app/app/controllers/users_controller.rb +5 -5
  81. data/test/rails_app/config/application.rb +1 -1
  82. data/test/rails_app/config/boot.rb +3 -3
  83. data/test/rails_app/config/environments/test.rb +6 -1
  84. data/test/rails_app/config/initializers/secret_token.rb +1 -6
  85. data/test/routes_test.rb +26 -11
  86. data/test/support/http_method_compatibility.rb +51 -0
  87. data/test/support/webrat/integrations/rails.rb +9 -0
  88. data/test/test_helpers_test.rb +3 -3
  89. metadata +13 -31
  90. data/gemfiles/Gemfile.rails-3.2-stable +0 -29
  91. data/gemfiles/Gemfile.rails-3.2-stable.lock +0 -172
  92. data/gemfiles/Gemfile.rails-4.0-stable +0 -30
  93. data/gemfiles/Gemfile.rails-4.0-stable.lock +0 -166
  94. data/script/cached-bundle +0 -49
  95. data/script/s3-put +0 -71
  96. data/test/time_helpers.rb +0 -137
@@ -325,26 +325,4 @@ class LockableTest < ActiveSupport::TestCase
325
325
  user.lock_access!
326
326
  assert_equal :locked, user.unauthenticated_message
327
327
  end
328
-
329
- test 'unlock_strategy_enabled? should return true for both, email, and time strategies if :both is used' do
330
- swap Devise, unlock_strategy: :both do
331
- user = create_user
332
- assert_equal true, user.unlock_strategy_enabled?(:both)
333
- assert_equal true, user.unlock_strategy_enabled?(:time)
334
- assert_equal true, user.unlock_strategy_enabled?(:email)
335
- assert_equal false, user.unlock_strategy_enabled?(:none)
336
- assert_equal false, user.unlock_strategy_enabled?(:an_undefined_strategy)
337
- end
338
- end
339
-
340
- test 'unlock_strategy_enabled? should return true only for the configured strategy' do
341
- swap Devise, unlock_strategy: :email do
342
- user = create_user
343
- assert_equal false, user.unlock_strategy_enabled?(:both)
344
- assert_equal false, user.unlock_strategy_enabled?(:time)
345
- assert_equal true, user.unlock_strategy_enabled?(:email)
346
- assert_equal false, user.unlock_strategy_enabled?(:none)
347
- assert_equal false, user.unlock_strategy_enabled?(:an_undefined_strategy)
348
- end
349
- end
350
328
  end
@@ -16,18 +16,6 @@ class RememberableTest < ActiveSupport::TestCase
16
16
  assert user.remember_created_at
17
17
  end
18
18
 
19
- test 'remember_me should not generate a new token if valid token exists' do
20
- user = create_user
21
- user.singleton_class.send(:attr_accessor, :remember_token)
22
- User.to_adapter.expects(:find_first).returns(nil)
23
-
24
- user.remember_me!
25
- existing_token = user.remember_token
26
-
27
- user.remember_me!
28
- assert_equal existing_token, user.remember_token
29
- end
30
-
31
19
  test 'forget_me should not clear remember token if using salt' do
32
20
  user = create_user
33
21
  user.remember_me!
@@ -57,11 +57,7 @@ class ValidatableTest < ActiveSupport::TestCase
57
57
  user = new_user(password: 'new_password', password_confirmation: 'blabla')
58
58
  assert user.invalid?
59
59
 
60
- if Devise.rails4?
61
- assert_equal 'doesn\'t match Password', user.errors[:password_confirmation].join
62
- else
63
- assert_equal 'doesn\'t match confirmation', user.errors[:password].join
64
- end
60
+ assert_equal 'doesn\'t match Password', user.errors[:password_confirmation].join
65
61
  end
66
62
 
67
63
  test 'should require password when updating/resetting password' do
@@ -79,11 +75,7 @@ class ValidatableTest < ActiveSupport::TestCase
79
75
  user.password_confirmation = 'another_password'
80
76
  assert user.invalid?
81
77
 
82
- if Devise.rails4?
83
- assert_equal 'doesn\'t match Password', user.errors[:password_confirmation].join
84
- else
85
- assert_equal 'doesn\'t match confirmation', user.errors[:password].join
86
- end
78
+ assert_equal 'doesn\'t match Password', user.errors[:password_confirmation].join
87
79
  end
88
80
 
89
81
  test 'should require a password with minimum of 7 characters' do
@@ -1,8 +1,7 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class OmniAuthRoutesTest < ActionController::TestCase
4
- ExpectedUrlGeneratiorError = Devise.rails4? ?
5
- ActionController::UrlGenerationError : ActionController::RoutingError
4
+ ExpectedUrlGeneratiorError = ActionController::UrlGenerationError
6
5
 
7
6
  tests ApplicationController
8
7
 
@@ -5,6 +5,11 @@ ActiveRecord::Base.include_root_in_json = true
5
5
  ActiveRecord::Migrator.migrate(File.expand_path("../../rails_app/db/migrate/", __FILE__))
6
6
 
7
7
  class ActiveSupport::TestCase
8
- self.use_transactional_fixtures = true
8
+ if Rails.version >= '5.0.0'
9
+ self.use_transactional_tests = true
10
+ else
11
+ self.use_transactional_fixtures = true
12
+ end
13
+
9
14
  self.use_instantiated_fixtures = false
10
15
  end
@@ -1,81 +1,131 @@
1
1
  require 'test_helper'
2
2
  require 'devise/parameter_sanitizer'
3
3
 
4
- class BaseSanitizerTest < ActiveSupport::TestCase
4
+ class ParameterSanitizerTest < ActiveSupport::TestCase
5
5
  def sanitizer(params)
6
- Devise::BaseSanitizer.new(User, :user, params)
6
+ params = ActionController::Parameters.new(params)
7
+ Devise::ParameterSanitizer.new(User, :user, params)
7
8
  end
8
9
 
9
- test 'returns chosen params' do
10
- sanitizer = sanitizer(user: { "email" => "jose" })
11
- assert_equal({ "email" => "jose" }, sanitizer.sanitize(:sign_in))
10
+ test 'permits the default parameters for sign in' do
11
+ sanitizer = sanitizer('user' => { 'email' => 'jose' })
12
+ sanitized = sanitizer.sanitize(:sign_in)
13
+
14
+ assert_equal({ 'email' => 'jose' }, sanitized)
12
15
  end
13
- end
14
16
 
15
- if defined?(ActionController::StrongParameters)
16
- require 'active_model/forbidden_attributes_protection'
17
+ test 'permits the default parameters for sign up' do
18
+ sanitizer = sanitizer('user' => { 'email' => 'jose', 'role' => 'invalid' })
19
+ sanitized = sanitizer.sanitize(:sign_up)
17
20
 
18
- class ParameterSanitizerTest < ActiveSupport::TestCase
19
- def sanitizer(params)
20
- params = ActionController::Parameters.new(params)
21
- Devise::ParameterSanitizer.new(User, :user, params)
22
- end
21
+ assert_equal({ 'email' => 'jose' }, sanitized)
22
+ end
23
23
 
24
- test 'filters some parameters on sign in by default' do
25
- sanitizer = sanitizer(user: { "email" => "jose", "password" => "invalid", "remember_me" => "1" })
26
- assert_equal({ "email" => "jose", "password" => "invalid", "remember_me" => "1" }, sanitizer.sanitize(:sign_in))
27
- end
24
+ test 'permits the default parameters for account update' do
25
+ sanitizer = sanitizer('user' => { 'email' => 'jose', 'role' => 'invalid' })
26
+ sanitized = sanitizer.sanitize(:account_update)
28
27
 
29
- test 'handles auth keys as a hash' do
30
- swap Devise, authentication_keys: {email: true} do
31
- sanitizer = sanitizer(user: { "email" => "jose", "password" => "invalid" })
32
- assert_equal({ "email" => "jose", "password" => "invalid" }, sanitizer.sanitize(:sign_in))
33
- end
34
- end
28
+ assert_equal({ 'email' => 'jose' }, sanitized)
29
+ end
35
30
 
36
- test 'filters some parameters on sign up by default' do
37
- sanitizer = sanitizer(user: { "email" => "jose", "role" => "invalid" })
38
- assert_equal({ "email" => "jose" }, sanitizer.sanitize(:sign_up))
39
- end
31
+ test 'permits news parameters for an existing action' do
32
+ sanitizer = sanitizer('user' => { 'username' => 'jose' })
33
+ sanitizer.permit(:sign_in, keys: [:username])
34
+ sanitized = sanitizer.sanitize(:sign_in)
35
+
36
+ assert_equal({ 'username' => 'jose' }, sanitized)
37
+ end
40
38
 
41
- test 'filters some parameters on account update by default' do
42
- sanitizer = sanitizer(user: { "email" => "jose", "role" => "invalid" })
43
- assert_equal({ "email" => "jose" }, sanitizer.sanitize(:account_update))
39
+ test 'permits news parameters for an existing action with a block' do
40
+ sanitizer = sanitizer('user' => { 'username' => 'jose' })
41
+ sanitizer.permit(:sign_in) do |user|
42
+ user.permit(:username)
44
43
  end
45
44
 
46
- test 'allows custom hooks' do
47
- sanitizer = sanitizer(user: { "email" => "jose", "password" => "invalid" })
48
- sanitizer.for(:sign_in) { |user| user.permit(:email, :password) }
49
- assert_equal({ "email" => "jose", "password" => "invalid" }, sanitizer.sanitize(:sign_in))
45
+ sanitized = sanitizer.sanitize(:sign_in)
46
+
47
+ assert_equal({ 'username' => 'jose' }, sanitized)
48
+ end
49
+
50
+ test 'permit parameters for new actions' do
51
+ sanitizer = sanitizer('user' => { 'email' => 'jose@omglol', 'name' => 'Jose' })
52
+ sanitizer.permit(:invite_user, keys: [:email, :name])
53
+
54
+ sanitized = sanitizer.sanitize(:invite_user)
55
+
56
+ assert_equal({ 'email' => 'jose@omglol', 'name' => 'Jose' }, sanitized)
57
+ end
58
+
59
+ test 'fails when we do not have any permitted parameters for the action' do
60
+ sanitizer = sanitizer('user' => { 'email' => 'jose', 'password' => 'invalid' })
61
+
62
+ assert_raise NotImplementedError do
63
+ sanitizer.sanitize(:unknown)
50
64
  end
65
+ end
66
+
67
+ test 'removes permitted parameters' do
68
+ sanitizer = sanitizer('user' => { 'email' => 'jose@omglol', 'username' => 'jose' })
51
69
 
52
- test 'adding multiple permitted parameters' do
53
- sanitizer = sanitizer(user: { "email" => "jose", "username" => "jose1", "role" => "valid" })
54
- sanitizer.for(:sign_in).concat([:username, :role])
55
- assert_equal({ "email" => "jose", "username" => "jose1", "role" => "valid" }, sanitizer.sanitize(:sign_in))
70
+ sanitizer.permit(:sign_in, keys: [:username], except: [:email])
71
+ sanitized = sanitizer.sanitize(:sign_in)
72
+
73
+ assert_equal({ 'username' => 'jose' }, sanitized)
74
+ end
75
+ end
76
+
77
+ class DeprecatedParameterSanitizerAPITest < ActiveSupport::TestCase
78
+ class CustomSanitizer < Devise::ParameterSanitizer
79
+ def sign_in
80
+ default_params.permit(:username)
56
81
  end
82
+ end
57
83
 
58
- test 'removing multiple default parameters' do
59
- sanitizer = sanitizer(user: { "email" => "jose", "password" => "invalid", "remember_me" => "1" })
60
- sanitizer.for(:sign_in).delete(:email)
61
- sanitizer.for(:sign_in).delete(:password)
62
- assert_equal({ "remember_me" => "1" }, sanitizer.sanitize(:sign_in))
84
+ def sanitizer(params)
85
+ params = ActionController::Parameters.new(params)
86
+ Devise::ParameterSanitizer.new(User, :user, params)
87
+ end
88
+
89
+ test 'overriding instance methods have precedence over the default sanitized attributes' do
90
+ assert_deprecated do
91
+ params = ActionController::Parameters.new(user: { "username" => "jose", "name" => "Jose" })
92
+ sanitizer = CustomSanitizer.new(User, :user, params)
93
+
94
+ sanitized = sanitizer.sanitize(:sign_in)
95
+
96
+ assert_equal({ "username" => "jose" }, sanitized)
63
97
  end
98
+ end
64
99
 
65
- test 'raises on unknown hooks' do
66
- sanitizer = sanitizer(user: { "email" => "jose", "password" => "invalid" })
67
- assert_raise NotImplementedError do
68
- sanitizer.sanitize(:unknown)
69
- end
100
+ test 'adding new parameters by mutating the Array' do
101
+ assert_deprecated do
102
+ sanitizer = sanitizer('user' => { 'username' => 'jose' })
103
+ sanitizer.for(:sign_in) << :username
104
+ sanitized = sanitizer.sanitize(:sign_in)
105
+
106
+ assert_equal({ 'username' => 'jose' }, sanitized)
70
107
  end
108
+ end
71
109
 
72
- test 'passes parameters to filter as arguments to sanitizer' do
73
- params = {user: stub}
74
- sanitizer = Devise::ParameterSanitizer.new(User, :user, params)
110
+ test 'adding new parameters with a block' do
111
+ assert_deprecated do
112
+ sanitizer = sanitizer('user' => { 'username' => 'jose' })
113
+ sanitizer.for(:sign_in) { |user| user.permit(:username) }
75
114
 
76
- params[:user].expects(:permit).with(kind_of(Symbol), kind_of(Symbol), kind_of(Symbol))
115
+ sanitized = sanitizer.sanitize(:sign_in)
116
+
117
+ assert_equal({ 'username' => 'jose' }, sanitized)
118
+ end
119
+ end
120
+
121
+ test 'removing multiple default parameters' do
122
+ assert_deprecated do
123
+ sanitizer = sanitizer('user' => { 'email' => 'jose', 'password' => 'invalid', 'remember_me' => '1' })
124
+ sanitizer.for(:sign_in).delete(:email)
125
+ sanitizer.for(:sign_in).delete(:password)
126
+ sanitized = sanitizer.sanitize(:sign_in)
77
127
 
78
- sanitizer.sanitize(:sign_in)
128
+ assert_equal({ 'remember_me' => '1' }, sanitized)
79
129
  end
80
130
  end
81
131
  end
@@ -1,6 +1,9 @@
1
1
  require 'shared_user'
2
+ require 'active_model/serializers/xml' if Devise.rails5?
3
+ require 'active_model-serializers' if Devise.rails5?
2
4
 
3
5
  class User < ActiveRecord::Base
4
6
  include Shim
5
7
  include SharedUser
8
+ include ActiveModel::Serializers::Xml if Devise.rails5?
6
9
  end
@@ -1,5 +1,5 @@
1
1
  class AdminsController < ApplicationController
2
- before_filter :authenticate_admin!
2
+ before_action :authenticate_admin!
3
3
 
4
4
  def index
5
5
  end
@@ -3,8 +3,8 @@
3
3
 
4
4
  class ApplicationController < ActionController::Base
5
5
  protect_from_forgery
6
- before_filter :current_user, unless: :devise_controller?
7
- before_filter :authenticate_user!, if: :devise_controller?
6
+ before_action :current_user, unless: :devise_controller?
7
+ before_action :authenticate_user!, if: :devise_controller?
8
8
  respond_to *Mime::SET.map(&:to_sym)
9
9
 
10
10
  devise_group :commenter, contains: [:user, :admin]
@@ -20,6 +20,10 @@ class HomeController < ApplicationController
20
20
  end
21
21
 
22
22
  def unauthenticated
23
- render text: "unauthenticated", status: :unauthorized
23
+ if Devise.rails5?
24
+ render body: "unauthenticated", status: :unauthorized
25
+ else
26
+ render text: "unauthenticated", status: :unauthorized
27
+ end
24
28
  end
25
29
  end
@@ -1,6 +1,6 @@
1
1
  class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
2
2
  def facebook
3
- data = env["omniauth.auth"]
3
+ data = request.respond_to?(:get_header) ? request.get_header("omniauth.auth") : env["omniauth.auth"]
4
4
  session["devise.facebook_data"] = data["extra"]["user_hash"]
5
5
  render json: data
6
6
  end
@@ -9,6 +9,6 @@ class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
9
9
  user = User.to_adapter.find_first(email: 'user@test.com')
10
10
  user.remember_me = true
11
11
  sign_in user
12
- render text: ""
12
+ render (Devise.rails5? ? :body : :text) => ""
13
13
  end
14
14
  end
@@ -1,6 +1,6 @@
1
1
  class UsersController < ApplicationController
2
- prepend_before_filter :current_user, only: :exhibit
3
- before_filter :authenticate_user!, except: [:accept, :exhibit]
2
+ prepend_before_action :current_user, only: :exhibit
3
+ before_action :authenticate_user!, except: [:accept, :exhibit]
4
4
  respond_to :html, :xml
5
5
 
6
6
  def index
@@ -13,7 +13,7 @@ class UsersController < ApplicationController
13
13
  end
14
14
 
15
15
  def update_form
16
- render text: 'Update'
16
+ render (Devise.rails5? ? :body : :text) => 'Update'
17
17
  end
18
18
 
19
19
  def accept
@@ -21,11 +21,11 @@ class UsersController < ApplicationController
21
21
  end
22
22
 
23
23
  def exhibit
24
- render text: current_user ? "User is authenticated" : "User is not authenticated"
24
+ render (Devise.rails5? ? :body : :text) => current_user ? "User is authenticated" : "User is not authenticated"
25
25
  end
26
26
 
27
27
  def expire
28
28
  user_session['last_request_at'] = 31.minutes.ago.utc
29
- render text: 'User will be expired on next request'
29
+ render (Devise.rails5? ? :body : :text) => 'User will be expired on next request'
30
30
  end
31
31
  end
@@ -28,7 +28,7 @@ module RailsApp
28
28
 
29
29
  # Configure sensitive parameters which will be filtered from the log file.
30
30
  config.filter_parameters << :password
31
- config.assets.enabled = false
31
+ # config.assets.enabled = false
32
32
 
33
33
  config.action_mailer.default_url_options = { host: "localhost", port: 3000 }
34
34
 
@@ -3,9 +3,9 @@ unless defined?(DEVISE_ORM)
3
3
  end
4
4
 
5
5
  module Devise
6
- # Detection for minor differences between Rails 3.2 and 4 in tests.
7
- def self.rails4?
8
- Rails.version.start_with? '4'
6
+ # Detection for minor differences between Rails 4 and 5 in tests.
7
+ def self.rails5?
8
+ Rails.version.start_with? '5'
9
9
  end
10
10
  end
11
11
 
@@ -19,7 +19,12 @@ RailsApp::Application.configure do
19
19
  else
20
20
  config.serve_static_assets = true
21
21
  end
22
- config.static_cache_control = "public, max-age=3600"
22
+
23
+ if Rails.version >= "5.0.0"
24
+ config.public_file_server.headers = {'Cache-Control' => 'public, max-age=3600'}
25
+ else
26
+ config.static_cache_control = "public, max-age=3600"
27
+ end
23
28
 
24
29
  # Show full error reports and disable caching.
25
30
  config.consider_all_requests_local = true
@@ -1,8 +1,3 @@
1
1
  config = Rails.application.config
2
2
 
3
- if Devise.rails4?
4
- config.secret_key_base = 'd588e99efff13a86461fd6ab82327823ad2f8feb5dc217ce652cdd9f0dfc5eb4b5a62a92d24d2574d7d51dfb1ea8dd453ea54e00cf672159a13104a135422a10'
5
- else
6
- config.secret_token = 'ea942c41850d502f2c8283e26bdc57829f471bb18224ddff0a192c4f32cdf6cb5aa0d82b3a7a7adbeb640c4b06f3aa1cd5f098162d8240f669b39d6b49680571'
7
- config.session_store :cookie_store, key: "_my_app"
8
- end
3
+ config.secret_key_base = 'd588e99efff13a86461fd6ab82327823ad2f8feb5dc217ce652cdd9f0dfc5eb4b5a62a92d24d2574d7d51dfb1ea8dd453ea54e00cf672159a13104a135422a10'
@@ -1,6 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
- ExpectedRoutingError = Devise.rails4? ? MiniTest::Assertion : ActionController::RoutingError
3
+ ExpectedRoutingError = MiniTest::Assertion
4
4
 
5
5
  class DefaultRoutingTest < ActionController::TestCase
6
6
  test 'map new user session' do
@@ -202,37 +202,52 @@ class CustomizedRoutingTest < ActionController::TestCase
202
202
  end
203
203
 
204
204
  test 'map with format false for sessions' do
205
- assert_recognizes({controller: 'devise/sessions', action: 'new'}, {path: '/htmlonly_admin/sign_in', method: :get})
205
+ expected_params = {controller: 'devise/sessions', action: 'new'}
206
+ expected_params[:format] = false if Devise.rails5?
207
+
208
+ assert_recognizes(expected_params, {path: '/htmlonly_admin/sign_in', method: :get})
206
209
  assert_raise ExpectedRoutingError do
207
- assert_recognizes({controller: 'devise/sessions', action: 'new'}, {path: '/htmlonly_admin/sign_in.xml', method: :get})
210
+ assert_recognizes(expected_params, {path: '/htmlonly_admin/sign_in.xml', method: :get})
208
211
  end
209
212
  end
210
213
 
211
214
  test 'map with format false for passwords' do
212
- assert_recognizes({controller: 'devise/passwords', action: 'create'}, {path: '/htmlonly_admin/password', method: :post})
215
+ expected_params = {controller: 'devise/passwords', action: 'create'}
216
+ expected_params[:format] = false if Devise.rails5?
217
+
218
+ assert_recognizes(expected_params, {path: '/htmlonly_admin/password', method: :post})
213
219
  assert_raise ExpectedRoutingError do
214
- assert_recognizes({controller: 'devise/passwords', action: 'create'}, {path: '/htmlonly_admin/password.xml', method: :post})
220
+ assert_recognizes(expected_params, {path: '/htmlonly_admin/password.xml', method: :post})
215
221
  end
216
222
  end
217
223
 
218
224
  test 'map with format false for registrations' do
219
- assert_recognizes({controller: 'devise/registrations', action: 'new'}, {path: '/htmlonly_admin/sign_up', method: :get})
225
+ expected_params = {controller: 'devise/registrations', action: 'new'}
226
+ expected_params[:format] = false if Devise.rails5?
227
+
228
+ assert_recognizes(expected_params, {path: '/htmlonly_admin/sign_up', method: :get})
220
229
  assert_raise ExpectedRoutingError do
221
- assert_recognizes({controller: 'devise/registrations', action: 'new'}, {path: '/htmlonly_admin/sign_up.xml', method: :get})
230
+ assert_recognizes(expected_params, {path: '/htmlonly_admin/sign_up.xml', method: :get})
222
231
  end
223
232
  end
224
233
 
225
234
  test 'map with format false for confirmations' do
226
- assert_recognizes({controller: 'devise/confirmations', action: 'show'}, {path: '/htmlonly_users/confirmation', method: :get})
235
+ expected_params = {controller: 'devise/confirmations', action: 'show'}
236
+ expected_params[:format] = false if Devise.rails5?
237
+
238
+ assert_recognizes(expected_params, {path: '/htmlonly_users/confirmation', method: :get})
227
239
  assert_raise ExpectedRoutingError do
228
- assert_recognizes({controller: 'devise/confirmations', action: 'show'}, {path: '/htmlonly_users/confirmation.xml', method: :get})
240
+ assert_recognizes(expected_params, {path: '/htmlonly_users/confirmation.xml', method: :get})
229
241
  end
230
242
  end
231
243
 
232
244
  test 'map with format false for unlocks' do
233
- assert_recognizes({controller: 'devise/unlocks', action: 'show'}, {path: '/htmlonly_users/unlock', method: :get})
245
+ expected_params = {controller: 'devise/unlocks', action: 'show'}
246
+ expected_params[:format] = false if Devise.rails5?
247
+
248
+ assert_recognizes(expected_params, {path: '/htmlonly_users/unlock', method: :get})
234
249
  assert_raise ExpectedRoutingError do
235
- assert_recognizes({controller: 'devise/unlocks', action: 'show'}, {path: '/htmlonly_users/unlock.xml', method: :get})
250
+ assert_recognizes(expected_params, {path: '/htmlonly_users/unlock.xml', method: :get})
236
251
  end
237
252
  end
238
253