devise 3.2.3 → 3.2.4
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of devise might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/Gemfile +2 -2
- data/Gemfile.lock +6 -6
- data/README.md +7 -0
- data/Rakefile +1 -1
- data/app/controllers/devise/confirmations_controller.rb +2 -2
- data/app/controllers/devise/omniauth_callbacks_controller.rb +2 -2
- data/app/controllers/devise/passwords_controller.rb +3 -3
- data/app/controllers/devise/registrations_controller.rb +7 -7
- data/app/controllers/devise/sessions_controller.rb +6 -6
- data/app/controllers/devise/unlocks_controller.rb +2 -2
- data/app/controllers/devise_controller.rb +3 -3
- data/app/helpers/devise_helper.rb +2 -2
- data/app/views/devise/confirmations/new.html.erb +2 -2
- data/app/views/devise/mailer/confirmation_instructions.html.erb +1 -1
- data/app/views/devise/mailer/reset_password_instructions.html.erb +1 -1
- data/app/views/devise/mailer/unlock_instructions.html.erb +1 -1
- data/app/views/devise/passwords/edit.html.erb +3 -3
- data/app/views/devise/passwords/new.html.erb +2 -2
- data/app/views/devise/registrations/edit.html.erb +6 -6
- data/app/views/devise/registrations/new.html.erb +4 -4
- data/app/views/devise/sessions/new.html.erb +3 -3
- data/app/views/devise/unlocks/new.html.erb +2 -2
- data/devise.gemspec +1 -1
- data/gemfiles/Gemfile.rails-3.2-stable +3 -3
- data/gemfiles/Gemfile.rails-4.0-stable +3 -3
- data/gemfiles/Gemfile.rails-head +3 -3
- data/lib/devise.rb +3 -3
- data/lib/devise/controllers/helpers.rb +5 -5
- data/lib/devise/controllers/rememberable.rb +3 -3
- data/lib/devise/controllers/sign_in_out.rb +8 -8
- data/lib/devise/failure_app.rb +3 -3
- data/lib/devise/hooks/activatable.rb +1 -1
- data/lib/devise/hooks/lockable.rb +1 -1
- data/lib/devise/hooks/proxy.rb +1 -1
- data/lib/devise/hooks/rememberable.rb +1 -1
- data/lib/devise/hooks/timeoutable.rb +1 -1
- data/lib/devise/hooks/trackable.rb +1 -1
- data/lib/devise/mailers/helpers.rb +8 -8
- data/lib/devise/models/authenticatable.rb +3 -3
- data/lib/devise/models/confirmable.rb +9 -9
- data/lib/devise/models/database_authenticatable.rb +1 -1
- data/lib/devise/models/lockable.rb +6 -6
- data/lib/devise/models/omniauthable.rb +1 -1
- data/lib/devise/models/recoverable.rb +1 -1
- data/lib/devise/models/rememberable.rb +3 -3
- data/lib/devise/models/trackable.rb +1 -1
- data/lib/devise/models/validatable.rb +6 -6
- data/lib/devise/modules.rb +9 -9
- data/lib/devise/omniauth/url_helpers.rb +2 -2
- data/lib/devise/rails.rb +1 -1
- data/lib/devise/rails/routes.rb +81 -81
- data/lib/devise/test_helpers.rb +2 -2
- data/lib/devise/time_inflector.rb +1 -1
- data/lib/devise/version.rb +1 -1
- data/lib/generators/active_record/devise_generator.rb +6 -6
- data/lib/generators/active_record/templates/migration.rb +4 -4
- data/lib/generators/active_record/templates/migration_existing.rb +4 -4
- data/lib/generators/devise/devise_generator.rb +3 -3
- data/lib/generators/devise/views_generator.rb +29 -18
- data/lib/generators/mongoid/devise_generator.rb +19 -19
- data/lib/generators/templates/README +2 -2
- data/lib/generators/templates/devise.rb +9 -7
- data/lib/generators/templates/markerb/confirmation_instructions.markerb +1 -1
- data/lib/generators/templates/markerb/reset_password_instructions.markerb +1 -1
- data/lib/generators/templates/markerb/unlock_instructions.markerb +1 -1
- data/lib/generators/templates/simple_form_for/confirmations/new.html.erb +2 -2
- data/lib/generators/templates/simple_form_for/passwords/edit.html.erb +4 -4
- data/lib/generators/templates/simple_form_for/passwords/new.html.erb +2 -2
- data/lib/generators/templates/simple_form_for/registrations/edit.html.erb +6 -6
- data/lib/generators/templates/simple_form_for/registrations/new.html.erb +4 -4
- data/lib/generators/templates/simple_form_for/sessions/new.html.erb +4 -4
- data/lib/generators/templates/simple_form_for/unlocks/new.html.erb +2 -2
- data/test/controllers/helpers_test.rb +31 -31
- data/test/controllers/internal_helpers_test.rb +6 -6
- data/test/controllers/sessions_controller_test.rb +18 -18
- data/test/controllers/url_helpers_test.rb +4 -4
- data/test/delegator_test.rb +1 -1
- data/test/devise_test.rb +3 -3
- data/test/failure_app_test.rb +21 -21
- data/test/generators/active_record_generator_test.rb +4 -4
- data/test/generators/devise_generator_test.rb +2 -2
- data/test/generators/mongoid_generator_test.rb +1 -1
- data/test/generators/views_generator_test.rb +30 -1
- data/test/helpers/devise_helper_test.rb +11 -11
- data/test/integration/authenticatable_test.rb +42 -42
- data/test/integration/confirmable_test.rb +46 -46
- data/test/integration/database_authenticatable_test.rb +16 -16
- data/test/integration/http_authenticatable_test.rb +11 -11
- data/test/integration/lockable_test.rb +37 -37
- data/test/integration/omniauthable_test.rb +3 -3
- data/test/integration/recoverable_test.rb +41 -41
- data/test/integration/registerable_test.rb +49 -49
- data/test/integration/rememberable_test.rb +13 -13
- data/test/integration/timeoutable_test.rb +7 -7
- data/test/integration/trackable_test.rb +2 -2
- data/test/mailers/confirmation_instructions_test.rb +4 -4
- data/test/mailers/reset_password_instructions_test.rb +3 -3
- data/test/mailers/unlock_instructions_test.rb +2 -2
- data/test/models/authenticatable_test.rb +3 -3
- data/test/models/confirmable_test.rb +31 -31
- data/test/models/database_authenticatable_test.rb +27 -27
- data/test/models/lockable_test.rb +29 -29
- data/test/models/recoverable_test.rb +19 -19
- data/test/models/rememberable_test.rb +8 -8
- data/test/models/serializable_test.rb +8 -8
- data/test/models/timeoutable_test.rb +1 -1
- data/test/models/validatable_test.rb +11 -11
- data/test/omniauth/config_test.rb +3 -3
- data/test/omniauth/url_helpers_test.rb +3 -3
- data/test/parameter_sanitizer_test.rb +1 -1
- data/test/rails_app/app/controllers/admins_controller.rb +1 -1
- data/test/rails_app/app/controllers/application_controller.rb +2 -2
- data/test/rails_app/app/controllers/home_controller.rb +1 -1
- data/test/rails_app/app/controllers/users/omniauth_callbacks_controller.rb +2 -2
- data/test/rails_app/app/controllers/users_controller.rb +5 -5
- data/test/rails_app/app/mailers/users/mailer.rb +4 -4
- data/test/rails_app/app/mongoid/admin.rb +11 -11
- data/test/rails_app/app/mongoid/shim.rb +2 -2
- data/test/rails_app/app/mongoid/user.rb +19 -19
- data/test/rails_app/app/views/admins/sessions/new.html.erb +1 -1
- data/test/rails_app/app/views/layouts/application.html.erb +1 -1
- data/test/rails_app/config/application.rb +2 -2
- data/test/rails_app/config/initializers/devise.rb +3 -3
- data/test/rails_app/config/initializers/secret_token.rb +1 -1
- data/test/rails_app/config/routes.rb +43 -43
- data/test/rails_app/db/migrate/20100401102949_create_tables.rb +7 -7
- data/test/rails_app/lib/shared_admin.rb +4 -4
- data/test/routes_test.rb +59 -59
- data/test/support/helpers.rb +4 -4
- data/test/support/integration.rb +12 -12
- data/test/test_helpers_test.rb +3 -3
- data/test/test_models.rb +5 -5
- metadata +4 -4
@@ -1,2 +1,2 @@
|
|
1
1
|
Welcome to "sessions/new" view!
|
2
|
-
<%= render :
|
2
|
+
<%= render file: "devise/sessions/new" %>
|
@@ -23,14 +23,14 @@ module RailsApp
|
|
23
23
|
# config.generators do |g|
|
24
24
|
# g.orm :active_record
|
25
25
|
# g.template_engine :erb
|
26
|
-
# g.test_framework :test_unit, :
|
26
|
+
# g.test_framework :test_unit, fixture: true
|
27
27
|
# end
|
28
28
|
|
29
29
|
# Configure sensitive parameters which will be filtered from the log file.
|
30
30
|
config.filter_parameters << :password
|
31
31
|
config.assets.enabled = false
|
32
32
|
|
33
|
-
config.action_mailer.default_url_options = { :
|
33
|
+
config.action_mailer.default_url_options = { host: "localhost:3000" }
|
34
34
|
|
35
35
|
# This was used to break devise in some situations
|
36
36
|
config.to_prepare do
|
@@ -166,9 +166,9 @@ Devise.setup do |config|
|
|
166
166
|
# config.sign_out_via = :get
|
167
167
|
|
168
168
|
# ==> OmniAuth
|
169
|
-
config.omniauth :facebook, 'APP_ID', 'APP_SECRET', :
|
169
|
+
config.omniauth :facebook, 'APP_ID', 'APP_SECRET', scope: 'email,offline_access'
|
170
170
|
config.omniauth :openid
|
171
|
-
config.omniauth :openid, :
|
171
|
+
config.omniauth :openid, name: 'google', identifier: 'https://www.google.com/accounts/o8/id'
|
172
172
|
|
173
173
|
# ==> Warden configuration
|
174
174
|
# If you want to use other strategies, that are not supported by Devise, or
|
@@ -176,6 +176,6 @@ Devise.setup do |config|
|
|
176
176
|
#
|
177
177
|
# config.warden do |manager|
|
178
178
|
# manager.failure_app = AnotherApp
|
179
|
-
# manager.default_strategies(:
|
179
|
+
# manager.default_strategies(scope: :user).unshift :some_external_strategy
|
180
180
|
# end
|
181
181
|
end
|
@@ -4,5 +4,5 @@ if Devise.rails4?
|
|
4
4
|
config.secret_key_base = 'd588e99efff13a86461fd6ab82327823ad2f8feb5dc217ce652cdd9f0dfc5eb4b5a62a92d24d2574d7d51dfb1ea8dd453ea54e00cf672159a13104a135422a10'
|
5
5
|
else
|
6
6
|
config.secret_token = 'ea942c41850d502f2c8283e26bdc57829f471bb18224ddff0a192c4f32cdf6cb5aa0d82b3a7a7adbeb640c4b06f3aa1cd5f098162d8240f669b39d6b49680571'
|
7
|
-
config.session_store :cookie_store, :
|
7
|
+
config.session_store :cookie_store, key: "_my_app"
|
8
8
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Rails.application.routes.draw do
|
2
2
|
# Resources for testing
|
3
|
-
resources :users, :
|
3
|
+
resources :users, only: [:index] do
|
4
4
|
member do
|
5
5
|
get :expire
|
6
6
|
get :accept
|
@@ -9,97 +9,97 @@ Rails.application.routes.draw do
|
|
9
9
|
end
|
10
10
|
|
11
11
|
authenticate do
|
12
|
-
post :exhibit, :
|
12
|
+
post :exhibit, on: :member
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
resources :admins, :
|
17
|
-
get :expire, :
|
16
|
+
resources :admins, only: [:index] do
|
17
|
+
get :expire, on: :member
|
18
18
|
end
|
19
19
|
|
20
20
|
# Users scope
|
21
|
-
devise_for :users, :
|
21
|
+
devise_for :users, controllers: { omniauth_callbacks: "users/omniauth_callbacks" }
|
22
22
|
|
23
23
|
as :user do
|
24
|
-
get "/as/sign_in", :
|
24
|
+
get "/as/sign_in", to: "devise/sessions#new"
|
25
25
|
end
|
26
26
|
|
27
|
-
get "/sign_in", :
|
27
|
+
get "/sign_in", to: "devise/sessions#new"
|
28
28
|
|
29
29
|
# Admin scope
|
30
|
-
devise_for :admin, :
|
30
|
+
devise_for :admin, path: "admin_area", controllers: { sessions: :"admins/sessions" }, skip: :passwords
|
31
31
|
|
32
|
-
get "/admin_area/home", :
|
33
|
-
get "/anywhere", :
|
32
|
+
get "/admin_area/home", to: "admins#index", as: :admin_root
|
33
|
+
get "/anywhere", to: "foo#bar", as: :new_admin_password
|
34
34
|
|
35
35
|
authenticate(:admin) do
|
36
|
-
get "/private", :
|
36
|
+
get "/private", to: "home#private", as: :private
|
37
37
|
end
|
38
38
|
|
39
39
|
authenticate(:admin, lambda { |admin| admin.active? }) do
|
40
|
-
get "/private/active", :
|
40
|
+
get "/private/active", to: "home#private", as: :private_active
|
41
41
|
end
|
42
42
|
|
43
43
|
authenticated :admin do
|
44
|
-
get "/dashboard", :
|
44
|
+
get "/dashboard", to: "home#admin_dashboard"
|
45
45
|
end
|
46
46
|
|
47
47
|
authenticated :admin, lambda { |admin| admin.active? } do
|
48
|
-
get "/dashboard/active", :
|
48
|
+
get "/dashboard/active", to: "home#admin_dashboard"
|
49
49
|
end
|
50
50
|
|
51
51
|
authenticated do
|
52
|
-
get "/dashboard", :
|
52
|
+
get "/dashboard", to: "home#user_dashboard"
|
53
53
|
end
|
54
54
|
|
55
55
|
unauthenticated do
|
56
|
-
get "/join", :
|
56
|
+
get "/join", to: "home#join"
|
57
57
|
end
|
58
58
|
|
59
59
|
# Routes for constraints testing
|
60
|
-
devise_for :headquarters_admin, :
|
60
|
+
devise_for :headquarters_admin, class_name: "Admin", path: "headquarters", constraints: {host: /192\.168\.1\.\d\d\d/}
|
61
61
|
|
62
|
-
constraints(:
|
63
|
-
devise_for :homebase_admin, :
|
62
|
+
constraints(host: /192\.168\.1\.\d\d\d/) do
|
63
|
+
devise_for :homebase_admin, class_name: "Admin", path: "homebase"
|
64
64
|
end
|
65
65
|
|
66
|
-
devise_for :skip_admin, :
|
66
|
+
devise_for :skip_admin, class_name: "Admin", skip: :all
|
67
67
|
|
68
68
|
# Routes for format=false testing
|
69
|
-
devise_for :htmlonly_admin, :
|
70
|
-
devise_for :htmlonly_users, :
|
69
|
+
devise_for :htmlonly_admin, class_name: "Admin", skip: [:confirmations, :unlocks], path: "htmlonly_admin", format: false, skip_helpers: [:confirmations, :unlocks]
|
70
|
+
devise_for :htmlonly_users, class_name: "User", only: [:confirmations, :unlocks], path: "htmlonly_users", format: false, skip_helpers: true
|
71
71
|
|
72
72
|
# Other routes for routing_test.rb
|
73
|
-
devise_for :reader, :
|
73
|
+
devise_for :reader, class_name: "User", only: :passwords
|
74
74
|
|
75
|
-
scope :
|
76
|
-
devise_for :sub_admin, :
|
75
|
+
scope host: "sub.example.com" do
|
76
|
+
devise_for :sub_admin, class_name: "Admin"
|
77
77
|
end
|
78
78
|
|
79
|
-
namespace :publisher, :
|
80
|
-
devise_for :accounts, :
|
79
|
+
namespace :publisher, path_names: { sign_in: "i_dont_care", sign_out: "get_out" } do
|
80
|
+
devise_for :accounts, class_name: "Admin", path_names: { sign_in: "get_in" }
|
81
81
|
end
|
82
82
|
|
83
|
-
scope ":locale", :
|
84
|
-
devise_for :accounts, :
|
85
|
-
:
|
86
|
-
:
|
87
|
-
:
|
88
|
-
:
|
89
|
-
:
|
90
|
-
:
|
91
|
-
}, :
|
83
|
+
scope ":locale", module: :invalid do
|
84
|
+
devise_for :accounts, singular: "manager", class_name: "Admin",
|
85
|
+
path_names: {
|
86
|
+
sign_in: "login", sign_out: "logout",
|
87
|
+
password: "secret", confirmation: "verification",
|
88
|
+
unlock: "unblock", sign_up: "register",
|
89
|
+
registration: "management",
|
90
|
+
cancel: "giveup", edit: "edit/profile"
|
91
|
+
}, failure_app: lambda { |env| [404, {"Content-Type" => "text/plain"}, ["Oops, not found"]] }, module: :devise
|
92
92
|
end
|
93
93
|
|
94
|
-
namespace :sign_out_via, :
|
95
|
-
devise_for :deletes, :
|
96
|
-
devise_for :posts, :
|
97
|
-
devise_for :delete_or_posts, :
|
94
|
+
namespace :sign_out_via, module: "devise" do
|
95
|
+
devise_for :deletes, sign_out_via: :delete, class_name: "Admin"
|
96
|
+
devise_for :posts, sign_out_via: :post, class_name: "Admin"
|
97
|
+
devise_for :delete_or_posts, sign_out_via: [:delete, :post], class_name: "Admin"
|
98
98
|
end
|
99
99
|
|
100
|
-
get "/set", :
|
101
|
-
get "/unauthenticated", :
|
100
|
+
get "/set", to: "home#set"
|
101
|
+
get "/unauthenticated", to: "home#unauthenticated"
|
102
102
|
get "/custom_strategy/new"
|
103
103
|
|
104
|
-
root :
|
104
|
+
root to: "home#index", via: [:get, :post]
|
105
105
|
end
|
@@ -5,8 +5,8 @@ class CreateTables < ActiveRecord::Migration
|
|
5
5
|
t.string :facebook_token
|
6
6
|
|
7
7
|
## Database authenticatable
|
8
|
-
t.string :email, :
|
9
|
-
t.string :encrypted_password, :
|
8
|
+
t.string :email, null: false, default: ""
|
9
|
+
t.string :encrypted_password, null: false, default: ""
|
10
10
|
|
11
11
|
## Recoverable
|
12
12
|
t.string :reset_password_token
|
@@ -16,7 +16,7 @@ class CreateTables < ActiveRecord::Migration
|
|
16
16
|
t.datetime :remember_created_at
|
17
17
|
|
18
18
|
## Trackable
|
19
|
-
t.integer :sign_in_count, :
|
19
|
+
t.integer :sign_in_count, default: 0
|
20
20
|
t.datetime :current_sign_in_at
|
21
21
|
t.datetime :last_sign_in_at
|
22
22
|
t.string :current_sign_in_ip
|
@@ -29,7 +29,7 @@ class CreateTables < ActiveRecord::Migration
|
|
29
29
|
# t.string :unconfirmed_email # Only if using reconfirmable
|
30
30
|
|
31
31
|
## Lockable
|
32
|
-
t.integer :failed_attempts, :
|
32
|
+
t.integer :failed_attempts, default: 0 # Only if lock strategy is :failed_attempts
|
33
33
|
t.string :unlock_token # Only if unlock strategy is :email or :both
|
34
34
|
t.datetime :locked_at
|
35
35
|
|
@@ -38,8 +38,8 @@ class CreateTables < ActiveRecord::Migration
|
|
38
38
|
|
39
39
|
create_table :admins do |t|
|
40
40
|
## Database authenticatable
|
41
|
-
t.string :email, :
|
42
|
-
t.string :encrypted_password, :
|
41
|
+
t.string :email, null: true
|
42
|
+
t.string :encrypted_password, null: true
|
43
43
|
|
44
44
|
## Recoverable
|
45
45
|
t.string :reset_password_token
|
@@ -58,7 +58,7 @@ class CreateTables < ActiveRecord::Migration
|
|
58
58
|
t.datetime :locked_at
|
59
59
|
|
60
60
|
## Attribute for testing route blocks
|
61
|
-
t.boolean :active, :
|
61
|
+
t.boolean :active, default: false
|
62
62
|
|
63
63
|
t.timestamps
|
64
64
|
end
|
@@ -4,11 +4,11 @@ module SharedAdmin
|
|
4
4
|
included do
|
5
5
|
devise :database_authenticatable, :registerable,
|
6
6
|
:timeoutable, :recoverable, :lockable, :confirmable,
|
7
|
-
:
|
8
|
-
:
|
7
|
+
unlock_strategy: :time, lock_strategy: :none,
|
8
|
+
allow_unconfirmed_access_for: 2.weeks, reconfirmable: true
|
9
9
|
|
10
|
-
validates_length_of :reset_password_token, :
|
11
|
-
validates_uniqueness_of :email, :
|
10
|
+
validates_length_of :reset_password_token, minimum: 3, allow_blank: true
|
11
|
+
validates_uniqueness_of :email, allow_blank: true, if: :email_changed?
|
12
12
|
end
|
13
13
|
|
14
14
|
def raw_confirmation_token
|
data/test/routes_test.rb
CHANGED
@@ -4,107 +4,107 @@ ExpectedRoutingError = Devise.rails4? ? MiniTest::Assertion : ActionController::
|
|
4
4
|
|
5
5
|
class DefaultRoutingTest < ActionController::TestCase
|
6
6
|
test 'map new user session' do
|
7
|
-
assert_recognizes({:
|
7
|
+
assert_recognizes({controller: 'devise/sessions', action: 'new'}, {path: 'users/sign_in', method: :get})
|
8
8
|
assert_named_route "/users/sign_in", :new_user_session_path
|
9
9
|
end
|
10
10
|
|
11
11
|
test 'map create user session' do
|
12
|
-
assert_recognizes({:
|
12
|
+
assert_recognizes({controller: 'devise/sessions', action: 'create'}, {path: 'users/sign_in', method: :post})
|
13
13
|
assert_named_route "/users/sign_in", :user_session_path
|
14
14
|
end
|
15
15
|
|
16
16
|
test 'map destroy user session' do
|
17
|
-
assert_recognizes({:
|
17
|
+
assert_recognizes({controller: 'devise/sessions', action: 'destroy'}, {path: 'users/sign_out', method: :get})
|
18
18
|
assert_named_route "/users/sign_out", :destroy_user_session_path
|
19
19
|
end
|
20
20
|
|
21
21
|
test 'map new user confirmation' do
|
22
|
-
assert_recognizes({:
|
22
|
+
assert_recognizes({controller: 'devise/confirmations', action: 'new'}, 'users/confirmation/new')
|
23
23
|
assert_named_route "/users/confirmation/new", :new_user_confirmation_path
|
24
24
|
end
|
25
25
|
|
26
26
|
test 'map create user confirmation' do
|
27
|
-
assert_recognizes({:
|
27
|
+
assert_recognizes({controller: 'devise/confirmations', action: 'create'}, {path: 'users/confirmation', method: :post})
|
28
28
|
assert_named_route "/users/confirmation", :user_confirmation_path
|
29
29
|
end
|
30
30
|
|
31
31
|
test 'map show user confirmation' do
|
32
|
-
assert_recognizes({:
|
32
|
+
assert_recognizes({controller: 'devise/confirmations', action: 'show'}, {path: 'users/confirmation', method: :get})
|
33
33
|
end
|
34
34
|
|
35
35
|
test 'map new user password' do
|
36
|
-
assert_recognizes({:
|
36
|
+
assert_recognizes({controller: 'devise/passwords', action: 'new'}, 'users/password/new')
|
37
37
|
assert_named_route "/users/password/new", :new_user_password_path
|
38
38
|
end
|
39
39
|
|
40
40
|
test 'map create user password' do
|
41
|
-
assert_recognizes({:
|
41
|
+
assert_recognizes({controller: 'devise/passwords', action: 'create'}, {path: 'users/password', method: :post})
|
42
42
|
assert_named_route "/users/password", :user_password_path
|
43
43
|
end
|
44
44
|
|
45
45
|
test 'map edit user password' do
|
46
|
-
assert_recognizes({:
|
46
|
+
assert_recognizes({controller: 'devise/passwords', action: 'edit'}, 'users/password/edit')
|
47
47
|
assert_named_route "/users/password/edit", :edit_user_password_path
|
48
48
|
end
|
49
49
|
|
50
50
|
test 'map update user password' do
|
51
|
-
assert_recognizes({:
|
51
|
+
assert_recognizes({controller: 'devise/passwords', action: 'update'}, {path: 'users/password', method: :put})
|
52
52
|
end
|
53
53
|
|
54
54
|
test 'map new user unlock' do
|
55
|
-
assert_recognizes({:
|
55
|
+
assert_recognizes({controller: 'devise/unlocks', action: 'new'}, 'users/unlock/new')
|
56
56
|
assert_named_route "/users/unlock/new", :new_user_unlock_path
|
57
57
|
end
|
58
58
|
|
59
59
|
test 'map create user unlock' do
|
60
|
-
assert_recognizes({:
|
60
|
+
assert_recognizes({controller: 'devise/unlocks', action: 'create'}, {path: 'users/unlock', method: :post})
|
61
61
|
assert_named_route "/users/unlock", :user_unlock_path
|
62
62
|
end
|
63
63
|
|
64
64
|
test 'map show user unlock' do
|
65
|
-
assert_recognizes({:
|
65
|
+
assert_recognizes({controller: 'devise/unlocks', action: 'show'}, {path: 'users/unlock', method: :get})
|
66
66
|
end
|
67
67
|
|
68
68
|
test 'map new user registration' do
|
69
|
-
assert_recognizes({:
|
69
|
+
assert_recognizes({controller: 'devise/registrations', action: 'new'}, 'users/sign_up')
|
70
70
|
assert_named_route "/users/sign_up", :new_user_registration_path
|
71
71
|
end
|
72
72
|
|
73
73
|
test 'map create user registration' do
|
74
|
-
assert_recognizes({:
|
74
|
+
assert_recognizes({controller: 'devise/registrations', action: 'create'}, {path: 'users', method: :post})
|
75
75
|
assert_named_route "/users", :user_registration_path
|
76
76
|
end
|
77
77
|
|
78
78
|
test 'map edit user registration' do
|
79
|
-
assert_recognizes({:
|
79
|
+
assert_recognizes({controller: 'devise/registrations', action: 'edit'}, {path: 'users/edit', method: :get})
|
80
80
|
assert_named_route "/users/edit", :edit_user_registration_path
|
81
81
|
end
|
82
82
|
|
83
83
|
test 'map update user registration' do
|
84
|
-
assert_recognizes({:
|
84
|
+
assert_recognizes({controller: 'devise/registrations', action: 'update'}, {path: 'users', method: :put})
|
85
85
|
end
|
86
86
|
|
87
87
|
test 'map destroy user registration' do
|
88
|
-
assert_recognizes({:
|
88
|
+
assert_recognizes({controller: 'devise/registrations', action: 'destroy'}, {path: 'users', method: :delete})
|
89
89
|
end
|
90
90
|
|
91
91
|
test 'map cancel user registration' do
|
92
|
-
assert_recognizes({:
|
92
|
+
assert_recognizes({controller: 'devise/registrations', action: 'cancel'}, {path: 'users/cancel', method: :get})
|
93
93
|
assert_named_route "/users/cancel", :cancel_user_registration_path
|
94
94
|
end
|
95
95
|
|
96
96
|
test 'map omniauth callbacks' do
|
97
|
-
assert_recognizes({:
|
98
|
-
assert_recognizes({:
|
97
|
+
assert_recognizes({controller: 'users/omniauth_callbacks', action: 'facebook'}, {path: 'users/auth/facebook/callback', method: :get})
|
98
|
+
assert_recognizes({controller: 'users/omniauth_callbacks', action: 'facebook'}, {path: 'users/auth/facebook/callback', method: :post})
|
99
99
|
assert_named_route "/users/auth/facebook/callback", :user_omniauth_callback_path, :facebook
|
100
100
|
|
101
101
|
# named open_id
|
102
|
-
assert_recognizes({:
|
103
|
-
assert_recognizes({:
|
102
|
+
assert_recognizes({controller: 'users/omniauth_callbacks', action: 'google'}, {path: 'users/auth/google/callback', method: :get})
|
103
|
+
assert_recognizes({controller: 'users/omniauth_callbacks', action: 'google'}, {path: 'users/auth/google/callback', method: :post})
|
104
104
|
assert_named_route "/users/auth/google/callback", :user_omniauth_callback_path, :google
|
105
105
|
|
106
106
|
assert_raise ExpectedRoutingError do
|
107
|
-
assert_recognizes({:
|
107
|
+
assert_recognizes({controller: 'ysers/omniauth_callbacks', action: 'twitter'}, {path: 'users/auth/twitter/callback', method: :get})
|
108
108
|
end
|
109
109
|
end
|
110
110
|
|
@@ -117,122 +117,122 @@ end
|
|
117
117
|
|
118
118
|
class CustomizedRoutingTest < ActionController::TestCase
|
119
119
|
test 'map admin with :path option' do
|
120
|
-
assert_recognizes({:
|
120
|
+
assert_recognizes({controller: 'devise/registrations', action: 'new'}, {path: 'admin_area/sign_up', method: :get})
|
121
121
|
end
|
122
122
|
|
123
123
|
test 'map admin with :controllers option' do
|
124
|
-
assert_recognizes({:
|
124
|
+
assert_recognizes({controller: 'admins/sessions', action: 'new'}, {path: 'admin_area/sign_in', method: :get})
|
125
125
|
end
|
126
126
|
|
127
127
|
test 'does not map admin password' do
|
128
128
|
assert_raise ExpectedRoutingError do
|
129
|
-
assert_recognizes({:
|
129
|
+
assert_recognizes({controller: 'devise/passwords', action: 'new'}, 'admin_area/password/new')
|
130
130
|
end
|
131
131
|
end
|
132
132
|
|
133
133
|
test 'subdomain admin' do
|
134
|
-
assert_recognizes({"host"=>"sub.example.com", :
|
134
|
+
assert_recognizes({"host"=>"sub.example.com", controller: 'devise/sessions', action: 'new'}, {host: "sub.example.com", path: '/sub_admin/sign_in', method: :get})
|
135
135
|
end
|
136
136
|
|
137
137
|
test 'does only map reader password' do
|
138
138
|
assert_raise ExpectedRoutingError do
|
139
|
-
assert_recognizes({:
|
139
|
+
assert_recognizes({controller: 'devise/sessions', action: 'new'}, 'reader/sessions/new')
|
140
140
|
end
|
141
|
-
assert_recognizes({:
|
141
|
+
assert_recognizes({controller: 'devise/passwords', action: 'new'}, 'reader/password/new')
|
142
142
|
end
|
143
143
|
|
144
144
|
test 'map account with custom path name for session sign in' do
|
145
|
-
assert_recognizes({:
|
145
|
+
assert_recognizes({controller: 'devise/sessions', action: 'new', locale: 'en'}, '/en/accounts/login')
|
146
146
|
end
|
147
147
|
|
148
148
|
test 'map account with custom path name for session sign out' do
|
149
|
-
assert_recognizes({:
|
149
|
+
assert_recognizes({controller: 'devise/sessions', action: 'destroy', locale: 'en'}, '/en/accounts/logout')
|
150
150
|
end
|
151
151
|
|
152
152
|
test 'map account with custom path name for password' do
|
153
|
-
assert_recognizes({:
|
153
|
+
assert_recognizes({controller: 'devise/passwords', action: 'new', locale: 'en'}, '/en/accounts/secret/new')
|
154
154
|
end
|
155
155
|
|
156
156
|
test 'map account with custom path name for registration' do
|
157
|
-
assert_recognizes({:
|
157
|
+
assert_recognizes({controller: 'devise/registrations', action: 'new', locale: 'en'}, '/en/accounts/management/register')
|
158
158
|
end
|
159
159
|
|
160
160
|
test 'map account with custom path name for edit registration' do
|
161
|
-
assert_recognizes({:
|
161
|
+
assert_recognizes({controller: 'devise/registrations', action: 'edit', locale: 'en'}, '/en/accounts/management/edit/profile')
|
162
162
|
end
|
163
163
|
|
164
164
|
test 'map account with custom path name for cancel registration' do
|
165
|
-
assert_recognizes({:
|
165
|
+
assert_recognizes({controller: 'devise/registrations', action: 'cancel', locale: 'en'}, '/en/accounts/management/giveup')
|
166
166
|
end
|
167
167
|
|
168
168
|
test 'map deletes with :sign_out_via option' do
|
169
|
-
assert_recognizes({:
|
169
|
+
assert_recognizes({controller: 'devise/sessions', action: 'destroy'}, {path: '/sign_out_via/deletes/sign_out', method: :delete})
|
170
170
|
assert_raise ExpectedRoutingError do
|
171
|
-
assert_recognizes({:
|
171
|
+
assert_recognizes({controller: 'devise/sessions', action: 'destroy'}, {path: '/sign_out_via/deletes/sign_out', method: :get})
|
172
172
|
end
|
173
173
|
end
|
174
174
|
|
175
175
|
test 'map posts with :sign_out_via option' do
|
176
|
-
assert_recognizes({:
|
176
|
+
assert_recognizes({controller: 'devise/sessions', action: 'destroy'}, {path: '/sign_out_via/posts/sign_out', method: :post})
|
177
177
|
assert_raise ExpectedRoutingError do
|
178
|
-
assert_recognizes({:
|
178
|
+
assert_recognizes({controller: 'devise/sessions', action: 'destroy'}, {path: '/sign_out_via/posts/sign_out', method: :get})
|
179
179
|
end
|
180
180
|
end
|
181
181
|
|
182
182
|
test 'map delete_or_posts with :sign_out_via option' do
|
183
|
-
assert_recognizes({:
|
184
|
-
assert_recognizes({:
|
183
|
+
assert_recognizes({controller: 'devise/sessions', action: 'destroy'}, {path: '/sign_out_via/delete_or_posts/sign_out', method: :post})
|
184
|
+
assert_recognizes({controller: 'devise/sessions', action: 'destroy'}, {path: '/sign_out_via/delete_or_posts/sign_out', method: :delete})
|
185
185
|
assert_raise ExpectedRoutingError do
|
186
|
-
assert_recognizes({:
|
186
|
+
assert_recognizes({controller: 'devise/sessions', action: 'destroy'}, {path: '/sign_out_via/delete_or_posts/sign_out', method: :get})
|
187
187
|
end
|
188
188
|
end
|
189
189
|
|
190
190
|
test 'map with constraints defined in hash' do
|
191
|
-
assert_recognizes({:
|
191
|
+
assert_recognizes({controller: 'devise/registrations', action: 'new'}, {path: 'http://192.168.1.100/headquarters/sign_up', method: :get})
|
192
192
|
assert_raise ExpectedRoutingError do
|
193
|
-
assert_recognizes({:
|
193
|
+
assert_recognizes({controller: 'devise/registrations', action: 'new'}, {path: 'http://10.0.0.100/headquarters/sign_up', method: :get})
|
194
194
|
end
|
195
195
|
end
|
196
196
|
|
197
197
|
test 'map with constraints defined in block' do
|
198
|
-
assert_recognizes({:
|
198
|
+
assert_recognizes({controller: 'devise/registrations', action: 'new'}, {path: 'http://192.168.1.100/homebase/sign_up', method: :get})
|
199
199
|
assert_raise ExpectedRoutingError do
|
200
|
-
assert_recognizes({:
|
200
|
+
assert_recognizes({controller: 'devise/registrations', action: 'new'}, {path: 'http://10.0.0.100//homebase/sign_up', method: :get})
|
201
201
|
end
|
202
202
|
end
|
203
203
|
|
204
204
|
test 'map with format false for sessions' do
|
205
|
-
assert_recognizes({:
|
205
|
+
assert_recognizes({controller: 'devise/sessions', action: 'new'}, {path: '/htmlonly_admin/sign_in', method: :get})
|
206
206
|
assert_raise ExpectedRoutingError do
|
207
|
-
assert_recognizes({:
|
207
|
+
assert_recognizes({controller: 'devise/sessions', action: 'new'}, {path: '/htmlonly_admin/sign_in.xml', method: :get})
|
208
208
|
end
|
209
209
|
end
|
210
210
|
|
211
211
|
test 'map with format false for passwords' do
|
212
|
-
assert_recognizes({:
|
212
|
+
assert_recognizes({controller: 'devise/passwords', action: 'create'}, {path: '/htmlonly_admin/password', method: :post})
|
213
213
|
assert_raise ExpectedRoutingError do
|
214
|
-
assert_recognizes({:
|
214
|
+
assert_recognizes({controller: 'devise/passwords', action: 'create'}, {path: '/htmlonly_admin/password.xml', method: :post})
|
215
215
|
end
|
216
216
|
end
|
217
217
|
|
218
218
|
test 'map with format false for registrations' do
|
219
|
-
assert_recognizes({:
|
219
|
+
assert_recognizes({controller: 'devise/registrations', action: 'new'}, {path: '/htmlonly_admin/sign_up', method: :get})
|
220
220
|
assert_raise ExpectedRoutingError do
|
221
|
-
assert_recognizes({:
|
221
|
+
assert_recognizes({controller: 'devise/registrations', action: 'new'}, {path: '/htmlonly_admin/sign_up.xml', method: :get})
|
222
222
|
end
|
223
223
|
end
|
224
224
|
|
225
225
|
test 'map with format false for confirmations' do
|
226
|
-
assert_recognizes({:
|
226
|
+
assert_recognizes({controller: 'devise/confirmations', action: 'show'}, {path: '/htmlonly_users/confirmation', method: :get})
|
227
227
|
assert_raise ExpectedRoutingError do
|
228
|
-
assert_recognizes({:
|
228
|
+
assert_recognizes({controller: 'devise/confirmations', action: 'show'}, {path: '/htmlonly_users/confirmation.xml', method: :get})
|
229
229
|
end
|
230
230
|
end
|
231
231
|
|
232
232
|
test 'map with format false for unlocks' do
|
233
|
-
assert_recognizes({:
|
233
|
+
assert_recognizes({controller: 'devise/unlocks', action: 'show'}, {path: '/htmlonly_users/unlock', method: :get})
|
234
234
|
assert_raise ExpectedRoutingError do
|
235
|
-
assert_recognizes({:
|
235
|
+
assert_recognizes({controller: 'devise/unlocks', action: 'show'}, {path: '/htmlonly_users/unlock.xml', method: :get})
|
236
236
|
end
|
237
237
|
end
|
238
238
|
|
@@ -251,12 +251,12 @@ end
|
|
251
251
|
|
252
252
|
class ScopedRoutingTest < ActionController::TestCase
|
253
253
|
test 'map publisher account' do
|
254
|
-
assert_recognizes({:
|
254
|
+
assert_recognizes({controller: 'publisher/registrations', action: 'new'}, {path: '/publisher/accounts/sign_up', method: :get})
|
255
255
|
assert_equal '/publisher/accounts/sign_up', @routes.url_helpers.new_publisher_account_registration_path
|
256
256
|
end
|
257
257
|
|
258
258
|
test 'map publisher account merges path names' do
|
259
|
-
assert_recognizes({:
|
259
|
+
assert_recognizes({controller: 'publisher/sessions', action: 'new'}, {path: '/publisher/accounts/get_in', method: :get})
|
260
260
|
assert_equal '/publisher/accounts/get_in', @routes.url_helpers.new_publisher_account_session_path
|
261
261
|
end
|
262
262
|
end
|