nano-smart-gem 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of nano-smart-gem might be problematic. Click here for more details.

Files changed (181) hide show
  1. checksums.yaml +7 -0
  2. data/devise_token_auth-1.2.6/LICENSE +13 -0
  3. data/devise_token_auth-1.2.6/README.md +97 -0
  4. data/devise_token_auth-1.2.6/Rakefile +42 -0
  5. data/devise_token_auth-1.2.6/app/controllers/devise_token_auth/application_controller.rb +100 -0
  6. data/devise_token_auth-1.2.6/app/controllers/devise_token_auth/concerns/resource_finder.rb +58 -0
  7. data/devise_token_auth-1.2.6/app/controllers/devise_token_auth/concerns/set_user_by_token.rb +199 -0
  8. data/devise_token_auth-1.2.6/app/controllers/devise_token_auth/confirmations_controller.rb +89 -0
  9. data/devise_token_auth-1.2.6/app/controllers/devise_token_auth/omniauth_callbacks_controller.rb +284 -0
  10. data/devise_token_auth-1.2.6/app/controllers/devise_token_auth/passwords_controller.rb +216 -0
  11. data/devise_token_auth-1.2.6/app/controllers/devise_token_auth/registrations_controller.rb +205 -0
  12. data/devise_token_auth-1.2.6/app/controllers/devise_token_auth/sessions_controller.rb +153 -0
  13. data/devise_token_auth-1.2.6/app/controllers/devise_token_auth/token_validations_controller.rb +31 -0
  14. data/devise_token_auth-1.2.6/app/controllers/devise_token_auth/unlocks_controller.rb +94 -0
  15. data/devise_token_auth-1.2.6/app/models/devise_token_auth/concerns/active_record_support.rb +18 -0
  16. data/devise_token_auth-1.2.6/app/models/devise_token_auth/concerns/confirmable_support.rb +28 -0
  17. data/devise_token_auth-1.2.6/app/models/devise_token_auth/concerns/mongoid_support.rb +19 -0
  18. data/devise_token_auth-1.2.6/app/models/devise_token_auth/concerns/tokens_serialization.rb +31 -0
  19. data/devise_token_auth-1.2.6/app/models/devise_token_auth/concerns/user.rb +282 -0
  20. data/devise_token_auth-1.2.6/app/models/devise_token_auth/concerns/user_omniauth_callbacks.rb +35 -0
  21. data/devise_token_auth-1.2.6/app/validators/devise_token_auth_email_validator.rb +31 -0
  22. data/devise_token_auth-1.2.6/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
  23. data/devise_token_auth-1.2.6/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  24. data/devise_token_auth-1.2.6/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
  25. data/devise_token_auth-1.2.6/app/views/devise_token_auth/omniauth_external_window.html.erb +38 -0
  26. data/devise_token_auth-1.2.6/config/locales/da-DK.yml +52 -0
  27. data/devise_token_auth-1.2.6/config/locales/de.yml +51 -0
  28. data/devise_token_auth-1.2.6/config/locales/en.yml +60 -0
  29. data/devise_token_auth-1.2.6/config/locales/es.yml +51 -0
  30. data/devise_token_auth-1.2.6/config/locales/fa.yml +60 -0
  31. data/devise_token_auth-1.2.6/config/locales/fr.yml +51 -0
  32. data/devise_token_auth-1.2.6/config/locales/he.yml +52 -0
  33. data/devise_token_auth-1.2.6/config/locales/it.yml +48 -0
  34. data/devise_token_auth-1.2.6/config/locales/ja.yml +60 -0
  35. data/devise_token_auth-1.2.6/config/locales/ko.yml +51 -0
  36. data/devise_token_auth-1.2.6/config/locales/nl.yml +32 -0
  37. data/devise_token_auth-1.2.6/config/locales/pl.yml +51 -0
  38. data/devise_token_auth-1.2.6/config/locales/pt-BR.yml +48 -0
  39. data/devise_token_auth-1.2.6/config/locales/pt.yml +51 -0
  40. data/devise_token_auth-1.2.6/config/locales/ro.yml +48 -0
  41. data/devise_token_auth-1.2.6/config/locales/ru.yml +52 -0
  42. data/devise_token_auth-1.2.6/config/locales/sq.yml +48 -0
  43. data/devise_token_auth-1.2.6/config/locales/sv.yml +52 -0
  44. data/devise_token_auth-1.2.6/config/locales/uk.yml +61 -0
  45. data/devise_token_auth-1.2.6/config/locales/vi.yml +52 -0
  46. data/devise_token_auth-1.2.6/config/locales/zh-CN.yml +48 -0
  47. data/devise_token_auth-1.2.6/config/locales/zh-HK.yml +50 -0
  48. data/devise_token_auth-1.2.6/config/locales/zh-TW.yml +50 -0
  49. data/devise_token_auth-1.2.6/lib/devise_token_auth/blacklist.rb +6 -0
  50. data/devise_token_auth-1.2.6/lib/devise_token_auth/controllers/helpers.rb +157 -0
  51. data/devise_token_auth-1.2.6/lib/devise_token_auth/controllers/url_helpers.rb +10 -0
  52. data/devise_token_auth-1.2.6/lib/devise_token_auth/engine.rb +105 -0
  53. data/devise_token_auth-1.2.6/lib/devise_token_auth/errors.rb +8 -0
  54. data/devise_token_auth-1.2.6/lib/devise_token_auth/rails/routes.rb +122 -0
  55. data/devise_token_auth-1.2.6/lib/devise_token_auth/token_factory.rb +126 -0
  56. data/devise_token_auth-1.2.6/lib/devise_token_auth/url.rb +44 -0
  57. data/devise_token_auth-1.2.6/lib/devise_token_auth/version.rb +5 -0
  58. data/devise_token_auth-1.2.6/lib/devise_token_auth.rb +162 -0
  59. data/devise_token_auth-1.2.6/lib/generators/devise_token_auth/USAGE +31 -0
  60. data/devise_token_auth-1.2.6/lib/generators/devise_token_auth/install_generator.rb +91 -0
  61. data/devise_token_auth-1.2.6/lib/generators/devise_token_auth/install_generator_helpers.rb +98 -0
  62. data/devise_token_auth-1.2.6/lib/generators/devise_token_auth/install_mongoid_generator.rb +46 -0
  63. data/devise_token_auth-1.2.6/lib/generators/devise_token_auth/install_views_generator.rb +18 -0
  64. data/devise_token_auth-1.2.6/lib/generators/devise_token_auth/templates/devise_token_auth.rb +66 -0
  65. data/devise_token_auth-1.2.6/lib/generators/devise_token_auth/templates/devise_token_auth_create_users.rb.erb +49 -0
  66. data/devise_token_auth-1.2.6/lib/generators/devise_token_auth/templates/user.rb.erb +9 -0
  67. data/devise_token_auth-1.2.6/lib/generators/devise_token_auth/templates/user_mongoid.rb.erb +56 -0
  68. data/devise_token_auth-1.2.6/lib/tasks/devise_token_auth_tasks.rake +6 -0
  69. data/devise_token_auth-1.2.6/test/controllers/custom/custom_confirmations_controller_test.rb +25 -0
  70. data/devise_token_auth-1.2.6/test/controllers/custom/custom_omniauth_callbacks_controller_test.rb +33 -0
  71. data/devise_token_auth-1.2.6/test/controllers/custom/custom_passwords_controller_test.rb +79 -0
  72. data/devise_token_auth-1.2.6/test/controllers/custom/custom_registrations_controller_test.rb +63 -0
  73. data/devise_token_auth-1.2.6/test/controllers/custom/custom_sessions_controller_test.rb +39 -0
  74. data/devise_token_auth-1.2.6/test/controllers/custom/custom_token_validations_controller_test.rb +42 -0
  75. data/devise_token_auth-1.2.6/test/controllers/demo_group_controller_test.rb +151 -0
  76. data/devise_token_auth-1.2.6/test/controllers/demo_mang_controller_test.rb +313 -0
  77. data/devise_token_auth-1.2.6/test/controllers/demo_user_controller_test.rb +658 -0
  78. data/devise_token_auth-1.2.6/test/controllers/devise_token_auth/confirmations_controller_test.rb +275 -0
  79. data/devise_token_auth-1.2.6/test/controllers/devise_token_auth/omniauth_callbacks_controller_test.rb +438 -0
  80. data/devise_token_auth-1.2.6/test/controllers/devise_token_auth/passwords_controller_test.rb +893 -0
  81. data/devise_token_auth-1.2.6/test/controllers/devise_token_auth/registrations_controller_test.rb +920 -0
  82. data/devise_token_auth-1.2.6/test/controllers/devise_token_auth/sessions_controller_test.rb +605 -0
  83. data/devise_token_auth-1.2.6/test/controllers/devise_token_auth/token_validations_controller_test.rb +142 -0
  84. data/devise_token_auth-1.2.6/test/controllers/devise_token_auth/unlocks_controller_test.rb +235 -0
  85. data/devise_token_auth-1.2.6/test/controllers/overrides/confirmations_controller_test.rb +47 -0
  86. data/devise_token_auth-1.2.6/test/controllers/overrides/omniauth_callbacks_controller_test.rb +53 -0
  87. data/devise_token_auth-1.2.6/test/controllers/overrides/passwords_controller_test.rb +64 -0
  88. data/devise_token_auth-1.2.6/test/controllers/overrides/registrations_controller_test.rb +46 -0
  89. data/devise_token_auth-1.2.6/test/controllers/overrides/sessions_controller_test.rb +35 -0
  90. data/devise_token_auth-1.2.6/test/controllers/overrides/token_validations_controller_test.rb +43 -0
  91. data/devise_token_auth-1.2.6/test/dummy/README.rdoc +28 -0
  92. data/devise_token_auth-1.2.6/test/dummy/app/active_record/confirmable_user.rb +11 -0
  93. data/devise_token_auth-1.2.6/test/dummy/app/active_record/lockable_user.rb +7 -0
  94. data/devise_token_auth-1.2.6/test/dummy/app/active_record/mang.rb +5 -0
  95. data/devise_token_auth-1.2.6/test/dummy/app/active_record/only_email_user.rb +7 -0
  96. data/devise_token_auth-1.2.6/test/dummy/app/active_record/scoped_user.rb +9 -0
  97. data/devise_token_auth-1.2.6/test/dummy/app/active_record/unconfirmable_user.rb +9 -0
  98. data/devise_token_auth-1.2.6/test/dummy/app/active_record/unregisterable_user.rb +9 -0
  99. data/devise_token_auth-1.2.6/test/dummy/app/active_record/user.rb +6 -0
  100. data/devise_token_auth-1.2.6/test/dummy/app/controllers/application_controller.rb +14 -0
  101. data/devise_token_auth-1.2.6/test/dummy/app/controllers/auth_origin_controller.rb +7 -0
  102. data/devise_token_auth-1.2.6/test/dummy/app/controllers/custom/confirmations_controller.rb +13 -0
  103. data/devise_token_auth-1.2.6/test/dummy/app/controllers/custom/omniauth_callbacks_controller.rb +13 -0
  104. data/devise_token_auth-1.2.6/test/dummy/app/controllers/custom/passwords_controller.rb +39 -0
  105. data/devise_token_auth-1.2.6/test/dummy/app/controllers/custom/registrations_controller.rb +39 -0
  106. data/devise_token_auth-1.2.6/test/dummy/app/controllers/custom/sessions_controller.rb +29 -0
  107. data/devise_token_auth-1.2.6/test/dummy/app/controllers/custom/token_validations_controller.rb +19 -0
  108. data/devise_token_auth-1.2.6/test/dummy/app/controllers/demo_group_controller.rb +15 -0
  109. data/devise_token_auth-1.2.6/test/dummy/app/controllers/demo_mang_controller.rb +14 -0
  110. data/devise_token_auth-1.2.6/test/dummy/app/controllers/demo_user_controller.rb +27 -0
  111. data/devise_token_auth-1.2.6/test/dummy/app/controllers/overrides/confirmations_controller.rb +29 -0
  112. data/devise_token_auth-1.2.6/test/dummy/app/controllers/overrides/omniauth_callbacks_controller.rb +16 -0
  113. data/devise_token_auth-1.2.6/test/dummy/app/controllers/overrides/passwords_controller.rb +36 -0
  114. data/devise_token_auth-1.2.6/test/dummy/app/controllers/overrides/registrations_controller.rb +29 -0
  115. data/devise_token_auth-1.2.6/test/dummy/app/controllers/overrides/sessions_controller.rb +36 -0
  116. data/devise_token_auth-1.2.6/test/dummy/app/controllers/overrides/token_validations_controller.rb +23 -0
  117. data/devise_token_auth-1.2.6/test/dummy/app/helpers/application_helper.rb +1058 -0
  118. data/devise_token_auth-1.2.6/test/dummy/app/models/concerns/favorite_color.rb +19 -0
  119. data/devise_token_auth-1.2.6/test/dummy/app/mongoid/confirmable_user.rb +52 -0
  120. data/devise_token_auth-1.2.6/test/dummy/app/mongoid/lockable_user.rb +38 -0
  121. data/devise_token_auth-1.2.6/test/dummy/app/mongoid/mang.rb +46 -0
  122. data/devise_token_auth-1.2.6/test/dummy/app/mongoid/only_email_user.rb +33 -0
  123. data/devise_token_auth-1.2.6/test/dummy/app/mongoid/scoped_user.rb +50 -0
  124. data/devise_token_auth-1.2.6/test/dummy/app/mongoid/unconfirmable_user.rb +44 -0
  125. data/devise_token_auth-1.2.6/test/dummy/app/mongoid/unregisterable_user.rb +47 -0
  126. data/devise_token_auth-1.2.6/test/dummy/app/mongoid/user.rb +49 -0
  127. data/devise_token_auth-1.2.6/test/dummy/app/views/layouts/application.html.erb +12 -0
  128. data/devise_token_auth-1.2.6/test/dummy/config/application.rb +48 -0
  129. data/devise_token_auth-1.2.6/test/dummy/config/application.yml.bk +0 -0
  130. data/devise_token_auth-1.2.6/test/dummy/config/boot.rb +11 -0
  131. data/devise_token_auth-1.2.6/test/dummy/config/environment.rb +7 -0
  132. data/devise_token_auth-1.2.6/test/dummy/config/environments/development.rb +36 -0
  133. data/devise_token_auth-1.2.6/test/dummy/config/environments/production.rb +68 -0
  134. data/devise_token_auth-1.2.6/test/dummy/config/environments/test.rb +58 -0
  135. data/devise_token_auth-1.2.6/test/dummy/config/initializers/backtrace_silencers.rb +9 -0
  136. data/devise_token_auth-1.2.6/test/dummy/config/initializers/cookies_serializer.rb +5 -0
  137. data/devise_token_auth-1.2.6/test/dummy/config/initializers/devise.rb +290 -0
  138. data/devise_token_auth-1.2.6/test/dummy/config/initializers/devise_token_auth.rb +55 -0
  139. data/devise_token_auth-1.2.6/test/dummy/config/initializers/figaro.rb +3 -0
  140. data/devise_token_auth-1.2.6/test/dummy/config/initializers/filter_parameter_logging.rb +6 -0
  141. data/devise_token_auth-1.2.6/test/dummy/config/initializers/inflections.rb +18 -0
  142. data/devise_token_auth-1.2.6/test/dummy/config/initializers/mime_types.rb +6 -0
  143. data/devise_token_auth-1.2.6/test/dummy/config/initializers/omniauth.rb +11 -0
  144. data/devise_token_auth-1.2.6/test/dummy/config/initializers/session_store.rb +5 -0
  145. data/devise_token_auth-1.2.6/test/dummy/config/initializers/wrap_parameters.rb +16 -0
  146. data/devise_token_auth-1.2.6/test/dummy/config/routes.rb +57 -0
  147. data/devise_token_auth-1.2.6/test/dummy/config/spring.rb +3 -0
  148. data/devise_token_auth-1.2.6/test/dummy/config.ru +18 -0
  149. data/devise_token_auth-1.2.6/test/dummy/db/migrate/20140715061447_devise_token_auth_create_users.rb +58 -0
  150. data/devise_token_auth-1.2.6/test/dummy/db/migrate/20140715061805_devise_token_auth_create_mangs.rb +57 -0
  151. data/devise_token_auth-1.2.6/test/dummy/db/migrate/20140829044006_add_operating_thetan_to_user.rb +8 -0
  152. data/devise_token_auth-1.2.6/test/dummy/db/migrate/20140916224624_add_favorite_color_to_mangs.rb +7 -0
  153. data/devise_token_auth-1.2.6/test/dummy/db/migrate/20141222035835_devise_token_auth_create_only_email_users.rb +55 -0
  154. data/devise_token_auth-1.2.6/test/dummy/db/migrate/20141222053502_devise_token_auth_create_unregisterable_users.rb +56 -0
  155. data/devise_token_auth-1.2.6/test/dummy/db/migrate/20150708104536_devise_token_auth_create_unconfirmable_users.rb +56 -0
  156. data/devise_token_auth-1.2.6/test/dummy/db/migrate/20160103235141_devise_token_auth_create_scoped_users.rb +56 -0
  157. data/devise_token_auth-1.2.6/test/dummy/db/migrate/20160629184441_devise_token_auth_create_lockable_users.rb +56 -0
  158. data/devise_token_auth-1.2.6/test/dummy/db/migrate/20190924101113_devise_token_auth_create_confirmable_users.rb +49 -0
  159. data/devise_token_auth-1.2.6/test/dummy/db/schema.rb +198 -0
  160. data/devise_token_auth-1.2.6/test/dummy/lib/migration_database_helper.rb +43 -0
  161. data/devise_token_auth-1.2.6/test/dummy/tmp/generators/app/models/user.rb +11 -0
  162. data/devise_token_auth-1.2.6/test/dummy/tmp/generators/config/initializers/devise_token_auth.rb +66 -0
  163. data/devise_token_auth-1.2.6/test/dummy/tmp/generators/db/migrate/20240519164408_devise_token_auth_create_users.rb +49 -0
  164. data/devise_token_auth-1.2.6/test/factories/users.rb +41 -0
  165. data/devise_token_auth-1.2.6/test/lib/devise_token_auth/blacklist_test.rb +19 -0
  166. data/devise_token_auth-1.2.6/test/lib/devise_token_auth/rails/custom_routes_test.rb +29 -0
  167. data/devise_token_auth-1.2.6/test/lib/devise_token_auth/rails/routes_test.rb +87 -0
  168. data/devise_token_auth-1.2.6/test/lib/devise_token_auth/token_factory_test.rb +191 -0
  169. data/devise_token_auth-1.2.6/test/lib/devise_token_auth/url_test.rb +26 -0
  170. data/devise_token_auth-1.2.6/test/lib/generators/devise_token_auth/install_generator_test.rb +217 -0
  171. data/devise_token_auth-1.2.6/test/lib/generators/devise_token_auth/install_generator_with_namespace_test.rb +222 -0
  172. data/devise_token_auth-1.2.6/test/lib/generators/devise_token_auth/install_views_generator_test.rb +25 -0
  173. data/devise_token_auth-1.2.6/test/models/concerns/mongoid_support_test.rb +31 -0
  174. data/devise_token_auth-1.2.6/test/models/concerns/tokens_serialization_test.rb +104 -0
  175. data/devise_token_auth-1.2.6/test/models/confirmable_user_test.rb +35 -0
  176. data/devise_token_auth-1.2.6/test/models/only_email_user_test.rb +29 -0
  177. data/devise_token_auth-1.2.6/test/models/user_test.rb +224 -0
  178. data/devise_token_auth-1.2.6/test/support/controllers/routes.rb +43 -0
  179. data/devise_token_auth-1.2.6/test/test_helper.rb +134 -0
  180. data/nano-smart-gem.gemspec +12 -0
  181. metadata +220 -0
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ class <%= user_class %>
4
+ include Mongoid::Document
5
+ include Mongoid::Timestamps
6
+ include Mongoid::Locker
7
+
8
+ field :locker_locked_at, type: Time
9
+ field :locker_locked_until, type: Time
10
+
11
+ locker locked_at_field: :locker_locked_at,
12
+ locked_until_field: :locker_locked_until
13
+
14
+ ## Database authenticatable
15
+ field :email, type: String, default: ''
16
+ field :encrypted_password, type: String, default: ''
17
+
18
+ ## Recoverable
19
+ field :reset_password_token, type: String
20
+ field :reset_password_sent_at, type: Time
21
+ field :reset_password_redirect_url, type: String
22
+ field :allow_password_change, type: Boolean, default: false
23
+
24
+ ## Rememberable
25
+ field :remember_created_at, type: Time
26
+
27
+ ## Confirmable
28
+ field :confirmation_token, type: String
29
+ field :confirmed_at, type: Time
30
+ field :confirmation_sent_at, type: Time
31
+ field :unconfirmed_email, type: String # Only if using reconfirmable
32
+
33
+ ## Lockable
34
+ # field :failed_attempts, type: Integer, default: 0 # Only if lock strategy is :failed_attempts
35
+ # field :unlock_token, type: String # Only if unlock strategy is :email or :both
36
+ # field :locked_at, type: Time
37
+
38
+ ## Required
39
+ field :provider, type: String
40
+ field :uid, type: String, default: ''
41
+
42
+ ## Tokens
43
+ field :tokens, type: Hash, default: {}
44
+
45
+ # Include default devise modules. Others available are:
46
+ # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
47
+ devise :database_authenticatable, :registerable,
48
+ :recoverable, :rememberable, :validatable
49
+ include DeviseTokenAuth::Concerns::User
50
+
51
+ index({ email: 1 }, { name: 'email_index', unique: true, background: true })
52
+ index({ reset_password_token: 1 }, { name: 'reset_password_token_index', unique: true, sparse: true, background: true })
53
+ index({ confirmation_token: 1 }, { name: 'confirmation_token_index', unique: true, sparse: true, background: true })
54
+ index({ uid: 1, provider: 1}, { name: 'uid_provider_index', unique: true, background: true })
55
+ # index({ unlock_token: 1 }, { name: 'unlock_token_index', unique: true, sparse: true, background: true })
56
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ # desc "Explaining what the task does"
4
+ # task :devise_token_auth do
5
+ # # Task goes here
6
+ # end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ class Custom::ConfirmationsControllerTest < ActionController::TestCase
6
+ describe Custom::ConfirmationsController do
7
+ include CustomControllersRoutes
8
+
9
+ before do
10
+ @redirect_url = Faker::Internet.url
11
+ @new_user = create(:user)
12
+ @new_user.send_confirmation_instructions(redirect_url: @redirect_url)
13
+ @mail = ActionMailer::Base.deliveries.last
14
+ @token = @mail.body.match(/confirmation_token=([^&]*)[&"]/)[1]
15
+ @client_config = @mail.body.match(/config=([^&]*)&/)[1]
16
+
17
+ get :show,
18
+ params: { confirmation_token: @token, redirect_url: @redirect_url }
19
+ end
20
+
21
+ test 'yield resource to block on show success' do
22
+ assert @controller.show_block_called?, 'show failed to yield resource to provided block'
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ class Custom::OmniauthCallbacksControllerTest < ActionDispatch::IntegrationTest
6
+ describe Custom::OmniauthCallbacksController do
7
+ include CustomControllersRoutes
8
+
9
+ setup do
10
+ OmniAuth.config.test_mode = true
11
+ OmniAuth.config.mock_auth[:facebook] = OmniAuth::AuthHash.new(
12
+ provider: 'facebook',
13
+ uid: '123545',
14
+ info: {
15
+ name: 'swong',
16
+ email: 'swongsong@yandex.ru'
17
+ }
18
+ )
19
+ end
20
+
21
+ test 'yield resource to block on omniauth_success success' do
22
+ @redirect_url = 'http://ng-token-auth.dev/'
23
+ post '/nice_user_auth/facebook',
24
+ params: { auth_origin_url: @redirect_url,
25
+ omniauth_window_type: 'newWindow' }
26
+
27
+ follow_all_redirects!
28
+
29
+ assert @controller.omniauth_success_block_called?,
30
+ 'omniauth_success failed to yield resource to provided block'
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ class Custom::PasswordsControllerTest < ActionController::TestCase
6
+ describe Custom::PasswordsController do
7
+ include CustomControllersRoutes
8
+
9
+ before do
10
+ @resource = create(:user, :confirmed)
11
+ @redirect_url = 'http://ng-token-auth.dev'
12
+ end
13
+
14
+ test 'yield resource to block on create success' do
15
+ post :create,
16
+ params: { email: @resource.email,
17
+ redirect_url: @redirect_url }
18
+
19
+ @mail = ActionMailer::Base.deliveries.last
20
+ @resource.reload
21
+
22
+ @mail_config_name = CGI.unescape(@mail.body.match(/config=([^&]*)&/)[1])
23
+ @mail_redirect_url = CGI.unescape(@mail.body.match(/redirect_url=([^&]*)&/)[1])
24
+ @mail_reset_token = @mail.body.match(/reset_password_token=(.*)\"/)[1]
25
+
26
+ assert @controller.create_block_called?,
27
+ 'create failed to yield resource to provided block'
28
+ end
29
+
30
+ test 'yield resource to block on edit success' do
31
+ @resource = create(:user)
32
+ @redirect_url = 'http://ng-token-auth.dev'
33
+
34
+ post :create,
35
+ params: { email: @resource.email,
36
+ redirect_url: @redirect_url },
37
+ xhr: true
38
+
39
+ @mail = ActionMailer::Base.deliveries.last
40
+ @resource.reload
41
+
42
+ @mail_config_name = CGI.unescape(@mail.body.match(/config=([^&]*)&/)[1])
43
+ @mail_redirect_url = CGI.unescape(@mail.body.match(/redirect_url=([^&]*)&/)[1])
44
+ @mail_reset_token = @mail.body.match(/reset_password_token=(.*)\"/)[1]
45
+
46
+ get :edit,
47
+ params: { reset_password_token: @mail_reset_token,
48
+ redirect_url: @mail_redirect_url },
49
+ xhr: true
50
+ @resource.reload
51
+ assert @controller.edit_block_called?,
52
+ 'edit failed to yield resource to provided block'
53
+ end
54
+
55
+ test 'yield resource to block on update success' do
56
+ @auth_headers = @resource.create_new_auth_token
57
+ request.headers.merge!(@auth_headers)
58
+ @new_password = Faker::Internet.password
59
+ put :update,
60
+ params: { password: @new_password,
61
+ password_confirmation: @new_password }
62
+ assert @controller.update_block_called?, 'update failed to yield resource to provided block'
63
+ end
64
+
65
+ test 'yield resource to block on update success with custom json' do
66
+ @auth_headers = @resource.create_new_auth_token
67
+ request.headers.merge!(@auth_headers)
68
+ @new_password = Faker::Internet.password
69
+ put :update,
70
+ params: { password: @new_password,
71
+ password_confirmation: @new_password }
72
+
73
+ @data = JSON.parse(response.body)
74
+
75
+ assert @controller.update_block_called?, 'update failed to yield resource to provided block'
76
+ assert_equal @data['custom'], 'foo'
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ class Custom::RegistrationsControllerTest < ActionDispatch::IntegrationTest
6
+ describe Custom::RegistrationsController do
7
+ include CustomControllersRoutes
8
+
9
+ before do
10
+ @create_params = attributes_for(:user,
11
+ confirm_success_url: Faker::Internet.url,
12
+ unpermitted_param: '(x_x)')
13
+
14
+ @existing_user = create(:user, :confirmed)
15
+ @auth_headers = @existing_user.create_new_auth_token
16
+ @client_id = @auth_headers['client']
17
+
18
+ # ensure request is not treated as batch request
19
+ age_token(@existing_user, @client_id)
20
+ end
21
+
22
+ test 'yield resource to block on create success' do
23
+ post '/nice_user_auth', params: @create_params
24
+ assert @controller.create_block_called?,
25
+ 'create failed to yield resource to provided block'
26
+ end
27
+
28
+ test 'yield resource to block on create success with custom json' do
29
+ post '/nice_user_auth', params: @create_params
30
+
31
+ @data = JSON.parse(response.body)
32
+
33
+ assert @controller.create_block_called?,
34
+ 'create failed to yield resource to provided block'
35
+ assert_equal @data['custom'], 'foo'
36
+ end
37
+
38
+ test 'yield resource to block on update success' do
39
+ put '/nice_user_auth',
40
+ params: {
41
+ nickname: "Ol' Sunshine-face"
42
+ },
43
+ headers: @auth_headers
44
+ assert @controller.update_block_called?,
45
+ 'update failed to yield resource to provided block'
46
+ end
47
+
48
+ test 'yield resource to block on destroy success' do
49
+ delete '/nice_user_auth', headers: @auth_headers
50
+ assert @controller.destroy_block_called?,
51
+ 'destroy failed to yield resource to provided block'
52
+ end
53
+
54
+ describe 'when overriding #build_resource' do
55
+ test 'it fails' do
56
+ Custom::RegistrationsController.any_instance.stubs(:build_resource).returns(nil)
57
+ assert_raises DeviseTokenAuth::Errors::NoResourceDefinedError do
58
+ post '/nice_user_auth', params: @create_params
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ class Custom::SessionsControllerTest < ActionController::TestCase
6
+ describe Custom::SessionsController do
7
+ include CustomControllersRoutes
8
+
9
+ before do
10
+ @existing_user = create(:user, :confirmed)
11
+ end
12
+
13
+ test 'yield resource to block on create success' do
14
+ post :create,
15
+ params: {
16
+ email: @existing_user.email,
17
+ password: @existing_user.password
18
+ }
19
+ assert @controller.create_block_called?,
20
+ 'create failed to yield resource to provided block'
21
+ end
22
+
23
+ test 'yield resource to block on destroy success' do
24
+ @auth_headers = @existing_user.create_new_auth_token
25
+ request.headers.merge!(@auth_headers)
26
+ delete :destroy, format: :json
27
+ assert @controller.destroy_block_called?,
28
+ 'destroy failed to yield resource to provided block'
29
+ end
30
+
31
+ test 'render method override' do
32
+ post :create,
33
+ params: { email: @existing_user.email,
34
+ password: @existing_user.password }
35
+ @data = JSON.parse(response.body)
36
+ assert_equal @data['custom'], 'foo'
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ class Custom::TokenValidationsControllerTest < ActionDispatch::IntegrationTest
6
+ describe Custom::TokenValidationsController do
7
+ include CustomControllersRoutes
8
+
9
+ before do
10
+ @resource = create(:user, :confirmed)
11
+
12
+ @auth_headers = @resource.create_new_auth_token
13
+
14
+ @token = @auth_headers['access-token']
15
+ @client_id = @auth_headers['client']
16
+ @expiry = @auth_headers['expiry']
17
+
18
+ # ensure that request is not treated as batch request
19
+ age_token(@resource, @client_id)
20
+ end
21
+
22
+ test 'yield resource to block on validate_token success' do
23
+ get '/nice_user_auth/validate_token',
24
+ params: {},
25
+ headers: @auth_headers
26
+ assert @controller.validate_token_block_called?,
27
+ 'validate_token failed to yield resource to provided block'
28
+ end
29
+
30
+ test 'yield resource to block on validate_token success with custom json' do
31
+ get '/nice_user_auth/validate_token',
32
+ params: {},
33
+ headers: @auth_headers
34
+
35
+ @data = JSON.parse(response.body)
36
+
37
+ assert @controller.validate_token_block_called?,
38
+ 'validate_token failed to yield resource to provided block'
39
+ assert_equal @data['custom'], 'foo'
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,151 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ # was the web request successful?
6
+ # was the user redirected to the right page?
7
+ # was the user successfully authenticated?
8
+ # was the correct object stored in the response?
9
+ # was the appropriate message delivered in the json payload?
10
+
11
+ class DemoGroupControllerTest < ActionDispatch::IntegrationTest
12
+ describe DemoGroupController do
13
+ describe 'Token access' do
14
+ before do
15
+ # user
16
+ @resource = create(:user, :confirmed)
17
+
18
+ @resource_auth_headers = @resource.create_new_auth_token
19
+
20
+ @resource_token = @resource_auth_headers['access-token']
21
+ @resource_client_id = @resource_auth_headers['client']
22
+ @resource_expiry = @resource_auth_headers['expiry']
23
+
24
+ # mang
25
+ @mang = create(:mang_user, :confirmed)
26
+
27
+ @mang_auth_headers = @mang.create_new_auth_token
28
+
29
+ @mang_token = @mang_auth_headers['access-token']
30
+ @mang_client_id = @mang_auth_headers['client']
31
+ @mang_expiry = @mang_auth_headers['expiry']
32
+ end
33
+
34
+ describe 'user access' do
35
+ before do
36
+ # ensure that request is not treated as batch request
37
+ age_token(@resource, @resource_client_id)
38
+
39
+ get '/demo/members_only_group',
40
+ params: {},
41
+ headers: @resource_auth_headers
42
+
43
+ @resp_token = response.headers['access-token']
44
+ @resp_client_id = response.headers['client']
45
+ @resp_expiry = response.headers['expiry']
46
+ @resp_uid = response.headers['uid']
47
+ end
48
+
49
+ test 'request is successful' do
50
+ assert_equal 200, response.status
51
+ end
52
+
53
+ describe 'devise mappings' do
54
+ it 'should define current_user' do
55
+ assert_equal @resource, @controller.current_user
56
+ end
57
+
58
+ it 'should define user_signed_in?' do
59
+ assert @controller.user_signed_in?
60
+ end
61
+
62
+ it 'should not define current_mang' do
63
+ refute_equal @resource, @controller.current_mang
64
+ end
65
+
66
+ it 'should define current_member' do
67
+ assert_equal @resource, @controller.current_member
68
+ end
69
+
70
+ it 'should define current_members' do
71
+ assert @controller.current_members.include? @resource
72
+ end
73
+
74
+ it 'should define member_signed_in?' do
75
+ assert @controller.current_members.include? @resource
76
+ end
77
+
78
+ it 'should define render_authenticate_error' do
79
+ assert @controller.methods.include?(:render_authenticate_error)
80
+ end
81
+ end
82
+ end
83
+
84
+ describe 'mang access' do
85
+ before do
86
+ # ensure that request is not treated as batch request
87
+ age_token(@mang, @mang_client_id)
88
+
89
+ get '/demo/members_only_group',
90
+ params: {},
91
+ headers: @mang_auth_headers
92
+
93
+ @resp_token = response.headers['access-token']
94
+ @resp_client_id = response.headers['client']
95
+ @resp_expiry = response.headers['expiry']
96
+ @resp_uid = response.headers['uid']
97
+ end
98
+
99
+ test 'request is successful' do
100
+ assert_equal 200, response.status
101
+ end
102
+
103
+ describe 'devise mappings' do
104
+ it 'should define current_mang' do
105
+ assert_equal @mang, @controller.current_mang
106
+ end
107
+
108
+ it 'should define mang_signed_in?' do
109
+ assert @controller.mang_signed_in?
110
+ end
111
+
112
+ it 'should not define current_mang' do
113
+ refute_equal @mang, @controller.current_user
114
+ end
115
+
116
+ it 'should define current_member' do
117
+ assert_equal @mang, @controller.current_member
118
+ end
119
+
120
+ it 'should define current_members' do
121
+ assert @controller.current_members.include? @mang
122
+ end
123
+
124
+ it 'should define member_signed_in?' do
125
+ assert @controller.current_members.include? @mang
126
+ end
127
+
128
+ it 'should define render_authenticate_error' do
129
+ assert @controller.methods.include?(:render_authenticate_error)
130
+ end
131
+ end
132
+ end
133
+
134
+ describe 'failed access' do
135
+ before do
136
+ get '/demo/members_only_group',
137
+ params: {},
138
+ headers: @mang_auth_headers.merge('access-token' => 'bogus')
139
+ end
140
+
141
+ it 'should not return any auth headers' do
142
+ refute response.headers['access-token']
143
+ end
144
+
145
+ it 'should return error: unauthorized status' do
146
+ assert_equal 401, response.status
147
+ end
148
+ end
149
+ end
150
+ end
151
+ end