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.

Files changed (127) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +40 -894
  3. data/Rakefile +2 -0
  4. data/app/controllers/devise_token_auth/application_controller.rb +6 -0
  5. data/app/controllers/devise_token_auth/concerns/resource_finder.rb +2 -0
  6. data/app/controllers/devise_token_auth/concerns/set_user_by_token.rb +9 -14
  7. data/app/controllers/devise_token_auth/confirmations_controller.rb +3 -1
  8. data/app/controllers/devise_token_auth/omniauth_callbacks_controller.rb +2 -0
  9. data/app/controllers/devise_token_auth/passwords_controller.rb +8 -14
  10. data/app/controllers/devise_token_auth/registrations_controller.rb +26 -21
  11. data/app/controllers/devise_token_auth/sessions_controller.rb +2 -0
  12. data/app/controllers/devise_token_auth/token_validations_controller.rb +2 -0
  13. data/app/controllers/devise_token_auth/unlocks_controller.rb +2 -0
  14. data/app/models/devise_token_auth/concerns/user.rb +41 -16
  15. data/app/models/devise_token_auth/concerns/user_omniauth_callbacks.rb +2 -0
  16. data/app/validators/email_validator.rb +3 -1
  17. data/config/initializers/devise.rb +2 -0
  18. data/config/locales/da-DK.yml +1 -1
  19. data/config/locales/sv.yml +50 -0
  20. data/lib/devise_token_auth.rb +3 -0
  21. data/lib/devise_token_auth/controllers/helpers.rb +2 -0
  22. data/lib/devise_token_auth/controllers/url_helpers.rb +2 -0
  23. data/lib/devise_token_auth/engine.rb +2 -0
  24. data/lib/devise_token_auth/errors.rb +7 -0
  25. data/lib/devise_token_auth/rails/routes.rb +2 -0
  26. data/lib/devise_token_auth/url.rb +2 -0
  27. data/lib/devise_token_auth/version.rb +3 -1
  28. data/lib/generators/devise_token_auth/USAGE +1 -1
  29. data/lib/generators/devise_token_auth/install_generator.rb +7 -5
  30. data/lib/generators/devise_token_auth/install_views_generator.rb +2 -0
  31. data/lib/generators/devise_token_auth/templates/devise_token_auth.rb +2 -0
  32. data/lib/generators/devise_token_auth/templates/devise_token_auth_create_users.rb.erb +8 -7
  33. data/lib/generators/devise_token_auth/templates/user.rb +3 -1
  34. data/lib/tasks/devise_token_auth_tasks.rake +2 -0
  35. data/test/controllers/custom/custom_confirmations_controller_test.rb +2 -0
  36. data/test/controllers/custom/custom_omniauth_callbacks_controller_test.rb +2 -0
  37. data/test/controllers/custom/custom_passwords_controller_test.rb +2 -0
  38. data/test/controllers/custom/custom_registrations_controller_test.rb +11 -0
  39. data/test/controllers/custom/custom_sessions_controller_test.rb +2 -0
  40. data/test/controllers/custom/custom_token_validations_controller_test.rb +2 -0
  41. data/test/controllers/demo_group_controller_test.rb +2 -0
  42. data/test/controllers/demo_mang_controller_test.rb +4 -1
  43. data/test/controllers/demo_user_controller_test.rb +47 -10
  44. data/test/controllers/devise_token_auth/confirmations_controller_test.rb +4 -6
  45. data/test/controllers/devise_token_auth/omniauth_callbacks_controller_test.rb +7 -4
  46. data/test/controllers/devise_token_auth/passwords_controller_test.rb +2 -0
  47. data/test/controllers/devise_token_auth/registrations_controller_test.rb +3 -1
  48. data/test/controllers/devise_token_auth/sessions_controller_test.rb +52 -0
  49. data/test/controllers/devise_token_auth/token_validations_controller_test.rb +2 -0
  50. data/test/controllers/devise_token_auth/unlocks_controller_test.rb +2 -0
  51. data/test/controllers/overrides/confirmations_controller_test.rb +2 -0
  52. data/test/controllers/overrides/omniauth_callbacks_controller_test.rb +2 -0
  53. data/test/controllers/overrides/passwords_controller_test.rb +2 -0
  54. data/test/controllers/overrides/registrations_controller_test.rb +31 -27
  55. data/test/controllers/overrides/sessions_controller_test.rb +2 -0
  56. data/test/controllers/overrides/token_validations_controller_test.rb +2 -0
  57. data/test/dummy/app/controllers/application_controller.rb +2 -0
  58. data/test/dummy/app/controllers/auth_origin_controller.rb +2 -0
  59. data/test/dummy/app/controllers/custom/confirmations_controller.rb +2 -0
  60. data/test/dummy/app/controllers/custom/omniauth_callbacks_controller.rb +2 -0
  61. data/test/dummy/app/controllers/custom/passwords_controller.rb +2 -0
  62. data/test/dummy/app/controllers/custom/registrations_controller.rb +2 -1
  63. data/test/dummy/app/controllers/custom/sessions_controller.rb +2 -0
  64. data/test/dummy/app/controllers/custom/token_validations_controller.rb +2 -0
  65. data/test/dummy/app/controllers/demo_group_controller.rb +2 -0
  66. data/test/dummy/app/controllers/demo_mang_controller.rb +2 -0
  67. data/test/dummy/app/controllers/demo_user_controller.rb +2 -0
  68. data/test/dummy/app/controllers/overrides/confirmations_controller.rb +2 -0
  69. data/test/dummy/app/controllers/overrides/omniauth_callbacks_controller.rb +2 -0
  70. data/test/dummy/app/controllers/overrides/passwords_controller.rb +2 -0
  71. data/test/dummy/app/controllers/overrides/registrations_controller.rb +2 -0
  72. data/test/dummy/app/controllers/overrides/sessions_controller.rb +2 -0
  73. data/test/dummy/app/controllers/overrides/token_validations_controller.rb +2 -0
  74. data/test/dummy/app/helpers/application_helper.rb +2 -0
  75. data/test/dummy/app/models/evil_user.rb +2 -0
  76. data/test/dummy/app/models/lockable_user.rb +2 -0
  77. data/test/dummy/app/models/mang.rb +2 -0
  78. data/test/dummy/app/models/nice_user.rb +2 -0
  79. data/test/dummy/app/models/only_email_user.rb +2 -0
  80. data/test/dummy/app/models/scoped_user.rb +2 -0
  81. data/test/dummy/app/models/unconfirmable_user.rb +2 -0
  82. data/test/dummy/app/models/unregisterable_user.rb +2 -0
  83. data/test/dummy/app/models/user.rb +2 -0
  84. data/test/dummy/config/application.rb +2 -0
  85. data/test/dummy/config/boot.rb +2 -0
  86. data/test/dummy/config/environment.rb +2 -0
  87. data/test/dummy/config/environments/development.rb +2 -0
  88. data/test/dummy/config/environments/production.rb +2 -0
  89. data/test/dummy/config/environments/test.rb +2 -0
  90. data/test/dummy/config/initializers/assets.rb +2 -0
  91. data/test/dummy/config/initializers/backtrace_silencers.rb +2 -0
  92. data/test/dummy/config/initializers/cookies_serializer.rb +3 -1
  93. data/test/dummy/config/initializers/devise.rb +2 -0
  94. data/test/dummy/config/initializers/devise_token_auth.rb +2 -0
  95. data/test/dummy/config/initializers/figaro.rb +2 -0
  96. data/test/dummy/config/initializers/filter_parameter_logging.rb +2 -0
  97. data/test/dummy/config/initializers/inflections.rb +2 -0
  98. data/test/dummy/config/initializers/mime_types.rb +2 -0
  99. data/test/dummy/config/initializers/omniauth.rb +2 -0
  100. data/test/dummy/config/initializers/session_store.rb +2 -0
  101. data/test/dummy/config/initializers/wrap_parameters.rb +2 -0
  102. data/test/dummy/config/routes.rb +2 -0
  103. data/test/dummy/config/spring.rb +2 -0
  104. data/test/dummy/db/migrate/20140715061447_devise_token_auth_create_users.rb +2 -0
  105. data/test/dummy/db/migrate/20140715061805_devise_token_auth_create_mangs.rb +2 -0
  106. data/test/dummy/db/migrate/20140829044006_add_operating_thetan_to_user.rb +2 -0
  107. data/test/dummy/db/migrate/20140916224624_add_favorite_color_to_mangs.rb +2 -0
  108. data/test/dummy/db/migrate/20140928231203_devise_token_auth_create_evil_users.rb +2 -0
  109. data/test/dummy/db/migrate/20141222035835_devise_token_auth_create_only_email_users.rb +2 -0
  110. data/test/dummy/db/migrate/20141222053502_devise_token_auth_create_unregisterable_users.rb +2 -0
  111. data/test/dummy/db/migrate/20150409095712_devise_token_auth_create_nice_users.rb +2 -0
  112. data/test/dummy/db/migrate/20150708104536_devise_token_auth_create_unconfirmable_users.rb +2 -0
  113. data/test/dummy/db/migrate/20160103235141_devise_token_auth_create_scoped_users.rb +2 -0
  114. data/test/dummy/db/migrate/20160629184441_devise_token_auth_create_lockable_users.rb +2 -0
  115. data/test/dummy/lib/migration_database_helper.rb +15 -1
  116. data/test/dummy/tmp/generators/app/models/user.rb +5 -5
  117. data/test/dummy/tmp/generators/config/initializers/devise_token_auth.rb +2 -0
  118. data/test/dummy/tmp/generators/db/migrate/{20171014052631_devise_token_auth_create_users.rb → 20180805205504_devise_token_auth_create_users.rb} +1 -0
  119. data/test/integration/navigation_test.rb +2 -0
  120. data/test/lib/devise_token_auth/url_test.rb +2 -0
  121. data/test/lib/generators/devise_token_auth/install_generator_test.rb +2 -0
  122. data/test/lib/generators/devise_token_auth/install_generator_with_namespace_test.rb +194 -0
  123. data/test/lib/generators/devise_token_auth/install_views_generator_test.rb +2 -0
  124. data/test/models/only_email_user_test.rb +2 -0
  125. data/test/models/user_test.rb +6 -4
  126. data/test/test_helper.rb +30 -14
  127. metadata +23 -5
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Be sure to restart your server when you modify this file.
2
4
 
3
5
  # This file contains settings for ActionController::ParamsWrapper which
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Rails.application.routes.draw do
2
4
  # when using multiple models, controllers will default to the first available
3
5
  # devise mapping. routes for subsequent devise mappings will need to defined
@@ -1 +1,3 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Spring.application_root = './test/dummy'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  include MigrationDatabaseHelper
2
4
 
3
5
  class DeviseTokenAuthCreateUsers < ActiveRecord::Migration[4.2]
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  include MigrationDatabaseHelper
2
4
 
3
5
  class DeviseTokenAuthCreateMangs < ActiveRecord::Migration[4.2]
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class AddOperatingThetanToUser < ActiveRecord::Migration[4.2]
2
4
  def change
3
5
  add_column :users, :operating_thetan, :integer
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class AddFavoriteColorToMangs < ActiveRecord::Migration[4.2]
2
4
  def change
3
5
  add_column :mangs, :favorite_color, :string
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  include MigrationDatabaseHelper
2
4
 
3
5
  class DeviseTokenAuthCreateEvilUsers < ActiveRecord::Migration[4.2]
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  include MigrationDatabaseHelper
2
4
 
3
5
  class DeviseTokenAuthCreateOnlyEmailUsers < ActiveRecord::Migration[4.2]
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  include MigrationDatabaseHelper
2
4
 
3
5
  class DeviseTokenAuthCreateUnregisterableUsers < ActiveRecord::Migration[4.2]
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  include MigrationDatabaseHelper
2
4
 
3
5
  class DeviseTokenAuthCreateNiceUsers < ActiveRecord::Migration[4.2]
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  include MigrationDatabaseHelper
2
4
 
3
5
  class DeviseTokenAuthCreateUnconfirmableUsers < ActiveRecord::Migration[4.2]
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  include MigrationDatabaseHelper
2
4
 
3
5
  class DeviseTokenAuthCreateScopedUsers < ActiveRecord::Migration[4.2]
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  include MigrationDatabaseHelper
2
4
 
3
5
  class DeviseTokenAuthCreateLockableUsers < ActiveRecord::Migration[4.2]
@@ -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
- # Include default devise modules.
3
- devise :database_authenticatable, :registerable,
4
- :recoverable, :rememberable, :trackable, :validatable,
5
- :confirmable, :omniauthable
6
- include DeviseTokenAuth::Concerns::User
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'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  DeviseTokenAuth.setup do |config|
2
4
  # By default the authorization headers will change after each request. The
3
5
  # client is responsible for keeping track of the changing tokens. Change
@@ -1,5 +1,6 @@
1
1
  class DeviseTokenAuthCreateUsers < ActiveRecord::Migration[5.1]
2
2
  def change
3
+
3
4
  create_table(:users) do |t|
4
5
  ## Required
5
6
  t.string :provider, :null => false, :default => "email"
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test_helper'
2
4
 
3
5
  class NavigationTest < ActionDispatch::IntegrationTest
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test_helper'
2
4
 
3
5
  class DeviseTokenAuth::UrlTest < ActiveSupport::TestCase
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test_helper'
2
4
  require 'fileutils'
3
5
  require 'generators/devise_token_auth/install_generator'
@@ -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
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test_helper'
2
4
  require 'fileutils'
3
5
  require 'generators/devise_token_auth/install_views_generator'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'test_helper'
2
4
 
3
5
  class OnlyEmailUserTest < ActiveSupport::TestCase
@@ -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
- require 'simplecov'
1
+ # frozen_string_literal: true
2
2
 
3
- # SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
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