devise_token_auth 0.1.43 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of devise_token_auth might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/README.md +40 -894
- data/Rakefile +2 -0
- data/app/controllers/devise_token_auth/application_controller.rb +6 -0
- data/app/controllers/devise_token_auth/concerns/resource_finder.rb +2 -0
- data/app/controllers/devise_token_auth/concerns/set_user_by_token.rb +9 -14
- data/app/controllers/devise_token_auth/confirmations_controller.rb +3 -1
- data/app/controllers/devise_token_auth/omniauth_callbacks_controller.rb +2 -0
- data/app/controllers/devise_token_auth/passwords_controller.rb +8 -14
- data/app/controllers/devise_token_auth/registrations_controller.rb +26 -21
- data/app/controllers/devise_token_auth/sessions_controller.rb +2 -0
- data/app/controllers/devise_token_auth/token_validations_controller.rb +2 -0
- data/app/controllers/devise_token_auth/unlocks_controller.rb +2 -0
- data/app/models/devise_token_auth/concerns/user.rb +41 -16
- data/app/models/devise_token_auth/concerns/user_omniauth_callbacks.rb +2 -0
- data/app/validators/email_validator.rb +3 -1
- data/config/initializers/devise.rb +2 -0
- data/config/locales/da-DK.yml +1 -1
- data/config/locales/sv.yml +50 -0
- data/lib/devise_token_auth.rb +3 -0
- data/lib/devise_token_auth/controllers/helpers.rb +2 -0
- data/lib/devise_token_auth/controllers/url_helpers.rb +2 -0
- data/lib/devise_token_auth/engine.rb +2 -0
- data/lib/devise_token_auth/errors.rb +7 -0
- data/lib/devise_token_auth/rails/routes.rb +2 -0
- data/lib/devise_token_auth/url.rb +2 -0
- data/lib/devise_token_auth/version.rb +3 -1
- data/lib/generators/devise_token_auth/USAGE +1 -1
- data/lib/generators/devise_token_auth/install_generator.rb +7 -5
- data/lib/generators/devise_token_auth/install_views_generator.rb +2 -0
- data/lib/generators/devise_token_auth/templates/devise_token_auth.rb +2 -0
- data/lib/generators/devise_token_auth/templates/devise_token_auth_create_users.rb.erb +8 -7
- data/lib/generators/devise_token_auth/templates/user.rb +3 -1
- data/lib/tasks/devise_token_auth_tasks.rake +2 -0
- data/test/controllers/custom/custom_confirmations_controller_test.rb +2 -0
- data/test/controllers/custom/custom_omniauth_callbacks_controller_test.rb +2 -0
- data/test/controllers/custom/custom_passwords_controller_test.rb +2 -0
- data/test/controllers/custom/custom_registrations_controller_test.rb +11 -0
- data/test/controllers/custom/custom_sessions_controller_test.rb +2 -0
- data/test/controllers/custom/custom_token_validations_controller_test.rb +2 -0
- data/test/controllers/demo_group_controller_test.rb +2 -0
- data/test/controllers/demo_mang_controller_test.rb +4 -1
- data/test/controllers/demo_user_controller_test.rb +47 -10
- data/test/controllers/devise_token_auth/confirmations_controller_test.rb +4 -6
- data/test/controllers/devise_token_auth/omniauth_callbacks_controller_test.rb +7 -4
- data/test/controllers/devise_token_auth/passwords_controller_test.rb +2 -0
- data/test/controllers/devise_token_auth/registrations_controller_test.rb +3 -1
- data/test/controllers/devise_token_auth/sessions_controller_test.rb +52 -0
- data/test/controllers/devise_token_auth/token_validations_controller_test.rb +2 -0
- data/test/controllers/devise_token_auth/unlocks_controller_test.rb +2 -0
- data/test/controllers/overrides/confirmations_controller_test.rb +2 -0
- data/test/controllers/overrides/omniauth_callbacks_controller_test.rb +2 -0
- data/test/controllers/overrides/passwords_controller_test.rb +2 -0
- data/test/controllers/overrides/registrations_controller_test.rb +31 -27
- data/test/controllers/overrides/sessions_controller_test.rb +2 -0
- data/test/controllers/overrides/token_validations_controller_test.rb +2 -0
- data/test/dummy/app/controllers/application_controller.rb +2 -0
- data/test/dummy/app/controllers/auth_origin_controller.rb +2 -0
- data/test/dummy/app/controllers/custom/confirmations_controller.rb +2 -0
- data/test/dummy/app/controllers/custom/omniauth_callbacks_controller.rb +2 -0
- data/test/dummy/app/controllers/custom/passwords_controller.rb +2 -0
- data/test/dummy/app/controllers/custom/registrations_controller.rb +2 -1
- data/test/dummy/app/controllers/custom/sessions_controller.rb +2 -0
- data/test/dummy/app/controllers/custom/token_validations_controller.rb +2 -0
- data/test/dummy/app/controllers/demo_group_controller.rb +2 -0
- data/test/dummy/app/controllers/demo_mang_controller.rb +2 -0
- data/test/dummy/app/controllers/demo_user_controller.rb +2 -0
- data/test/dummy/app/controllers/overrides/confirmations_controller.rb +2 -0
- data/test/dummy/app/controllers/overrides/omniauth_callbacks_controller.rb +2 -0
- data/test/dummy/app/controllers/overrides/passwords_controller.rb +2 -0
- data/test/dummy/app/controllers/overrides/registrations_controller.rb +2 -0
- data/test/dummy/app/controllers/overrides/sessions_controller.rb +2 -0
- data/test/dummy/app/controllers/overrides/token_validations_controller.rb +2 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/models/evil_user.rb +2 -0
- data/test/dummy/app/models/lockable_user.rb +2 -0
- data/test/dummy/app/models/mang.rb +2 -0
- data/test/dummy/app/models/nice_user.rb +2 -0
- data/test/dummy/app/models/only_email_user.rb +2 -0
- data/test/dummy/app/models/scoped_user.rb +2 -0
- data/test/dummy/app/models/unconfirmable_user.rb +2 -0
- data/test/dummy/app/models/unregisterable_user.rb +2 -0
- data/test/dummy/app/models/user.rb +2 -0
- data/test/dummy/config/application.rb +2 -0
- data/test/dummy/config/boot.rb +2 -0
- data/test/dummy/config/environment.rb +2 -0
- data/test/dummy/config/environments/development.rb +2 -0
- data/test/dummy/config/environments/production.rb +2 -0
- data/test/dummy/config/environments/test.rb +2 -0
- data/test/dummy/config/initializers/assets.rb +2 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +2 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +3 -1
- data/test/dummy/config/initializers/devise.rb +2 -0
- data/test/dummy/config/initializers/devise_token_auth.rb +2 -0
- data/test/dummy/config/initializers/figaro.rb +2 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +2 -0
- data/test/dummy/config/initializers/inflections.rb +2 -0
- data/test/dummy/config/initializers/mime_types.rb +2 -0
- data/test/dummy/config/initializers/omniauth.rb +2 -0
- data/test/dummy/config/initializers/session_store.rb +2 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +2 -0
- data/test/dummy/config/routes.rb +2 -0
- data/test/dummy/config/spring.rb +2 -0
- data/test/dummy/db/migrate/20140715061447_devise_token_auth_create_users.rb +2 -0
- data/test/dummy/db/migrate/20140715061805_devise_token_auth_create_mangs.rb +2 -0
- data/test/dummy/db/migrate/20140829044006_add_operating_thetan_to_user.rb +2 -0
- data/test/dummy/db/migrate/20140916224624_add_favorite_color_to_mangs.rb +2 -0
- data/test/dummy/db/migrate/20140928231203_devise_token_auth_create_evil_users.rb +2 -0
- data/test/dummy/db/migrate/20141222035835_devise_token_auth_create_only_email_users.rb +2 -0
- data/test/dummy/db/migrate/20141222053502_devise_token_auth_create_unregisterable_users.rb +2 -0
- data/test/dummy/db/migrate/20150409095712_devise_token_auth_create_nice_users.rb +2 -0
- data/test/dummy/db/migrate/20150708104536_devise_token_auth_create_unconfirmable_users.rb +2 -0
- data/test/dummy/db/migrate/20160103235141_devise_token_auth_create_scoped_users.rb +2 -0
- data/test/dummy/db/migrate/20160629184441_devise_token_auth_create_lockable_users.rb +2 -0
- data/test/dummy/lib/migration_database_helper.rb +15 -1
- data/test/dummy/tmp/generators/app/models/user.rb +5 -5
- data/test/dummy/tmp/generators/config/initializers/devise_token_auth.rb +2 -0
- data/test/dummy/tmp/generators/db/migrate/{20171014052631_devise_token_auth_create_users.rb → 20180805205504_devise_token_auth_create_users.rb} +1 -0
- data/test/integration/navigation_test.rb +2 -0
- data/test/lib/devise_token_auth/url_test.rb +2 -0
- data/test/lib/generators/devise_token_auth/install_generator_test.rb +2 -0
- data/test/lib/generators/devise_token_auth/install_generator_with_namespace_test.rb +194 -0
- data/test/lib/generators/devise_token_auth/install_views_generator_test.rb +2 -0
- data/test/models/only_email_user_test.rb +2 -0
- data/test/models/user_test.rb +6 -4
- data/test/test_helper.rb +30 -14
- metadata +23 -5
data/test/dummy/config/routes.rb
CHANGED
data/test/dummy/config/spring.rb
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# polyfill Rails >= 5 versioned migrations
|
4
|
+
|
5
|
+
unless ActiveRecord::Migration.respond_to?(:[])
|
6
|
+
module ActiveRecord
|
7
|
+
class Migration
|
8
|
+
def self.[](_version)
|
9
|
+
self
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
1
15
|
module MigrationDatabaseHelper
|
2
16
|
def json_supported_database?
|
3
17
|
(postgres? && postgres_correct_version?) || (mysql? && mysql_correct_version?)
|
@@ -26,4 +40,4 @@ module MigrationDatabaseHelper
|
|
26
40
|
def database_version
|
27
41
|
ActiveRecord::Base.connection.select_value('SELECT VERSION()')
|
28
42
|
end
|
29
|
-
end
|
43
|
+
end
|
@@ -1,9 +1,9 @@
|
|
1
1
|
class User < ApplicationRecord
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
2
|
+
# Include default devise modules.
|
3
|
+
devise :database_authenticatable, :registerable,
|
4
|
+
:recoverable, :rememberable, :trackable, :validatable,
|
5
|
+
:confirmable, :omniauthable
|
6
|
+
include DeviseTokenAuth::Concerns::User
|
7
7
|
|
8
8
|
def whatever
|
9
9
|
puts 'whatever'
|
@@ -0,0 +1,194 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
require 'fileutils'
|
5
|
+
require 'generators/devise_token_auth/install_generator'
|
6
|
+
|
7
|
+
module DeviseTokenAuth
|
8
|
+
class InstallGeneratorTest < Rails::Generators::TestCase
|
9
|
+
tests InstallGenerator
|
10
|
+
destination Rails.root.join('tmp/generators')
|
11
|
+
|
12
|
+
# The namespaced user model for testing
|
13
|
+
let(:user_class) { "Azpire::V1::HumanResource::User" }
|
14
|
+
let(:namespace_path) { user_class.underscore }
|
15
|
+
let(:table_name) { user_class.pluralize.underscore.gsub("/","_") }
|
16
|
+
|
17
|
+
describe 'user model with namespace, clean install' do
|
18
|
+
setup :prepare_destination
|
19
|
+
|
20
|
+
before do
|
21
|
+
run_generator %W(#{user_class} auth)
|
22
|
+
end
|
23
|
+
|
24
|
+
test 'user model (with namespace) is created, concern is included' do
|
25
|
+
assert_file "app/models/#{namespace_path}.rb" do |model|
|
26
|
+
assert_match(/include DeviseTokenAuth::Concerns::User/, model)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
test 'initializer is created' do
|
31
|
+
assert_file 'config/initializers/devise_token_auth.rb'
|
32
|
+
end
|
33
|
+
|
34
|
+
test 'migration is created for user model with namespace' do
|
35
|
+
assert_migration "db/migrate/devise_token_auth_create_#{table_name}.rb"
|
36
|
+
end
|
37
|
+
|
38
|
+
test 'migration file for user model with namespace contains rails version' do
|
39
|
+
if Rails::VERSION::MAJOR >= 5
|
40
|
+
assert_migration "db/migrate/devise_token_auth_create_#{table_name}.rb", /#{Rails::VERSION::MAJOR}.#{Rails::VERSION::MINOR}/
|
41
|
+
else
|
42
|
+
assert_migration "db/migrate/devise_token_auth_create_#{table_name}.rb"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
test 'subsequent runs raise no errors' do
|
47
|
+
run_generator %W(#{user_class} auth)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe 'existing user model' do
|
52
|
+
setup :prepare_destination
|
53
|
+
|
54
|
+
before do
|
55
|
+
@dir = File.join(destination_root, "app", "models")
|
56
|
+
|
57
|
+
@fname = File.join(@dir, "user.rb")
|
58
|
+
|
59
|
+
# make dir if not exists
|
60
|
+
FileUtils.mkdir_p(@dir)
|
61
|
+
|
62
|
+
# account for rails version 5
|
63
|
+
active_record_needle = (Rails::VERSION::MAJOR == 5) ? 'ApplicationRecord' : 'ActiveRecord::Base'
|
64
|
+
|
65
|
+
@f = File.open(@fname, 'w') {|f|
|
66
|
+
f.write <<-RUBY
|
67
|
+
class User < #{active_record_needle}
|
68
|
+
|
69
|
+
def whatever
|
70
|
+
puts 'whatever'
|
71
|
+
end
|
72
|
+
end
|
73
|
+
RUBY
|
74
|
+
}
|
75
|
+
|
76
|
+
run_generator
|
77
|
+
end
|
78
|
+
|
79
|
+
test 'user concern is injected into existing model' do
|
80
|
+
assert_file 'app/models/user.rb' do |model|
|
81
|
+
assert_match(/include DeviseTokenAuth::Concerns::User/, model)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
test 'subsequent runs do not modify file' do
|
86
|
+
run_generator
|
87
|
+
assert_file 'app/models/user.rb' do |model|
|
88
|
+
matches = model.scan(/include DeviseTokenAuth::Concerns::User/m).size
|
89
|
+
assert_equal 1, matches
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
|
95
|
+
describe 'routes' do
|
96
|
+
setup :prepare_destination
|
97
|
+
|
98
|
+
before do
|
99
|
+
@dir = File.join(destination_root, "config")
|
100
|
+
|
101
|
+
@fname = File.join(@dir, "routes.rb")
|
102
|
+
|
103
|
+
# make dir if not exists
|
104
|
+
FileUtils.mkdir_p(@dir)
|
105
|
+
|
106
|
+
@f = File.open(@fname, 'w') {|f|
|
107
|
+
f.write <<-RUBY
|
108
|
+
Rails.application.routes.draw do
|
109
|
+
patch '/chong', to: 'bong#index'
|
110
|
+
end
|
111
|
+
RUBY
|
112
|
+
}
|
113
|
+
|
114
|
+
run_generator %W(#{user_class} auth)
|
115
|
+
end
|
116
|
+
|
117
|
+
test 'route method for user model with namespace is appended to routes file' do
|
118
|
+
assert_file 'config/routes.rb' do |routes|
|
119
|
+
assert_match(/mount_devise_token_auth_for '#{user_class}', at: 'auth'/, routes)
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
test 'subsequent runs do not modify file' do
|
124
|
+
run_generator %W(#{user_class} auth)
|
125
|
+
assert_file 'config/routes.rb' do |routes|
|
126
|
+
matches = routes.scan(/mount_devise_token_auth_for '#{user_class}', at: 'auth'/m).size
|
127
|
+
assert_equal 1, matches
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
describe 'subsequent models' do
|
132
|
+
before do
|
133
|
+
run_generator %w(Mang mangs)
|
134
|
+
end
|
135
|
+
|
136
|
+
test 'migration is created' do
|
137
|
+
assert_migration 'db/migrate/devise_token_auth_create_mangs.rb'
|
138
|
+
end
|
139
|
+
|
140
|
+
test 'route method is appended to routes file' do
|
141
|
+
assert_file 'config/routes.rb' do |routes|
|
142
|
+
assert_match(/mount_devise_token_auth_for 'Mang', at: 'mangs'/, routes)
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
test 'devise_for block is appended to routes file' do
|
147
|
+
assert_file 'config/routes.rb' do |routes|
|
148
|
+
assert_match(/as :mang do/, routes)
|
149
|
+
assert_match(/# Define routes for Mang within this block./, routes)
|
150
|
+
end
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
describe 'application controller' do
|
156
|
+
setup :prepare_destination
|
157
|
+
|
158
|
+
before do
|
159
|
+
@dir = File.join(destination_root, "app", "controllers")
|
160
|
+
|
161
|
+
@fname = File.join(@dir, "application_controller.rb")
|
162
|
+
|
163
|
+
# make dir if not exists
|
164
|
+
FileUtils.mkdir_p(@dir)
|
165
|
+
|
166
|
+
@f = File.open(@fname, 'w') {|f|
|
167
|
+
f.write <<-RUBY
|
168
|
+
class ApplicationController < ActionController::Base
|
169
|
+
def whatever
|
170
|
+
'whatever'
|
171
|
+
end
|
172
|
+
end
|
173
|
+
RUBY
|
174
|
+
}
|
175
|
+
|
176
|
+
run_generator %W(#{user_class} auth)
|
177
|
+
end
|
178
|
+
|
179
|
+
test 'controller concern is appended to application controller' do
|
180
|
+
assert_file 'app/controllers/application_controller.rb' do |controller|
|
181
|
+
assert_match(/include DeviseTokenAuth::Concerns::SetUserByToken/, controller)
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
185
|
+
test 'subsequent runs do not modify file' do
|
186
|
+
run_generator %W(#{user_class} auth)
|
187
|
+
assert_file 'app/controllers/application_controller.rb' do |controller|
|
188
|
+
matches = controller.scan(/include DeviseTokenAuth::Concerns::SetUserByToken/m).size
|
189
|
+
assert_equal 1, matches
|
190
|
+
end
|
191
|
+
end
|
192
|
+
end
|
193
|
+
end
|
194
|
+
end
|
data/test/models/user_test.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'test_helper'
|
2
4
|
|
3
5
|
class UserTest < ActiveSupport::TestCase
|
@@ -94,7 +96,7 @@ class UserTest < ActiveSupport::TestCase
|
|
94
96
|
test 'should properly indicate whether token is current' do
|
95
97
|
assert @resource.token_is_current?(@token, @client_id)
|
96
98
|
# we want to update the expiry without forcing a cleanup (see below)
|
97
|
-
@resource.tokens[@client_id]['expiry'] = Time.now.to_i - 10.seconds
|
99
|
+
@resource.tokens[@client_id]['expiry'] = Time.zone.now.to_i - 10.seconds
|
98
100
|
refute @resource.token_is_current?(@token, @client_id)
|
99
101
|
end
|
100
102
|
end
|
@@ -121,13 +123,13 @@ class UserTest < ActiveSupport::TestCase
|
|
121
123
|
test 'works per user' do
|
122
124
|
assert @resource.token_is_current?(@token_global, @client_id_global)
|
123
125
|
|
124
|
-
time = Time.now.to_i
|
125
|
-
expiry_global = @resource.tokens[@client_id_global]['expiry']
|
126
|
+
time = Time.zone.now.to_i
|
127
|
+
expiry_global = @resource.tokens[@client_id_global]['expiry'] || @resource.tokens[@client_id_global][:expiry]
|
126
128
|
|
127
129
|
assert expiry_global > time + DeviseTokenAuth.token_lifespan - 5.seconds
|
128
130
|
assert expiry_global < time + DeviseTokenAuth.token_lifespan + 5.seconds
|
129
131
|
|
130
|
-
expiry_specific = @resource.tokens[@client_id_specific]['expiry']
|
132
|
+
expiry_specific = @resource.tokens[@client_id_specific]['expiry'] || @resource.tokens[@client_id_specific][:expiry]
|
131
133
|
assert expiry_specific > time + 55.seconds
|
132
134
|
assert expiry_specific < time + 65.seconds
|
133
135
|
end
|
data/test/test_helper.rb
CHANGED
@@ -1,9 +1,6 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
# SimpleCov::Formatter::HTMLFormatter,
|
5
|
-
# CodeClimate::TestReporter::Formatter
|
6
|
-
# ]
|
3
|
+
require 'simplecov'
|
7
4
|
|
8
5
|
SimpleCov.start 'rails'
|
9
6
|
|
@@ -12,13 +9,7 @@ ENV['RAILS_ENV'] = 'test'
|
|
12
9
|
require File.expand_path('../dummy/config/environment', __FILE__)
|
13
10
|
require 'rails/test_help'
|
14
11
|
require 'minitest/rails'
|
15
|
-
|
16
|
-
# To add Capybara feature tests add `gem "minitest-rails-capybara"`
|
17
|
-
# to the test group in the Gemfile and uncomment the following:
|
18
|
-
# require "minitest/rails/capybara"
|
19
|
-
|
20
|
-
# Uncomment for awesome colorful output
|
21
|
-
# require "minitest/pride"
|
12
|
+
require 'mocha/minitest'
|
22
13
|
|
23
14
|
ActiveSupport::TestCase.fixture_path = File.expand_path('../fixtures', __FILE__)
|
24
15
|
ActionDispatch::IntegrationTest.fixture_path = File.expand_path('../fixtures', __FILE__)
|
@@ -45,14 +36,14 @@ class ActiveSupport::TestCase
|
|
45
36
|
|
46
37
|
def age_token(user, client_id)
|
47
38
|
if user.tokens[client_id]
|
48
|
-
user.tokens[client_id]['updated_at'] = Time.now - (DeviseTokenAuth.batch_request_buffer_throttle + 10.seconds)
|
39
|
+
user.tokens[client_id]['updated_at'] = Time.zone.now - (DeviseTokenAuth.batch_request_buffer_throttle + 10.seconds)
|
49
40
|
user.save!
|
50
41
|
end
|
51
42
|
end
|
52
43
|
|
53
44
|
def expire_token(user, client_id)
|
54
45
|
if user.tokens[client_id]
|
55
|
-
user.tokens[client_id]['expiry'] = (Time.now - (DeviseTokenAuth.token_lifespan.to_f + 10.seconds)).to_i
|
46
|
+
user.tokens[client_id]['expiry'] = (Time.zone.now - (DeviseTokenAuth.token_lifespan.to_f + 10.seconds)).to_i
|
56
47
|
user.save!
|
57
48
|
end
|
58
49
|
end
|
@@ -75,3 +66,28 @@ class ActionController::TestCase
|
|
75
66
|
@request.env['devise.mapping'] = Devise.mappings[:user]
|
76
67
|
end
|
77
68
|
end
|
69
|
+
|
70
|
+
# TODO: remove it when support for Rails < 5 has been dropped
|
71
|
+
module Rails
|
72
|
+
module Controller
|
73
|
+
module Testing
|
74
|
+
module Integration
|
75
|
+
%w[get post patch put head delete get_via_redirect post_via_redirect].each do |method|
|
76
|
+
define_method(method) do |path_or_action, **args|
|
77
|
+
if Rails::VERSION::MAJOR >= 5
|
78
|
+
super path_or_action, args
|
79
|
+
else
|
80
|
+
super path_or_action, args[:params], args[:headers]
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
module ActionController
|
90
|
+
class TestCase
|
91
|
+
include Rails::Controller::Testing::Integration
|
92
|
+
end
|
93
|
+
end
|