sorcery 0.8.2 → 0.9.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.
Files changed (353) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +56 -0
  3. data/.travis.yml +130 -1
  4. data/CHANGELOG.md +270 -0
  5. data/Gemfile +17 -22
  6. data/README.md +371 -0
  7. data/Rakefile +3 -79
  8. data/gemfiles/active_record-rails40.gemfile +7 -0
  9. data/gemfiles/active_record-rails41.gemfile +7 -0
  10. data/gemfiles/mongo_mapper-rails40.gemfile +9 -0
  11. data/gemfiles/mongo_mapper-rails41.gemfile +9 -0
  12. data/gemfiles/mongoid-rails40.gemfile +9 -0
  13. data/gemfiles/mongoid-rails41.gemfile +9 -0
  14. data/gemfiles/mongoid3-rails32.gemfile +9 -0
  15. data/lib/generators/sorcery/USAGE +1 -1
  16. data/lib/generators/sorcery/helpers.rb +40 -0
  17. data/lib/generators/sorcery/install_generator.rb +38 -20
  18. data/lib/generators/sorcery/templates/initializer.rb +35 -10
  19. data/lib/generators/sorcery/templates/migration/activity_logging.rb +2 -11
  20. data/lib/generators/sorcery/templates/migration/brute_force_protection.rb +3 -7
  21. data/lib/generators/sorcery/templates/migration/core.rb +5 -8
  22. data/lib/generators/sorcery/templates/migration/external.rb +3 -5
  23. data/lib/generators/sorcery/templates/migration/remember_me.rb +2 -9
  24. data/lib/generators/sorcery/templates/migration/reset_password.rb +2 -10
  25. data/lib/generators/sorcery/templates/migration/user_activation.rb +2 -10
  26. data/lib/sorcery/adapters/active_record_adapter.rb +120 -0
  27. data/lib/sorcery/adapters/base_adapter.rb +30 -0
  28. data/lib/sorcery/adapters/data_mapper_adapter.rb +176 -0
  29. data/lib/sorcery/adapters/mongo_mapper_adapter.rb +110 -0
  30. data/lib/sorcery/adapters/mongoid_adapter.rb +97 -0
  31. data/lib/sorcery/controller/config.rb +65 -0
  32. data/lib/sorcery/controller/submodules/activity_logging.rb +16 -21
  33. data/lib/sorcery/controller/submodules/brute_force_protection.rb +6 -6
  34. data/lib/sorcery/controller/submodules/external.rb +42 -43
  35. data/lib/sorcery/controller/submodules/remember_me.rb +5 -5
  36. data/lib/sorcery/controller/submodules/session_timeout.rb +11 -7
  37. data/lib/sorcery/controller.rb +22 -74
  38. data/lib/sorcery/model/config.rb +96 -0
  39. data/lib/sorcery/model/submodules/activity_logging.rb +30 -13
  40. data/lib/sorcery/model/submodules/brute_force_protection.rb +25 -27
  41. data/lib/sorcery/model/submodules/external.rb +53 -9
  42. data/lib/sorcery/model/submodules/remember_me.rb +15 -19
  43. data/lib/sorcery/model/submodules/reset_password.rb +36 -33
  44. data/lib/sorcery/model/submodules/user_activation.rb +51 -48
  45. data/lib/sorcery/model/temporary_token.rb +4 -4
  46. data/lib/sorcery/model.rb +81 -175
  47. data/lib/sorcery/protocols/oauth.rb +42 -0
  48. data/lib/sorcery/protocols/oauth2.rb +47 -0
  49. data/lib/sorcery/providers/base.rb +38 -0
  50. data/lib/sorcery/providers/facebook.rb +63 -0
  51. data/lib/sorcery/providers/github.rb +51 -0
  52. data/lib/sorcery/providers/google.rb +51 -0
  53. data/lib/sorcery/providers/heroku.rb +57 -0
  54. data/lib/sorcery/providers/jira.rb +77 -0
  55. data/lib/sorcery/providers/linkedin.rb +66 -0
  56. data/lib/sorcery/providers/liveid.rb +53 -0
  57. data/lib/sorcery/providers/salesforce.rb +50 -0
  58. data/lib/sorcery/providers/twitter.rb +59 -0
  59. data/lib/sorcery/providers/vk.rb +63 -0
  60. data/lib/sorcery/providers/xing.rb +64 -0
  61. data/lib/sorcery/test_helpers/internal/rails.rb +17 -6
  62. data/lib/sorcery/test_helpers/internal.rb +27 -6
  63. data/lib/sorcery/test_helpers/rails/controller.rb +21 -0
  64. data/lib/sorcery/test_helpers/rails/integration.rb +26 -0
  65. data/lib/sorcery/version.rb +3 -0
  66. data/lib/sorcery.rb +82 -58
  67. data/sorcery.gemspec +24 -362
  68. data/spec/active_record/user_activation_spec.rb +18 -0
  69. data/spec/active_record/user_activity_logging_spec.rb +17 -0
  70. data/spec/{rails3/spec → active_record}/user_brute_force_protection_spec.rb +6 -5
  71. data/spec/{rails3/spec → active_record}/user_oauth_spec.rb +6 -5
  72. data/spec/{rails3/spec → active_record}/user_remember_me_spec.rb +5 -4
  73. data/spec/{rails3/spec → active_record}/user_reset_password_spec.rb +7 -7
  74. data/spec/active_record/user_spec.rb +37 -0
  75. data/spec/controllers/controller_activity_logging_spec.rb +124 -0
  76. data/spec/controllers/controller_brute_force_protection_spec.rb +43 -0
  77. data/spec/controllers/controller_http_basic_auth_spec.rb +68 -0
  78. data/spec/controllers/controller_oauth2_spec.rb +414 -0
  79. data/spec/controllers/controller_oauth_spec.rb +240 -0
  80. data/spec/controllers/controller_remember_me_spec.rb +117 -0
  81. data/spec/controllers/controller_session_timeout_spec.rb +80 -0
  82. data/spec/controllers/controller_spec.rb +218 -0
  83. data/spec/data_mapper/user_activation_spec.rb +10 -0
  84. data/spec/data_mapper/user_activity_logging_spec.rb +14 -0
  85. data/spec/data_mapper/user_brute_force_protection_spec.rb +9 -0
  86. data/spec/data_mapper/user_oauth_spec.rb +9 -0
  87. data/spec/data_mapper/user_remember_me_spec.rb +8 -0
  88. data/spec/data_mapper/user_reset_password_spec.rb +8 -0
  89. data/spec/data_mapper/user_spec.rb +27 -0
  90. data/spec/mongo_mapper/user_activation_spec.rb +9 -0
  91. data/spec/mongo_mapper/user_activity_logging_spec.rb +8 -0
  92. data/spec/mongo_mapper/user_brute_force_protection_spec.rb +8 -0
  93. data/spec/mongo_mapper/user_oauth_spec.rb +8 -0
  94. data/spec/mongo_mapper/user_remember_me_spec.rb +8 -0
  95. data/spec/mongo_mapper/user_reset_password_spec.rb +8 -0
  96. data/spec/mongo_mapper/user_spec.rb +37 -0
  97. data/spec/mongoid/user_activation_spec.rb +9 -0
  98. data/spec/mongoid/user_activity_logging_spec.rb +8 -0
  99. data/spec/mongoid/user_brute_force_protection_spec.rb +8 -0
  100. data/spec/mongoid/user_oauth_spec.rb +8 -0
  101. data/spec/mongoid/user_remember_me_spec.rb +8 -0
  102. data/spec/mongoid/user_reset_password_spec.rb +8 -0
  103. data/spec/mongoid/user_spec.rb +51 -0
  104. data/spec/orm/active_record.rb +21 -0
  105. data/spec/orm/data_mapper.rb +48 -0
  106. data/spec/orm/mongo_mapper.rb +10 -0
  107. data/spec/orm/mongoid.rb +22 -0
  108. data/spec/{rails3/app/models → rails_app/app/active_record}/user.rb +1 -2
  109. data/spec/rails_app/app/active_record/user_provider.rb +3 -0
  110. data/spec/rails_app/app/controllers/sorcery_controller.rb +285 -0
  111. data/spec/rails_app/app/data_mapper/authentication.rb +8 -0
  112. data/spec/rails_app/app/data_mapper/user.rb +7 -0
  113. data/spec/{rails3_mongo_mapper/app/models → rails_app/app/mongo_mapper}/user.rb +2 -0
  114. data/spec/{rails3_mongoid/app/models → rails_app/app/mongoid}/user.rb +2 -0
  115. data/spec/{rails3_mongo_mapper → rails_app}/config/application.rb +13 -8
  116. data/spec/rails_app/config/boot.rb +4 -0
  117. data/spec/rails_app/config/database.yml +22 -0
  118. data/spec/{rails3_mongo_mapper → rails_app}/config/environments/test.rb +2 -0
  119. data/spec/{rails3_mongoid → rails_app}/config/initializers/session_store.rb +4 -0
  120. data/spec/rails_app/config/routes.rb +51 -0
  121. data/spec/{rails3_mongo_mapper → rails_app}/config.ru +1 -1
  122. data/spec/{rails3 → rails_app}/db/migrate/activation/20101224223622_add_activation_to_users.rb +3 -3
  123. data/spec/{rails3 → rails_app}/db/migrate/core/20101224223620_create_users.rb +2 -2
  124. data/spec/rails_app/db/migrate/external/20101224223628_create_authentications_and_user_providers.rb +22 -0
  125. data/spec/rails_app/log/development.log +1791 -0
  126. data/spec/shared_examples/user_activation_shared_examples.rb +137 -98
  127. data/spec/shared_examples/user_activity_logging_shared_examples.rb +83 -15
  128. data/spec/shared_examples/user_brute_force_protection_shared_examples.rb +140 -21
  129. data/spec/shared_examples/user_oauth_shared_examples.rb +21 -16
  130. data/spec/shared_examples/user_remember_me_shared_examples.rb +36 -24
  131. data/spec/shared_examples/user_reset_password_shared_examples.rb +163 -130
  132. data/spec/shared_examples/user_shared_examples.rb +355 -193
  133. data/spec/sorcery_crypto_providers_spec.rb +74 -72
  134. data/spec/spec_helper.rb +32 -4
  135. metadata +262 -508
  136. data/Gemfile.lock +0 -175
  137. data/README.rdoc +0 -261
  138. data/VERSION +0 -1
  139. data/lib/sorcery/controller/submodules/external/protocols/oauth1.rb +0 -46
  140. data/lib/sorcery/controller/submodules/external/protocols/oauth2.rb +0 -49
  141. data/lib/sorcery/controller/submodules/external/providers/base.rb +0 -21
  142. data/lib/sorcery/controller/submodules/external/providers/facebook.rb +0 -98
  143. data/lib/sorcery/controller/submodules/external/providers/github.rb +0 -92
  144. data/lib/sorcery/controller/submodules/external/providers/google.rb +0 -91
  145. data/lib/sorcery/controller/submodules/external/providers/linkedin.rb +0 -102
  146. data/lib/sorcery/controller/submodules/external/providers/liveid.rb +0 -92
  147. data/lib/sorcery/controller/submodules/external/providers/twitter.rb +0 -93
  148. data/lib/sorcery/controller/submodules/external/providers/vk.rb +0 -100
  149. data/lib/sorcery/controller/submodules/external/providers/xing.rb +0 -97
  150. data/lib/sorcery/model/adapters/active_record.rb +0 -49
  151. data/lib/sorcery/model/adapters/mongo_mapper.rb +0 -56
  152. data/lib/sorcery/model/adapters/mongoid.rb +0 -88
  153. data/lib/sorcery/test_helpers/rails.rb +0 -16
  154. data/lib/sorcery/test_helpers.rb +0 -5
  155. data/spec/Gemfile +0 -12
  156. data/spec/Gemfile.lock +0 -129
  157. data/spec/README.md +0 -31
  158. data/spec/Rakefile +0 -12
  159. data/spec/rails3/.gitignore +0 -4
  160. data/spec/rails3/.rspec +0 -1
  161. data/spec/rails3/Gemfile +0 -15
  162. data/spec/rails3/Gemfile.lock +0 -162
  163. data/spec/rails3/README +0 -256
  164. data/spec/rails3/Rakefile +0 -11
  165. data/spec/rails3/app/controllers/application_controller.rb +0 -208
  166. data/spec/rails3/config/application.rb +0 -46
  167. data/spec/rails3/config/boot.rb +0 -13
  168. data/spec/rails3/config/database.yml +0 -27
  169. data/spec/rails3/config/environments/development.rb +0 -26
  170. data/spec/rails3/config/environments/in_memory.rb +0 -35
  171. data/spec/rails3/config/environments/production.rb +0 -49
  172. data/spec/rails3/config/environments/test.rb +0 -35
  173. data/spec/rails3/config/initializers/session_store.rb +0 -8
  174. data/spec/rails3/config/routes.rb +0 -59
  175. data/spec/rails3/config.ru +0 -4
  176. data/spec/rails3/db/migrate/external/20101224223628_create_authentications.rb +0 -14
  177. data/spec/rails3/lib/tasks/.gitkeep +0 -0
  178. data/spec/rails3/public/404.html +0 -26
  179. data/spec/rails3/public/422.html +0 -26
  180. data/spec/rails3/public/500.html +0 -26
  181. data/spec/rails3/public/favicon.ico +0 -0
  182. data/spec/rails3/public/images/rails.png +0 -0
  183. data/spec/rails3/public/javascripts/application.js +0 -2
  184. data/spec/rails3/public/javascripts/controls.js +0 -965
  185. data/spec/rails3/public/javascripts/dragdrop.js +0 -974
  186. data/spec/rails3/public/javascripts/effects.js +0 -1123
  187. data/spec/rails3/public/javascripts/prototype.js +0 -6001
  188. data/spec/rails3/public/javascripts/rails.js +0 -175
  189. data/spec/rails3/public/robots.txt +0 -5
  190. data/spec/rails3/public/stylesheets/.gitkeep +0 -0
  191. data/spec/rails3/script/rails +0 -6
  192. data/spec/rails3/spec/controller_activity_logging_spec.rb +0 -130
  193. data/spec/rails3/spec/controller_brute_force_protection_spec.rb +0 -96
  194. data/spec/rails3/spec/controller_http_basic_auth_spec.rb +0 -50
  195. data/spec/rails3/spec/controller_oauth2_spec.rb +0 -380
  196. data/spec/rails3/spec/controller_oauth_spec.rb +0 -206
  197. data/spec/rails3/spec/controller_remember_me_spec.rb +0 -96
  198. data/spec/rails3/spec/controller_session_timeout_spec.rb +0 -55
  199. data/spec/rails3/spec/controller_spec.rb +0 -182
  200. data/spec/rails3/spec/integration_spec.rb +0 -23
  201. data/spec/rails3/spec/spec.opts +0 -2
  202. data/spec/rails3/spec/spec_helper.orig.rb +0 -27
  203. data/spec/rails3/spec/spec_helper.rb +0 -71
  204. data/spec/rails3/spec/user_activation_spec.rb +0 -16
  205. data/spec/rails3/spec/user_activity_logging_spec.rb +0 -8
  206. data/spec/rails3/spec/user_spec.rb +0 -36
  207. data/spec/rails3/vendor/plugins/.gitkeep +0 -0
  208. data/spec/rails3_mongo_mapper/.gitignore +0 -4
  209. data/spec/rails3_mongo_mapper/.rspec +0 -1
  210. data/spec/rails3_mongo_mapper/Gemfile +0 -16
  211. data/spec/rails3_mongo_mapper/Gemfile.lock +0 -156
  212. data/spec/rails3_mongo_mapper/Rakefile +0 -11
  213. data/spec/rails3_mongo_mapper/app/controllers/application_controller.rb +0 -122
  214. data/spec/rails3_mongo_mapper/app/helpers/application_helper.rb +0 -2
  215. data/spec/rails3_mongo_mapper/app/mailers/sorcery_mailer.rb +0 -25
  216. data/spec/rails3_mongo_mapper/app/views/layouts/application.html.erb +0 -14
  217. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/activation_email.html.erb +0 -17
  218. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/activation_email.text.erb +0 -9
  219. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/activation_success_email.text.erb +0 -9
  220. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/reset_password_email.html.erb +0 -16
  221. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/reset_password_email.text.erb +0 -8
  222. data/spec/rails3_mongo_mapper/config/boot.rb +0 -13
  223. data/spec/rails3_mongo_mapper/config/environment.rb +0 -5
  224. data/spec/rails3_mongo_mapper/config/environments/development.rb +0 -30
  225. data/spec/rails3_mongo_mapper/config/environments/in_memory.rb +0 -0
  226. data/spec/rails3_mongo_mapper/config/environments/production.rb +0 -49
  227. data/spec/rails3_mongo_mapper/config/initializers/backtrace_silencers.rb +0 -7
  228. data/spec/rails3_mongo_mapper/config/initializers/inflections.rb +0 -10
  229. data/spec/rails3_mongo_mapper/config/initializers/mime_types.rb +0 -5
  230. data/spec/rails3_mongo_mapper/config/initializers/mongo.rb +0 -2
  231. data/spec/rails3_mongo_mapper/config/initializers/secret_token.rb +0 -7
  232. data/spec/rails3_mongo_mapper/config/initializers/session_store.rb +0 -8
  233. data/spec/rails3_mongo_mapper/config/locales/en.yml +0 -5
  234. data/spec/rails3_mongo_mapper/config/routes.rb +0 -59
  235. data/spec/rails3_mongo_mapper/db/schema.rb +0 -23
  236. data/spec/rails3_mongo_mapper/db/seeds.rb +0 -7
  237. data/spec/rails3_mongo_mapper/lib/tasks/.gitkeep +0 -0
  238. data/spec/rails3_mongo_mapper/public/404.html +0 -26
  239. data/spec/rails3_mongo_mapper/public/422.html +0 -26
  240. data/spec/rails3_mongo_mapper/public/500.html +0 -26
  241. data/spec/rails3_mongo_mapper/public/favicon.ico +0 -0
  242. data/spec/rails3_mongo_mapper/public/images/rails.png +0 -0
  243. data/spec/rails3_mongo_mapper/public/javascripts/application.js +0 -2
  244. data/spec/rails3_mongo_mapper/public/javascripts/controls.js +0 -965
  245. data/spec/rails3_mongo_mapper/public/javascripts/dragdrop.js +0 -974
  246. data/spec/rails3_mongo_mapper/public/javascripts/effects.js +0 -1123
  247. data/spec/rails3_mongo_mapper/public/javascripts/prototype.js +0 -6001
  248. data/spec/rails3_mongo_mapper/public/javascripts/rails.js +0 -175
  249. data/spec/rails3_mongo_mapper/public/robots.txt +0 -5
  250. data/spec/rails3_mongo_mapper/public/stylesheets/.gitkeep +0 -0
  251. data/spec/rails3_mongo_mapper/script/rails +0 -6
  252. data/spec/rails3_mongo_mapper/spec/controller_spec.rb +0 -175
  253. data/spec/rails3_mongo_mapper/spec/spec.opts +0 -2
  254. data/spec/rails3_mongo_mapper/spec/spec_helper.orig.rb +0 -27
  255. data/spec/rails3_mongo_mapper/spec/spec_helper.rb +0 -55
  256. data/spec/rails3_mongo_mapper/spec/user_activation_spec.rb +0 -9
  257. data/spec/rails3_mongo_mapper/spec/user_activity_logging_spec.rb +0 -8
  258. data/spec/rails3_mongo_mapper/spec/user_brute_force_protection_spec.rb +0 -8
  259. data/spec/rails3_mongo_mapper/spec/user_oauth_spec.rb +0 -8
  260. data/spec/rails3_mongo_mapper/spec/user_remember_me_spec.rb +0 -8
  261. data/spec/rails3_mongo_mapper/spec/user_reset_password_spec.rb +0 -8
  262. data/spec/rails3_mongo_mapper/spec/user_spec.rb +0 -37
  263. data/spec/rails3_mongo_mapper/vendor/plugins/.gitkeep +0 -0
  264. data/spec/rails3_mongoid/.gitignore +0 -4
  265. data/spec/rails3_mongoid/.rspec +0 -1
  266. data/spec/rails3_mongoid/Gemfile +0 -15
  267. data/spec/rails3_mongoid/Gemfile.lock +0 -146
  268. data/spec/rails3_mongoid/Rakefile +0 -11
  269. data/spec/rails3_mongoid/app/controllers/application_controller.rb +0 -127
  270. data/spec/rails3_mongoid/app/helpers/application_helper.rb +0 -2
  271. data/spec/rails3_mongoid/app/mailers/sorcery_mailer.rb +0 -25
  272. data/spec/rails3_mongoid/app/views/layouts/application.html.erb +0 -14
  273. data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_email.html.erb +0 -17
  274. data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_email.text.erb +0 -9
  275. data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_success_email.html.erb +0 -17
  276. data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_success_email.text.erb +0 -9
  277. data/spec/rails3_mongoid/app/views/sorcery_mailer/reset_password_email.html.erb +0 -16
  278. data/spec/rails3_mongoid/app/views/sorcery_mailer/reset_password_email.text.erb +0 -8
  279. data/spec/rails3_mongoid/config/application.rb +0 -51
  280. data/spec/rails3_mongoid/config/boot.rb +0 -13
  281. data/spec/rails3_mongoid/config/environment.rb +0 -5
  282. data/spec/rails3_mongoid/config/environments/development.rb +0 -26
  283. data/spec/rails3_mongoid/config/environments/in_memory.rb +0 -0
  284. data/spec/rails3_mongoid/config/environments/production.rb +0 -49
  285. data/spec/rails3_mongoid/config/environments/test.rb +0 -35
  286. data/spec/rails3_mongoid/config/initializers/backtrace_silencers.rb +0 -7
  287. data/spec/rails3_mongoid/config/initializers/inflections.rb +0 -10
  288. data/spec/rails3_mongoid/config/initializers/mime_types.rb +0 -5
  289. data/spec/rails3_mongoid/config/initializers/secret_token.rb +0 -7
  290. data/spec/rails3_mongoid/config/locales/en.yml +0 -5
  291. data/spec/rails3_mongoid/config/mongoid.yml +0 -7
  292. data/spec/rails3_mongoid/config/routes.rb +0 -59
  293. data/spec/rails3_mongoid/config.ru +0 -4
  294. data/spec/rails3_mongoid/db/schema.rb +0 -23
  295. data/spec/rails3_mongoid/db/seeds.rb +0 -7
  296. data/spec/rails3_mongoid/lib/tasks/.gitkeep +0 -0
  297. data/spec/rails3_mongoid/public/404.html +0 -26
  298. data/spec/rails3_mongoid/public/422.html +0 -26
  299. data/spec/rails3_mongoid/public/500.html +0 -26
  300. data/spec/rails3_mongoid/public/favicon.ico +0 -0
  301. data/spec/rails3_mongoid/public/images/rails.png +0 -0
  302. data/spec/rails3_mongoid/public/javascripts/application.js +0 -2
  303. data/spec/rails3_mongoid/public/javascripts/controls.js +0 -965
  304. data/spec/rails3_mongoid/public/javascripts/dragdrop.js +0 -974
  305. data/spec/rails3_mongoid/public/javascripts/effects.js +0 -1123
  306. data/spec/rails3_mongoid/public/javascripts/prototype.js +0 -6001
  307. data/spec/rails3_mongoid/public/javascripts/rails.js +0 -175
  308. data/spec/rails3_mongoid/public/robots.txt +0 -5
  309. data/spec/rails3_mongoid/public/stylesheets/.gitkeep +0 -0
  310. data/spec/rails3_mongoid/script/rails +0 -6
  311. data/spec/rails3_mongoid/spec/controller_activity_logging_spec.rb +0 -111
  312. data/spec/rails3_mongoid/spec/controller_spec.rb +0 -186
  313. data/spec/rails3_mongoid/spec/spec.opts +0 -2
  314. data/spec/rails3_mongoid/spec/spec_helper.orig.rb +0 -27
  315. data/spec/rails3_mongoid/spec/spec_helper.rb +0 -55
  316. data/spec/rails3_mongoid/spec/user_activation_spec.rb +0 -9
  317. data/spec/rails3_mongoid/spec/user_activity_logging_spec.rb +0 -8
  318. data/spec/rails3_mongoid/spec/user_brute_force_protection_spec.rb +0 -8
  319. data/spec/rails3_mongoid/spec/user_oauth_spec.rb +0 -8
  320. data/spec/rails3_mongoid/spec/user_remember_me_spec.rb +0 -8
  321. data/spec/rails3_mongoid/spec/user_reset_password_spec.rb +0 -8
  322. data/spec/rails3_mongoid/spec/user_spec.rb +0 -38
  323. data/spec/rails3_mongoid/vendor/plugins/.gitkeep +0 -0
  324. data/spec/shared_examples/controller_oauth2_shared_examples.rb +0 -56
  325. data/spec/shared_examples/controller_oauth_shared_examples.rb +0 -55
  326. /data/lib/sorcery/{controller/submodules/external/protocols → protocols}/certs/ca-bundle.crt +0 -0
  327. /data/spec/{rails3/app/models → rails_app/app/active_record}/authentication.rb +0 -0
  328. /data/spec/{rails3 → rails_app}/app/helpers/application_helper.rb +0 -0
  329. /data/spec/{rails3 → rails_app}/app/mailers/sorcery_mailer.rb +0 -0
  330. /data/spec/{rails3_mongo_mapper/app/models → rails_app/app/mongo_mapper}/authentication.rb +0 -0
  331. /data/spec/{rails3_mongoid/app/models → rails_app/app/mongoid}/authentication.rb +0 -0
  332. /data/spec/{rails3 → rails_app}/app/views/application/index.html.erb +0 -0
  333. /data/spec/{rails3 → rails_app}/app/views/layouts/application.html.erb +0 -0
  334. /data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/activation_email.html.erb +0 -0
  335. /data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/activation_email.text.erb +0 -0
  336. /data/spec/{rails3/app/views/sorcery_mailer/activation_success_email.html.erb → rails_app/app/views/sorcery_mailer/activation_needed_email.html.erb} +0 -0
  337. /data/spec/{rails3_mongo_mapper → rails_app}/app/views/sorcery_mailer/activation_success_email.html.erb +0 -0
  338. /data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/activation_success_email.text.erb +0 -0
  339. /data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/reset_password_email.html.erb +0 -0
  340. /data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/reset_password_email.text.erb +0 -0
  341. /data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/send_unlock_token_email.text.erb +0 -0
  342. /data/spec/{rails3 → rails_app}/config/environment.rb +0 -0
  343. /data/spec/{rails3 → rails_app}/config/initializers/backtrace_silencers.rb +0 -0
  344. /data/spec/{rails3 → rails_app}/config/initializers/inflections.rb +0 -0
  345. /data/spec/{rails3 → rails_app}/config/initializers/mime_types.rb +0 -0
  346. /data/spec/{rails3 → rails_app}/config/initializers/secret_token.rb +0 -0
  347. /data/spec/{rails3 → rails_app}/config/locales/en.yml +0 -0
  348. /data/spec/{rails3 → rails_app}/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb +0 -0
  349. /data/spec/{rails3 → rails_app}/db/migrate/brute_force_protection/20101224223626_add_brute_force_protection_to_users.rb +0 -0
  350. /data/spec/{rails3 → rails_app}/db/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb +0 -0
  351. /data/spec/{rails3 → rails_app}/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb +0 -0
  352. /data/spec/{rails3 → rails_app}/db/schema.rb +0 -0
  353. /data/spec/{rails3 → rails_app}/db/seeds.rb +0 -0
@@ -1,31 +1,36 @@
1
1
  shared_examples_for "rails_3_oauth_model" do
2
2
  # ----------------- PLUGIN CONFIGURATION -----------------------
3
- describe User, "loaded plugin configuration" do
4
-
3
+
4
+ let(:external_user) { create_new_external_user :twitter }
5
+
6
+ describe "loaded plugin configuration" do
7
+
5
8
  before(:all) do
6
- User.delete_all
7
- Authentication.delete_all
9
+ Authentication.sorcery_adapter.delete_all
10
+ User.sorcery_adapter.delete_all
11
+
8
12
  sorcery_reload!([:external])
9
13
  sorcery_controller_property_set(:external_providers, [:twitter])
10
14
  sorcery_model_property_set(:authentications_class, Authentication)
11
15
  sorcery_controller_external_property_set(:twitter, :key, "eYVNBjBDi33aa9GkA3w")
12
16
  sorcery_controller_external_property_set(:twitter, :secret, "XpbeSdCoaKSmQGSeokz5qcUATClRW5u08QWNfv71N8")
13
17
  sorcery_controller_external_property_set(:twitter, :callback_url, "http://blabla.com")
14
- create_new_external_user(:twitter)
15
18
  end
16
19
 
17
- it "should respond to 'load_from_provider'" do
18
- User.should respond_to(:load_from_provider)
20
+ it "responds to 'load_from_provider'" do
21
+ expect(User).to respond_to(:load_from_provider)
19
22
  end
20
-
21
- it "'load_from_provider' should load user if exists" do
22
- User.load_from_provider(:twitter,123).should == @user
23
+
24
+ it "'load_from_provider' loads user if exists" do
25
+ external_user
26
+ expect(User.load_from_provider :twitter, 123).to eq external_user
23
27
  end
24
-
25
- it "'load_from_provider' should return nil if user doesn't exist" do
26
- User.load_from_provider(:twitter,980342).should be_nil
28
+
29
+ it "'load_from_provider' returns nil if user doesn't exist" do
30
+ external_user
31
+ expect(User.load_from_provider :twitter, 980342).to be_nil
27
32
  end
28
-
33
+
29
34
  end
30
-
31
- end
35
+
36
+ end
@@ -1,48 +1,60 @@
1
1
  shared_examples_for "rails_3_remember_me_model" do
2
- # ----------------- PLUGIN CONFIGURATION -----------------------
3
- describe User, "loaded plugin configuration" do
2
+ let(:user) { create_new_user }
3
+
4
+ describe "loaded plugin configuration" do
5
+
4
6
  before(:all) do
5
7
  sorcery_reload!([:remember_me])
6
- create_new_user
7
8
  end
8
9
 
9
10
  after(:each) do
10
11
  User.sorcery_config.reset!
11
12
  end
12
13
 
13
- it "should allow configuration option 'remember_me_token_attribute_name'" do
14
+ it "allows configuration option 'remember_me_token_attribute_name'" do
14
15
  sorcery_model_property_set(:remember_me_token_attribute_name, :my_token)
15
- User.sorcery_config.remember_me_token_attribute_name.should equal(:my_token)
16
+
17
+ expect(User.sorcery_config.remember_me_token_attribute_name).to eq :my_token
16
18
  end
17
19
 
18
- it "should allow configuration option 'remember_me_token_expires_at_attribute_name'" do
20
+ it "allows configuration option 'remember_me_token_expires_at_attribute_name'" do
19
21
  sorcery_model_property_set(:remember_me_token_expires_at_attribute_name, :my_expires)
20
- User.sorcery_config.remember_me_token_expires_at_attribute_name.should equal(:my_expires)
22
+
23
+ expect(User.sorcery_config.remember_me_token_expires_at_attribute_name).to eq :my_expires
21
24
  end
22
25
 
23
- specify { @user.should respond_to(:remember_me!) }
24
-
25
- specify { @user.should respond_to(:forget_me!) }
26
+ specify { expect(user).to respond_to :remember_me! }
27
+
28
+ specify { expect(user).to respond_to :forget_me! }
26
29
 
27
- it "should generate a new token on 'remember_me!'" do
28
- @user.remember_me_token.should be_nil
29
- @user.remember_me!
30
- @user.remember_me_token.should_not be_nil
30
+ it "generates a new token on 'remember_me!'" do
31
+ expect(user.remember_me_token).to be_nil
32
+
33
+ user.remember_me!
34
+
35
+ expect(user.remember_me_token).not_to be_nil
31
36
  end
32
37
 
33
- # FIXME: assert on line 37 sometimes fails by a second
34
- it "should set an expiration based on 'remember_me_for' attribute" do
38
+ it "sets an expiration based on 'remember_me_for' attribute" do
35
39
  sorcery_model_property_set(:remember_me_for, 2 * 60 * 60 * 24)
36
- @user.remember_me!
37
- @user.remember_me_token_expires_at.utc.to_s.should == (Time.now.in_time_zone + 2 * 60 * 60 * 24).utc.to_s
40
+
41
+ ts = Time.now.in_time_zone
42
+ Timecop.freeze(ts) do
43
+ user.remember_me!
44
+ end
45
+
46
+ expect(user.remember_me_token_expires_at.utc.to_s).to eq (ts + 2 * 60 * 60 * 24).utc.to_s
38
47
  end
39
48
 
40
- it "should delete the token and expiration on 'forget_me!'" do
41
- @user.remember_me!
42
- @user.remember_me_token.should_not be_nil
43
- @user.forget_me!
44
- @user.remember_me_token.should be_nil
45
- @user.remember_me_token_expires_at.should be_nil
49
+ it "deletes the token and expiration on 'forget_me!'" do
50
+ user.remember_me!
51
+
52
+ expect(user.remember_me_token).not_to be_nil
53
+
54
+ user.forget_me!
55
+
56
+ expect(user.remember_me_token).to be_nil
57
+ expect(user.remember_me_token_expires_at).to be_nil
46
58
  end
47
59
  end
48
60
  end
@@ -1,170 +1,191 @@
1
1
  shared_examples_for "rails_3_reset_password_model" do
2
2
  # ----------------- PLUGIN CONFIGURATION -----------------------
3
- describe User, "loaded plugin configuration" do
4
-
3
+ let(:user) { create_new_user }
4
+
5
+ describe "loaded plugin configuration" do
6
+
5
7
  before(:all) do
6
8
  sorcery_reload!([:reset_password], :reset_password_mailer => ::SorceryMailer)
7
9
  end
8
-
10
+
9
11
  after(:each) do
10
12
  User.sorcery_config.reset!
11
13
  end
12
-
14
+
13
15
  context "API" do
14
- before(:all) do
15
- create_new_user
16
- end
17
-
18
- specify { @user.should respond_to(:deliver_reset_password_instructions!) }
19
-
20
- specify { @user.should respond_to(:change_password!) }
21
16
 
22
- it "should respond to .load_from_reset_password_token" do
23
- User.should respond_to(:load_from_reset_password_token)
17
+ specify { expect(user).to respond_to :deliver_reset_password_instructions! }
18
+
19
+ specify { expect(user).to respond_to :change_password! }
20
+
21
+ it "responds to .load_from_reset_password_token" do
22
+ expect(User).to respond_to :load_from_reset_password_token
24
23
  end
25
24
  end
26
25
 
27
- it "should allow configuration option 'reset_password_token_attribute_name'" do
26
+ it "allows configuration option 'reset_password_token_attribute_name'" do
28
27
  sorcery_model_property_set(:reset_password_token_attribute_name, :my_code)
29
- User.sorcery_config.reset_password_token_attribute_name.should equal(:my_code)
28
+
29
+ expect(User.sorcery_config.reset_password_token_attribute_name).to eq :my_code
30
30
  end
31
-
32
- it "should allow configuration option 'reset_password_mailer'" do
31
+
32
+ it "allows configuration option 'reset_password_mailer'" do
33
33
  sorcery_model_property_set(:reset_password_mailer, TestUser)
34
- User.sorcery_config.reset_password_mailer.should equal(TestUser)
34
+
35
+ expect(User.sorcery_config.reset_password_mailer).to eq TestUser
35
36
  end
36
37
 
37
- it "should enable configuration option 'reset_password_mailer_disabled'" do
38
+ it "enables configuration option 'reset_password_mailer_disabled'" do
38
39
  sorcery_model_property_set(:reset_password_mailer_disabled, :my_reset_password_mailer_disabled)
39
- User.sorcery_config.reset_password_mailer_disabled.should equal(:my_reset_password_mailer_disabled)
40
+
41
+ expect(User.sorcery_config.reset_password_mailer_disabled).to eq :my_reset_password_mailer_disabled
40
42
  end
41
-
43
+
42
44
  it "if mailer is nil and mailer is enabled, throw exception!" do
43
45
  expect{sorcery_reload!([:reset_password], :reset_password_mailer_disabled => false)}.to raise_error(ArgumentError)
44
46
  end
45
47
 
46
48
  it "if mailer is disabled and mailer is nil, do NOT throw exception" do
47
49
  expect{sorcery_reload!([:reset_password], :reset_password_mailer_disabled => true)}.to_not raise_error
48
- end
50
+ end
49
51
 
50
- it "should allow configuration option 'reset_password_email_method_name'" do
52
+ it "allows configuration option 'reset_password_email_method_name'" do
51
53
  sorcery_model_property_set(:reset_password_email_method_name, :my_mailer_method)
52
- User.sorcery_config.reset_password_email_method_name.should equal(:my_mailer_method)
54
+
55
+ expect(User.sorcery_config.reset_password_email_method_name).to eq :my_mailer_method
53
56
  end
54
-
55
- it "should allow configuration option 'reset_password_expiration_period'" do
57
+
58
+ it "allows configuration option 'reset_password_expiration_period'" do
56
59
  sorcery_model_property_set(:reset_password_expiration_period, 16)
57
- User.sorcery_config.reset_password_expiration_period.should equal(16)
60
+
61
+ expect(User.sorcery_config.reset_password_expiration_period).to eq 16
58
62
  end
59
-
60
- it "should allow configuration option 'reset_password_email_sent_at_attribute_name'" do
63
+
64
+ it "allows configuration option 'reset_password_email_sent_at_attribute_name'" do
61
65
  sorcery_model_property_set(:reset_password_email_sent_at_attribute_name, :blabla)
62
- User.sorcery_config.reset_password_email_sent_at_attribute_name.should equal(:blabla)
66
+
67
+ expect(User.sorcery_config.reset_password_email_sent_at_attribute_name).to eq :blabla
63
68
  end
64
-
65
- it "should allow configuration option 'reset_password_time_between_emails'" do
69
+
70
+ it "allows configuration option 'reset_password_time_between_emails'" do
66
71
  sorcery_model_property_set(:reset_password_time_between_emails, 16)
67
- User.sorcery_config.reset_password_time_between_emails.should equal(16)
72
+
73
+ expect(User.sorcery_config.reset_password_time_between_emails).to eq 16
68
74
  end
69
75
  end
70
76
 
71
- # ----------------- PLUGIN ACTIVATED -----------------------
72
- describe User, "when activated with sorcery" do
73
-
77
+
78
+ describe "when activated with sorcery" do
79
+
74
80
  before(:all) do
75
81
  sorcery_reload!([:reset_password], :reset_password_mailer => ::SorceryMailer)
76
82
  end
77
-
83
+
78
84
  before(:each) do
79
- User.delete_all
85
+ User.sorcery_adapter.delete_all
86
+ user
80
87
  end
81
-
88
+
82
89
  after(:each) do
83
90
  Timecop.return
84
91
  end
85
-
86
- it "load_from_reset_password_token should return user when token is found" do
87
- create_new_user
88
- @user.deliver_reset_password_instructions!
89
- User.load_from_reset_password_token(@user.reset_password_token).should == @user
90
- end
91
-
92
- it "load_from_reset_password_token should NOT return user when token is NOT found" do
93
- create_new_user
94
- @user.deliver_reset_password_instructions!
95
- User.load_from_reset_password_token("a").should == nil
96
- end
97
-
98
- it "load_from_reset_password_token should return user when token is found and not expired" do
99
- create_new_user
92
+
93
+ it "load_from_reset_password_token returns user when token is found" do
94
+ user.generate_reset_password_token!
95
+ updated_user = User.sorcery_adapter.find(user.id)
96
+
97
+ expect(User.load_from_reset_password_token user.reset_password_token).to eq updated_user
98
+ end
99
+
100
+ it "load_from_reset_password_token does NOT return user when token is NOT found" do
101
+ user.generate_reset_password_token!
102
+
103
+ expect(User.load_from_reset_password_token "a").to be_nil
104
+ end
105
+
106
+ it "load_from_reset_password_token returns user when token is found and not expired" do
100
107
  sorcery_model_property_set(:reset_password_expiration_period, 500)
101
- @user.deliver_reset_password_instructions!
102
- User.load_from_reset_password_token(@user.reset_password_token).should == @user
108
+ user.generate_reset_password_token!
109
+ updated_user = User.sorcery_adapter.find(user.id)
110
+
111
+ expect(User.load_from_reset_password_token user.reset_password_token).to eq updated_user
103
112
  end
104
-
105
- it "load_from_reset_password_token should NOT return user when token is found and expired" do
106
- create_new_user
113
+
114
+ it "load_from_reset_password_token does NOT return user when token is found and expired" do
107
115
  sorcery_model_property_set(:reset_password_expiration_period, 0.1)
108
- @user.deliver_reset_password_instructions!
116
+ user.generate_reset_password_token!
109
117
  Timecop.travel(Time.now.in_time_zone+0.5)
110
- User.load_from_reset_password_token(@user.reset_password_token).should == nil
118
+
119
+ expect(User.load_from_reset_password_token user.reset_password_token).to be_nil
111
120
  end
112
-
113
- it "load_from_reset_password_token should always be valid if expiration period is nil" do
114
- create_new_user
121
+
122
+ it "load_from_reset_password_token is always valid if expiration period is nil" do
115
123
  sorcery_model_property_set(:reset_password_expiration_period, nil)
116
- @user.deliver_reset_password_instructions!
117
- User.load_from_reset_password_token(@user.reset_password_token).should == @user
124
+ user.generate_reset_password_token!
125
+ updated_user = User.sorcery_adapter.find(user.id)
126
+
127
+ expect(User.load_from_reset_password_token user.reset_password_token).to eq updated_user
118
128
  end
119
-
120
- it "load_from_reset_password_token should return nil if token is blank" do
121
- User.load_from_reset_password_token(nil).should == nil
122
- User.load_from_reset_password_token("").should == nil
129
+
130
+ it "load_from_reset_password_token returns nil if token is blank" do
131
+ expect(User.load_from_reset_password_token nil).to be_nil
132
+ expect(User.load_from_reset_password_token "").to be_nil
123
133
  end
124
-
125
- it "'deliver_reset_password_instructions!' should generate a reset_password_token" do
126
- create_new_user
127
- @user.reset_password_token.should be_nil
128
- @user.deliver_reset_password_instructions!
129
- @user.reset_password_token.should_not be_nil
134
+
135
+ it "'deliver_reset_password_instructions!' generates a reset_password_token" do
136
+ expect(user.reset_password_token).to be_nil
137
+
138
+ user.deliver_reset_password_instructions!
139
+
140
+ expect(user.reset_password_token).not_to be_nil
130
141
  end
131
142
 
132
- it "the reset_password_token should be random" do
133
- create_new_user
143
+ it "the reset_password_token is random" do
134
144
  sorcery_model_property_set(:reset_password_time_between_emails, 0)
135
- @user.deliver_reset_password_instructions!
136
- old_password_code = @user.reset_password_token
137
- @user.deliver_reset_password_instructions!
138
- @user.reset_password_token.should_not == old_password_code
145
+ user.deliver_reset_password_instructions!
146
+ old_password_code = user.reset_password_token
147
+ user.deliver_reset_password_instructions!
148
+
149
+ expect(user.reset_password_token).not_to eq old_password_code
139
150
  end
140
151
 
141
152
  context "mailer is enabled" do
142
- it "should send an email on reset" do
143
- create_new_user
153
+ it "sends an email on reset" do
144
154
  old_size = ActionMailer::Base.deliveries.size
145
- @user.deliver_reset_password_instructions!
146
- ActionMailer::Base.deliveries.size.should == old_size + 1
155
+ user.deliver_reset_password_instructions!
156
+
157
+ expect(ActionMailer::Base.deliveries.size).to eq old_size + 1
147
158
  end
148
159
 
149
- it "should not send an email if time between emails has not passed since last email" do
150
- create_new_user
160
+ it "calls send_reset_password_email! on reset" do
161
+ expect(user).to receive(:send_reset_password_email!).once
162
+
163
+ user.deliver_reset_password_instructions!
164
+ end
165
+
166
+ it "does not send an email if time between emails has not passed since last email" do
151
167
  sorcery_model_property_set(:reset_password_time_between_emails, 10000)
152
168
  old_size = ActionMailer::Base.deliveries.size
153
- @user.deliver_reset_password_instructions!
154
- ActionMailer::Base.deliveries.size.should == old_size + 1
155
- @user.deliver_reset_password_instructions!
156
- ActionMailer::Base.deliveries.size.should == old_size + 1
169
+ user.deliver_reset_password_instructions!
170
+
171
+ expect(ActionMailer::Base.deliveries.size).to eq old_size + 1
172
+
173
+ user.deliver_reset_password_instructions!
174
+
175
+ expect(ActionMailer::Base.deliveries.size).to eq old_size + 1
157
176
  end
158
177
 
159
- it "should send an email if time between emails has passed since last email" do
160
- create_new_user
178
+ it "sends an email if time between emails has passed since last email" do
161
179
  sorcery_model_property_set(:reset_password_time_between_emails, 0.5)
162
180
  old_size = ActionMailer::Base.deliveries.size
163
- @user.deliver_reset_password_instructions!
164
- ActionMailer::Base.deliveries.size.should == old_size + 1
181
+ user.deliver_reset_password_instructions!
182
+
183
+ expect(ActionMailer::Base.deliveries.size).to eq old_size + 1
184
+
165
185
  Timecop.travel(Time.now.in_time_zone+0.5)
166
- @user.deliver_reset_password_instructions!
167
- ActionMailer::Base.deliveries.size.should == old_size + 2
186
+ user.deliver_reset_password_instructions!
187
+
188
+ expect(ActionMailer::Base.deliveries.size).to eq old_size + 2
168
189
  end
169
190
  end
170
191
 
@@ -174,56 +195,68 @@ shared_examples_for "rails_3_reset_password_model" do
174
195
  sorcery_reload!([:reset_password], :reset_password_mailer_disabled => true, :reset_password_mailer => ::SorceryMailer)
175
196
  end
176
197
 
177
- it "should send an email on reset" do
178
- create_new_user
198
+ it "sends an email on reset" do
179
199
  old_size = ActionMailer::Base.deliveries.size
180
- @user.deliver_reset_password_instructions!
181
- ActionMailer::Base.deliveries.size.should == old_size
200
+ user.deliver_reset_password_instructions!
201
+
202
+ expect(ActionMailer::Base.deliveries.size).to eq old_size
203
+ end
204
+
205
+ it "does not call send_reset_password_email! on reset" do
206
+ expect(user).to receive(:send_reset_password_email!).never
207
+
208
+ user.deliver_reset_password_instructions!
182
209
  end
183
210
 
184
- it "should not send an email if time between emails has not passed since last email" do
185
- create_new_user
211
+ it "does not send an email if time between emails has not passed since last email" do
186
212
  sorcery_model_property_set(:reset_password_time_between_emails, 10000)
187
213
  old_size = ActionMailer::Base.deliveries.size
188
- @user.deliver_reset_password_instructions!
189
- ActionMailer::Base.deliveries.size.should == old_size
190
- @user.deliver_reset_password_instructions!
191
- ActionMailer::Base.deliveries.size.should == old_size
214
+ user.deliver_reset_password_instructions!
215
+
216
+ expect(ActionMailer::Base.deliveries.size).to eq old_size
217
+
218
+ user.deliver_reset_password_instructions!
219
+
220
+ expect(ActionMailer::Base.deliveries.size).to eq old_size
192
221
  end
193
222
 
194
- it "should send an email if time between emails has passed since last email" do
195
- create_new_user
223
+ it "sends an email if time between emails has passed since last email" do
196
224
  sorcery_model_property_set(:reset_password_time_between_emails, 0.5)
197
225
  old_size = ActionMailer::Base.deliveries.size
198
- @user.deliver_reset_password_instructions!
199
- ActionMailer::Base.deliveries.size.should == old_size
226
+ user.deliver_reset_password_instructions!
227
+
228
+ expect(ActionMailer::Base.deliveries.size).to eq old_size
229
+
200
230
  Timecop.travel(Time.now.in_time_zone+0.5)
201
- @user.deliver_reset_password_instructions!
202
- ActionMailer::Base.deliveries.size.should == old_size
231
+ user.deliver_reset_password_instructions!
232
+
233
+ expect(ActionMailer::Base.deliveries.size).to eq old_size
203
234
  end
204
235
  end
205
236
 
206
- it "when change_password! is called, should delete reset_password_token" do
207
- create_new_user
208
- @user.deliver_reset_password_instructions!
209
- @user.reset_password_token.should_not be_nil
210
- @user.change_password!("blabulsdf")
211
- @user.save!
212
- @user.reset_password_token.should be_nil
237
+ it "when change_password! is called, deletes reset_password_token" do
238
+ user.deliver_reset_password_instructions!
239
+
240
+ expect(user.reset_password_token).not_to be_nil
241
+
242
+ user.change_password!("blabulsdf")
243
+ user.save!
244
+
245
+ expect(user.reset_password_token).to be_nil
213
246
  end
214
247
 
215
- it "should return false if time between emails has not passed since last email" do
216
- create_new_user
248
+ it "returns false if time between emails has not passed since last email" do
217
249
  sorcery_model_property_set(:reset_password_time_between_emails, 10000)
218
- @user.deliver_reset_password_instructions!
219
- @user.deliver_reset_password_instructions!.should == false
250
+ user.deliver_reset_password_instructions!
251
+
252
+ expect(user.deliver_reset_password_instructions!).to be false
220
253
  end
221
254
 
222
- it "should encrypt properly on reset" do
223
- create_new_user
224
- @user.deliver_reset_password_instructions!
225
- @user.change_password!("blagu")
226
- Sorcery::CryptoProviders::BCrypt.matches?(@user.crypted_password,"blagu",@user.salt).should be_true
255
+ it "encrypts properly on reset" do
256
+ user.deliver_reset_password_instructions!
257
+ user.change_password!("blagu")
258
+
259
+ expect(Sorcery::CryptoProviders::BCrypt.matches? user.crypted_password, "blagu", user.salt).to be true
227
260
  end
228
261
 
229
262
  end