sorcery 0.8.1 → 0.9.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.
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 +279 -0
  5. data/Gemfile +18 -23
  6. data/README.md +372 -0
  7. data/Rakefile +3 -78
  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 +53 -16
  19. data/lib/generators/sorcery/templates/migration/activity_logging.rb +3 -10
  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 +27 -21
  33. data/lib/sorcery/controller/submodules/brute_force_protection.rb +6 -6
  34. data/lib/sorcery/controller/submodules/external.rb +107 -75
  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 +27 -76
  38. data/lib/sorcery/model/config.rb +96 -0
  39. data/lib/sorcery/model/submodules/activity_logging.rb +32 -12
  40. data/lib/sorcery/model/submodules/brute_force_protection.rb +36 -36
  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 +85 -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 +74 -0
  51. data/lib/sorcery/providers/github.rb +60 -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/railties/tasks.rake +1 -7
  62. data/lib/sorcery/test_helpers/internal/rails.rb +17 -6
  63. data/lib/sorcery/test_helpers/internal.rb +27 -6
  64. data/lib/sorcery/test_helpers/rails/controller.rb +21 -0
  65. data/lib/sorcery/test_helpers/rails/integration.rb +26 -0
  66. data/lib/sorcery/version.rb +3 -0
  67. data/lib/sorcery.rb +83 -57
  68. data/sorcery.gemspec +24 -363
  69. data/spec/active_record/user_activation_spec.rb +18 -0
  70. data/spec/active_record/user_activity_logging_spec.rb +17 -0
  71. data/spec/{rails3/spec → active_record}/user_brute_force_protection_spec.rb +6 -5
  72. data/spec/{rails3/spec → active_record}/user_oauth_spec.rb +6 -5
  73. data/spec/{rails3/spec → active_record}/user_remember_me_spec.rb +5 -4
  74. data/spec/{rails3/spec → active_record}/user_reset_password_spec.rb +7 -7
  75. data/spec/active_record/user_spec.rb +37 -0
  76. data/spec/controllers/controller_activity_logging_spec.rb +124 -0
  77. data/spec/controllers/controller_brute_force_protection_spec.rb +43 -0
  78. data/spec/controllers/controller_http_basic_auth_spec.rb +68 -0
  79. data/spec/controllers/controller_oauth2_spec.rb +429 -0
  80. data/spec/controllers/controller_oauth_spec.rb +240 -0
  81. data/spec/controllers/controller_remember_me_spec.rb +117 -0
  82. data/spec/controllers/controller_session_timeout_spec.rb +80 -0
  83. data/spec/controllers/controller_spec.rb +218 -0
  84. data/spec/data_mapper/user_activation_spec.rb +10 -0
  85. data/spec/data_mapper/user_activity_logging_spec.rb +14 -0
  86. data/spec/data_mapper/user_brute_force_protection_spec.rb +9 -0
  87. data/spec/data_mapper/user_oauth_spec.rb +9 -0
  88. data/spec/data_mapper/user_remember_me_spec.rb +8 -0
  89. data/spec/data_mapper/user_reset_password_spec.rb +8 -0
  90. data/spec/data_mapper/user_spec.rb +27 -0
  91. data/spec/mongo_mapper/user_activation_spec.rb +9 -0
  92. data/spec/mongo_mapper/user_activity_logging_spec.rb +8 -0
  93. data/spec/mongo_mapper/user_brute_force_protection_spec.rb +8 -0
  94. data/spec/mongo_mapper/user_oauth_spec.rb +8 -0
  95. data/spec/mongo_mapper/user_remember_me_spec.rb +8 -0
  96. data/spec/mongo_mapper/user_reset_password_spec.rb +8 -0
  97. data/spec/mongo_mapper/user_spec.rb +37 -0
  98. data/spec/mongoid/user_activation_spec.rb +9 -0
  99. data/spec/mongoid/user_activity_logging_spec.rb +8 -0
  100. data/spec/mongoid/user_brute_force_protection_spec.rb +8 -0
  101. data/spec/mongoid/user_oauth_spec.rb +8 -0
  102. data/spec/mongoid/user_remember_me_spec.rb +8 -0
  103. data/spec/mongoid/user_reset_password_spec.rb +8 -0
  104. data/spec/mongoid/user_spec.rb +51 -0
  105. data/spec/orm/active_record.rb +21 -0
  106. data/spec/orm/data_mapper.rb +48 -0
  107. data/spec/orm/mongo_mapper.rb +10 -0
  108. data/spec/orm/mongoid.rb +22 -0
  109. data/spec/{rails3/app/models → rails_app/app/active_record}/user.rb +1 -2
  110. data/spec/rails_app/app/active_record/user_provider.rb +3 -0
  111. data/spec/rails_app/app/controllers/sorcery_controller.rb +285 -0
  112. data/spec/rails_app/app/data_mapper/authentication.rb +8 -0
  113. data/spec/rails_app/app/data_mapper/user.rb +7 -0
  114. data/spec/{rails3_mongo_mapper/app/models → rails_app/app/mongo_mapper}/user.rb +2 -0
  115. data/spec/{rails3_mongoid/app/models → rails_app/app/mongoid}/user.rb +2 -0
  116. data/spec/rails_app/app/views/sorcery_mailer/send_unlock_token_email.text.erb +1 -0
  117. data/spec/{rails3_mongo_mapper → rails_app}/config/application.rb +13 -8
  118. data/spec/rails_app/config/boot.rb +4 -0
  119. data/spec/rails_app/config/database.yml +22 -0
  120. data/spec/{rails3_mongo_mapper → rails_app}/config/environments/test.rb +2 -0
  121. data/spec/{rails3_mongoid → rails_app}/config/initializers/session_store.rb +4 -0
  122. data/spec/rails_app/config/routes.rb +51 -0
  123. data/spec/{rails3_mongo_mapper → rails_app}/config.ru +1 -1
  124. data/spec/{rails3 → rails_app}/db/migrate/activation/20101224223622_add_activation_to_users.rb +3 -3
  125. data/spec/{rails3 → rails_app}/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb +2 -0
  126. data/spec/{rails3 → rails_app}/db/migrate/core/20101224223620_create_users.rb +2 -2
  127. data/spec/rails_app/db/migrate/external/20101224223628_create_authentications_and_user_providers.rb +22 -0
  128. data/spec/rails_app/log/development.log +1791 -0
  129. data/spec/shared_examples/user_activation_shared_examples.rb +137 -98
  130. data/spec/shared_examples/user_activity_logging_shared_examples.rb +86 -13
  131. data/spec/shared_examples/user_brute_force_protection_shared_examples.rb +140 -21
  132. data/spec/shared_examples/user_oauth_shared_examples.rb +21 -16
  133. data/spec/shared_examples/user_remember_me_shared_examples.rb +36 -24
  134. data/spec/shared_examples/user_reset_password_shared_examples.rb +163 -130
  135. data/spec/shared_examples/user_shared_examples.rb +370 -195
  136. data/spec/sorcery_crypto_providers_spec.rb +74 -72
  137. data/spec/spec_helper.rb +32 -4
  138. metadata +259 -425
  139. data/Gemfile.lock +0 -192
  140. data/README.rdoc +0 -261
  141. data/VERSION +0 -1
  142. data/lib/sorcery/controller/submodules/external/protocols/oauth1.rb +0 -35
  143. data/lib/sorcery/controller/submodules/external/protocols/oauth2.rb +0 -45
  144. data/lib/sorcery/controller/submodules/external/providers/facebook.rb +0 -97
  145. data/lib/sorcery/controller/submodules/external/providers/github.rb +0 -91
  146. data/lib/sorcery/controller/submodules/external/providers/google.rb +0 -90
  147. data/lib/sorcery/controller/submodules/external/providers/linkedin.rb +0 -101
  148. data/lib/sorcery/controller/submodules/external/providers/liveid.rb +0 -91
  149. data/lib/sorcery/controller/submodules/external/providers/twitter.rb +0 -92
  150. data/lib/sorcery/controller/submodules/external/providers/vk.rb +0 -99
  151. data/lib/sorcery/model/adapters/active_record.rb +0 -49
  152. data/lib/sorcery/model/adapters/mongo_mapper.rb +0 -56
  153. data/lib/sorcery/model/adapters/mongoid.rb +0 -88
  154. data/lib/sorcery/test_helpers/rails.rb +0 -16
  155. data/lib/sorcery/test_helpers.rb +0 -5
  156. data/spec/Gemfile +0 -12
  157. data/spec/Gemfile.lock +0 -129
  158. data/spec/README.md +0 -31
  159. data/spec/Rakefile +0 -12
  160. data/spec/rails3/.gitignore +0 -4
  161. data/spec/rails3/.rspec +0 -1
  162. data/spec/rails3/Gemfile +0 -15
  163. data/spec/rails3/Gemfile.lock +0 -162
  164. data/spec/rails3/README +0 -256
  165. data/spec/rails3/Rakefile +0 -11
  166. data/spec/rails3/app/controllers/application_controller.rb +0 -208
  167. data/spec/rails3/app/views/sorcery_mailer/send_unlock_token_email.text.erb +0 -1
  168. data/spec/rails3/config/application.rb +0 -46
  169. data/spec/rails3/config/boot.rb +0 -13
  170. data/spec/rails3/config/database.yml +0 -27
  171. data/spec/rails3/config/environments/development.rb +0 -26
  172. data/spec/rails3/config/environments/in_memory.rb +0 -35
  173. data/spec/rails3/config/environments/production.rb +0 -49
  174. data/spec/rails3/config/environments/test.rb +0 -35
  175. data/spec/rails3/config/initializers/session_store.rb +0 -8
  176. data/spec/rails3/config/routes.rb +0 -59
  177. data/spec/rails3/config.ru +0 -4
  178. data/spec/rails3/db/migrate/external/20101224223628_create_authentications.rb +0 -14
  179. data/spec/rails3/lib/tasks/.gitkeep +0 -0
  180. data/spec/rails3/public/404.html +0 -26
  181. data/spec/rails3/public/422.html +0 -26
  182. data/spec/rails3/public/500.html +0 -26
  183. data/spec/rails3/public/favicon.ico +0 -0
  184. data/spec/rails3/public/images/rails.png +0 -0
  185. data/spec/rails3/public/javascripts/application.js +0 -2
  186. data/spec/rails3/public/javascripts/controls.js +0 -965
  187. data/spec/rails3/public/javascripts/dragdrop.js +0 -974
  188. data/spec/rails3/public/javascripts/effects.js +0 -1123
  189. data/spec/rails3/public/javascripts/prototype.js +0 -6001
  190. data/spec/rails3/public/javascripts/rails.js +0 -175
  191. data/spec/rails3/public/robots.txt +0 -5
  192. data/spec/rails3/public/stylesheets/.gitkeep +0 -0
  193. data/spec/rails3/script/rails +0 -6
  194. data/spec/rails3/spec/controller_activity_logging_spec.rb +0 -115
  195. data/spec/rails3/spec/controller_brute_force_protection_spec.rb +0 -88
  196. data/spec/rails3/spec/controller_http_basic_auth_spec.rb +0 -50
  197. data/spec/rails3/spec/controller_oauth2_spec.rb +0 -380
  198. data/spec/rails3/spec/controller_oauth_spec.rb +0 -206
  199. data/spec/rails3/spec/controller_remember_me_spec.rb +0 -96
  200. data/spec/rails3/spec/controller_session_timeout_spec.rb +0 -55
  201. data/spec/rails3/spec/controller_spec.rb +0 -177
  202. data/spec/rails3/spec/integration_spec.rb +0 -23
  203. data/spec/rails3/spec/spec.opts +0 -2
  204. data/spec/rails3/spec/spec_helper.orig.rb +0 -27
  205. data/spec/rails3/spec/spec_helper.rb +0 -71
  206. data/spec/rails3/spec/user_activation_spec.rb +0 -16
  207. data/spec/rails3/spec/user_activity_logging_spec.rb +0 -8
  208. data/spec/rails3/spec/user_spec.rb +0 -36
  209. data/spec/rails3/vendor/plugins/.gitkeep +0 -0
  210. data/spec/rails3_mongo_mapper/.gitignore +0 -4
  211. data/spec/rails3_mongo_mapper/.rspec +0 -1
  212. data/spec/rails3_mongo_mapper/Gemfile +0 -16
  213. data/spec/rails3_mongo_mapper/Gemfile.lock +0 -156
  214. data/spec/rails3_mongo_mapper/Rakefile +0 -11
  215. data/spec/rails3_mongo_mapper/app/controllers/application_controller.rb +0 -122
  216. data/spec/rails3_mongo_mapper/app/helpers/application_helper.rb +0 -2
  217. data/spec/rails3_mongo_mapper/app/mailers/sorcery_mailer.rb +0 -25
  218. data/spec/rails3_mongo_mapper/app/views/layouts/application.html.erb +0 -14
  219. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/activation_email.html.erb +0 -17
  220. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/activation_email.text.erb +0 -9
  221. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/activation_success_email.text.erb +0 -9
  222. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/reset_password_email.html.erb +0 -16
  223. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/reset_password_email.text.erb +0 -8
  224. data/spec/rails3_mongo_mapper/config/boot.rb +0 -13
  225. data/spec/rails3_mongo_mapper/config/environment.rb +0 -5
  226. data/spec/rails3_mongo_mapper/config/environments/development.rb +0 -30
  227. data/spec/rails3_mongo_mapper/config/environments/in_memory.rb +0 -0
  228. data/spec/rails3_mongo_mapper/config/environments/production.rb +0 -49
  229. data/spec/rails3_mongo_mapper/config/initializers/backtrace_silencers.rb +0 -7
  230. data/spec/rails3_mongo_mapper/config/initializers/inflections.rb +0 -10
  231. data/spec/rails3_mongo_mapper/config/initializers/mime_types.rb +0 -5
  232. data/spec/rails3_mongo_mapper/config/initializers/mongo.rb +0 -2
  233. data/spec/rails3_mongo_mapper/config/initializers/secret_token.rb +0 -7
  234. data/spec/rails3_mongo_mapper/config/initializers/session_store.rb +0 -8
  235. data/spec/rails3_mongo_mapper/config/locales/en.yml +0 -5
  236. data/spec/rails3_mongo_mapper/config/routes.rb +0 -59
  237. data/spec/rails3_mongo_mapper/db/schema.rb +0 -23
  238. data/spec/rails3_mongo_mapper/db/seeds.rb +0 -7
  239. data/spec/rails3_mongo_mapper/lib/tasks/.gitkeep +0 -0
  240. data/spec/rails3_mongo_mapper/public/404.html +0 -26
  241. data/spec/rails3_mongo_mapper/public/422.html +0 -26
  242. data/spec/rails3_mongo_mapper/public/500.html +0 -26
  243. data/spec/rails3_mongo_mapper/public/favicon.ico +0 -0
  244. data/spec/rails3_mongo_mapper/public/images/rails.png +0 -0
  245. data/spec/rails3_mongo_mapper/public/javascripts/application.js +0 -2
  246. data/spec/rails3_mongo_mapper/public/javascripts/controls.js +0 -965
  247. data/spec/rails3_mongo_mapper/public/javascripts/dragdrop.js +0 -974
  248. data/spec/rails3_mongo_mapper/public/javascripts/effects.js +0 -1123
  249. data/spec/rails3_mongo_mapper/public/javascripts/prototype.js +0 -6001
  250. data/spec/rails3_mongo_mapper/public/javascripts/rails.js +0 -175
  251. data/spec/rails3_mongo_mapper/public/robots.txt +0 -5
  252. data/spec/rails3_mongo_mapper/public/stylesheets/.gitkeep +0 -0
  253. data/spec/rails3_mongo_mapper/script/rails +0 -6
  254. data/spec/rails3_mongo_mapper/spec/controller_spec.rb +0 -170
  255. data/spec/rails3_mongo_mapper/spec/spec.opts +0 -2
  256. data/spec/rails3_mongo_mapper/spec/spec_helper.orig.rb +0 -27
  257. data/spec/rails3_mongo_mapper/spec/spec_helper.rb +0 -55
  258. data/spec/rails3_mongo_mapper/spec/user_activation_spec.rb +0 -9
  259. data/spec/rails3_mongo_mapper/spec/user_activity_logging_spec.rb +0 -8
  260. data/spec/rails3_mongo_mapper/spec/user_brute_force_protection_spec.rb +0 -8
  261. data/spec/rails3_mongo_mapper/spec/user_oauth_spec.rb +0 -8
  262. data/spec/rails3_mongo_mapper/spec/user_remember_me_spec.rb +0 -8
  263. data/spec/rails3_mongo_mapper/spec/user_reset_password_spec.rb +0 -8
  264. data/spec/rails3_mongo_mapper/spec/user_spec.rb +0 -37
  265. data/spec/rails3_mongo_mapper/vendor/plugins/.gitkeep +0 -0
  266. data/spec/rails3_mongoid/.gitignore +0 -4
  267. data/spec/rails3_mongoid/.rspec +0 -1
  268. data/spec/rails3_mongoid/Gemfile +0 -15
  269. data/spec/rails3_mongoid/Gemfile.lock +0 -146
  270. data/spec/rails3_mongoid/Rakefile +0 -11
  271. data/spec/rails3_mongoid/app/controllers/application_controller.rb +0 -127
  272. data/spec/rails3_mongoid/app/helpers/application_helper.rb +0 -2
  273. data/spec/rails3_mongoid/app/mailers/sorcery_mailer.rb +0 -25
  274. data/spec/rails3_mongoid/app/views/layouts/application.html.erb +0 -14
  275. data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_email.html.erb +0 -17
  276. data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_email.text.erb +0 -9
  277. data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_success_email.html.erb +0 -17
  278. data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_success_email.text.erb +0 -9
  279. data/spec/rails3_mongoid/app/views/sorcery_mailer/reset_password_email.html.erb +0 -16
  280. data/spec/rails3_mongoid/app/views/sorcery_mailer/reset_password_email.text.erb +0 -8
  281. data/spec/rails3_mongoid/config/application.rb +0 -51
  282. data/spec/rails3_mongoid/config/boot.rb +0 -13
  283. data/spec/rails3_mongoid/config/environment.rb +0 -5
  284. data/spec/rails3_mongoid/config/environments/development.rb +0 -26
  285. data/spec/rails3_mongoid/config/environments/in_memory.rb +0 -0
  286. data/spec/rails3_mongoid/config/environments/production.rb +0 -49
  287. data/spec/rails3_mongoid/config/environments/test.rb +0 -35
  288. data/spec/rails3_mongoid/config/initializers/backtrace_silencers.rb +0 -7
  289. data/spec/rails3_mongoid/config/initializers/inflections.rb +0 -10
  290. data/spec/rails3_mongoid/config/initializers/mime_types.rb +0 -5
  291. data/spec/rails3_mongoid/config/initializers/secret_token.rb +0 -7
  292. data/spec/rails3_mongoid/config/locales/en.yml +0 -5
  293. data/spec/rails3_mongoid/config/mongoid.yml +0 -7
  294. data/spec/rails3_mongoid/config/routes.rb +0 -59
  295. data/spec/rails3_mongoid/config.ru +0 -4
  296. data/spec/rails3_mongoid/db/schema.rb +0 -23
  297. data/spec/rails3_mongoid/db/seeds.rb +0 -7
  298. data/spec/rails3_mongoid/lib/tasks/.gitkeep +0 -0
  299. data/spec/rails3_mongoid/public/404.html +0 -26
  300. data/spec/rails3_mongoid/public/422.html +0 -26
  301. data/spec/rails3_mongoid/public/500.html +0 -26
  302. data/spec/rails3_mongoid/public/favicon.ico +0 -0
  303. data/spec/rails3_mongoid/public/images/rails.png +0 -0
  304. data/spec/rails3_mongoid/public/javascripts/application.js +0 -2
  305. data/spec/rails3_mongoid/public/javascripts/controls.js +0 -965
  306. data/spec/rails3_mongoid/public/javascripts/dragdrop.js +0 -974
  307. data/spec/rails3_mongoid/public/javascripts/effects.js +0 -1123
  308. data/spec/rails3_mongoid/public/javascripts/prototype.js +0 -6001
  309. data/spec/rails3_mongoid/public/javascripts/rails.js +0 -175
  310. data/spec/rails3_mongoid/public/robots.txt +0 -5
  311. data/spec/rails3_mongoid/public/stylesheets/.gitkeep +0 -0
  312. data/spec/rails3_mongoid/script/rails +0 -6
  313. data/spec/rails3_mongoid/spec/controller_activity_logging_spec.rb +0 -105
  314. data/spec/rails3_mongoid/spec/controller_spec.rb +0 -181
  315. data/spec/rails3_mongoid/spec/spec.opts +0 -2
  316. data/spec/rails3_mongoid/spec/spec_helper.orig.rb +0 -27
  317. data/spec/rails3_mongoid/spec/spec_helper.rb +0 -55
  318. data/spec/rails3_mongoid/spec/user_activation_spec.rb +0 -9
  319. data/spec/rails3_mongoid/spec/user_activity_logging_spec.rb +0 -8
  320. data/spec/rails3_mongoid/spec/user_brute_force_protection_spec.rb +0 -8
  321. data/spec/rails3_mongoid/spec/user_oauth_spec.rb +0 -8
  322. data/spec/rails3_mongoid/spec/user_remember_me_spec.rb +0 -8
  323. data/spec/rails3_mongoid/spec/user_reset_password_spec.rb +0 -8
  324. data/spec/rails3_mongoid/spec/user_spec.rb +0 -38
  325. data/spec/rails3_mongoid/vendor/plugins/.gitkeep +0 -0
  326. data/spec/shared_examples/controller_oauth2_shared_examples.rb +0 -56
  327. data/spec/shared_examples/controller_oauth_shared_examples.rb +0 -55
  328. /data/lib/sorcery/{controller/submodules/external/protocols → protocols}/certs/ca-bundle.crt +0 -0
  329. /data/spec/{rails3/app/models → rails_app/app/active_record}/authentication.rb +0 -0
  330. /data/spec/{rails3 → rails_app}/app/helpers/application_helper.rb +0 -0
  331. /data/spec/{rails3 → rails_app}/app/mailers/sorcery_mailer.rb +0 -0
  332. /data/spec/{rails3_mongo_mapper/app/models → rails_app/app/mongo_mapper}/authentication.rb +0 -0
  333. /data/spec/{rails3_mongoid/app/models → rails_app/app/mongoid}/authentication.rb +0 -0
  334. /data/spec/{rails3 → rails_app}/app/views/application/index.html.erb +0 -0
  335. /data/spec/{rails3 → rails_app}/app/views/layouts/application.html.erb +0 -0
  336. /data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/activation_email.html.erb +0 -0
  337. /data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/activation_email.text.erb +0 -0
  338. /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
  339. /data/spec/{rails3_mongo_mapper → rails_app}/app/views/sorcery_mailer/activation_success_email.html.erb +0 -0
  340. /data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/activation_success_email.text.erb +0 -0
  341. /data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/reset_password_email.html.erb +0 -0
  342. /data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/reset_password_email.text.erb +0 -0
  343. /data/spec/{rails3 → rails_app}/config/environment.rb +0 -0
  344. /data/spec/{rails3 → rails_app}/config/initializers/backtrace_silencers.rb +0 -0
  345. /data/spec/{rails3 → rails_app}/config/initializers/inflections.rb +0 -0
  346. /data/spec/{rails3 → rails_app}/config/initializers/mime_types.rb +0 -0
  347. /data/spec/{rails3 → rails_app}/config/initializers/secret_token.rb +0 -0
  348. /data/spec/{rails3 → rails_app}/config/locales/en.yml +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