sorcery 0.8.4 → 0.8.6

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 (341) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +55 -0
  3. data/.travis.yml +69 -1
  4. data/CHANGELOG.md +248 -0
  5. data/Gemfile +16 -22
  6. data/Gemfile.rails4 +22 -0
  7. data/README.md +320 -0
  8. data/Rakefile +3 -79
  9. data/VERSION +1 -1
  10. data/gemfiles/active_record-rails41.gemfile +6 -0
  11. data/gemfiles/mongo_mapper-rails41.gemfile +8 -0
  12. data/gemfiles/mongoid-rails41.gemfile +11 -0
  13. data/lib/generators/sorcery/helpers.rb +40 -0
  14. data/lib/generators/sorcery/install_generator.rb +21 -17
  15. data/lib/generators/sorcery/templates/initializer.rb +1 -1
  16. data/lib/generators/sorcery/templates/migration/activity_logging.rb +2 -11
  17. data/lib/generators/sorcery/templates/migration/brute_force_protection.rb +1 -7
  18. data/lib/generators/sorcery/templates/migration/core.rb +5 -8
  19. data/lib/generators/sorcery/templates/migration/external.rb +1 -5
  20. data/lib/generators/sorcery/templates/migration/remember_me.rb +2 -9
  21. data/lib/generators/sorcery/templates/migration/reset_password.rb +2 -10
  22. data/lib/generators/sorcery/templates/migration/user_activation.rb +2 -10
  23. data/lib/sorcery/controller/submodules/external.rb +39 -23
  24. data/lib/sorcery/controller/submodules/remember_me.rb +1 -1
  25. data/lib/sorcery/controller/submodules/session_timeout.rb +2 -2
  26. data/lib/sorcery/controller.rb +18 -11
  27. data/lib/sorcery/model/adapters/active_record.rb +7 -2
  28. data/lib/sorcery/model/adapters/datamapper.rb +123 -0
  29. data/lib/sorcery/model/adapters/mongo_mapper.rb +8 -4
  30. data/lib/sorcery/model/adapters/mongoid.rb +8 -8
  31. data/lib/sorcery/model/submodules/activity_logging.rb +24 -0
  32. data/lib/sorcery/model/submodules/brute_force_protection.rb +22 -8
  33. data/lib/sorcery/model/submodules/remember_me.rb +19 -4
  34. data/lib/sorcery/model/submodules/reset_password.rb +35 -14
  35. data/lib/sorcery/model/submodules/user_activation.rb +69 -24
  36. data/lib/sorcery/model.rb +111 -73
  37. data/lib/sorcery/protocols/oauth.rb +42 -0
  38. data/lib/sorcery/protocols/oauth2.rb +47 -0
  39. data/lib/sorcery/providers/base.rb +27 -0
  40. data/lib/sorcery/providers/facebook.rb +63 -0
  41. data/lib/sorcery/providers/github.rb +51 -0
  42. data/lib/sorcery/providers/google.rb +51 -0
  43. data/lib/sorcery/providers/linkedin.rb +66 -0
  44. data/lib/sorcery/providers/liveid.rb +53 -0
  45. data/lib/sorcery/providers/twitter.rb +59 -0
  46. data/lib/sorcery/providers/vk.rb +61 -0
  47. data/lib/sorcery/providers/xing.rb +64 -0
  48. data/lib/sorcery/test_helpers/internal/rails.rb +17 -6
  49. data/lib/sorcery/test_helpers/internal.rb +23 -6
  50. data/lib/sorcery/test_helpers/rails/controller.rb +17 -0
  51. data/lib/sorcery/test_helpers/rails/integration.rb +26 -0
  52. data/lib/sorcery/test_helpers/rails.rb +1 -10
  53. data/lib/sorcery.rb +20 -28
  54. data/sorcery.gemspec +21 -363
  55. data/spec/active_record/controller_activity_logging_spec.rb +29 -0
  56. data/spec/active_record/controller_brute_force_protection_spec.rb +158 -0
  57. data/spec/active_record/controller_http_basic_auth_spec.rb +65 -0
  58. data/spec/active_record/controller_oauth2_spec.rb +342 -0
  59. data/spec/{rails3/spec → active_record}/controller_oauth_spec.rb +69 -59
  60. data/spec/active_record/controller_remember_me_spec.rb +97 -0
  61. data/spec/active_record/controller_session_timeout_spec.rb +70 -0
  62. data/spec/active_record/controller_spec.rb +8 -0
  63. data/spec/{rails3/spec → active_record}/integration_spec.rb +3 -3
  64. data/spec/active_record/user_activation_spec.rb +18 -0
  65. data/spec/active_record/user_activity_logging_spec.rb +8 -0
  66. data/spec/{rails3/spec → active_record}/user_brute_force_protection_spec.rb +6 -5
  67. data/spec/{rails3/spec → active_record}/user_oauth_spec.rb +6 -5
  68. data/spec/{rails3/spec → active_record}/user_remember_me_spec.rb +5 -4
  69. data/spec/{rails3/spec → active_record}/user_reset_password_spec.rb +7 -7
  70. data/spec/active_record/user_spec.rb +37 -0
  71. data/spec/datamapper/controller_activity_logging_spec.rb +17 -0
  72. data/spec/datamapper/controller_spec.rb +8 -0
  73. data/spec/datamapper/user_activation_spec.rb +10 -0
  74. data/spec/datamapper/user_activity_logging_spec.rb +9 -0
  75. data/spec/datamapper/user_brute_force_protection_spec.rb +9 -0
  76. data/spec/datamapper/user_oauth_spec.rb +9 -0
  77. data/spec/datamapper/user_remember_me_spec.rb +8 -0
  78. data/spec/datamapper/user_reset_password_spec.rb +8 -0
  79. data/spec/datamapper/user_spec.rb +27 -0
  80. data/spec/mongo_mapper/controller_spec.rb +8 -0
  81. data/spec/mongo_mapper/user_activation_spec.rb +9 -0
  82. data/spec/mongo_mapper/user_activity_logging_spec.rb +8 -0
  83. data/spec/mongo_mapper/user_brute_force_protection_spec.rb +8 -0
  84. data/spec/mongo_mapper/user_oauth_spec.rb +8 -0
  85. data/spec/mongo_mapper/user_remember_me_spec.rb +8 -0
  86. data/spec/mongo_mapper/user_reset_password_spec.rb +8 -0
  87. data/spec/mongo_mapper/user_spec.rb +37 -0
  88. data/spec/mongoid/controller_activity_logging_spec.rb +16 -0
  89. data/spec/mongoid/controller_spec.rb +8 -0
  90. data/spec/mongoid/user_activation_spec.rb +9 -0
  91. data/spec/mongoid/user_activity_logging_spec.rb +8 -0
  92. data/spec/mongoid/user_brute_force_protection_spec.rb +8 -0
  93. data/spec/mongoid/user_oauth_spec.rb +8 -0
  94. data/spec/mongoid/user_remember_me_spec.rb +8 -0
  95. data/spec/mongoid/user_reset_password_spec.rb +8 -0
  96. data/spec/mongoid/user_spec.rb +38 -0
  97. data/spec/orm/active_record.rb +9 -0
  98. data/spec/orm/datamapper.rb +34 -0
  99. data/spec/orm/mongo_mapper.rb +11 -0
  100. data/spec/orm/mongoid.rb +18 -0
  101. data/spec/{rails3/app/models → rails_app/app/active_record}/user.rb +1 -2
  102. data/spec/rails_app/app/active_record/user_provider.rb +3 -0
  103. data/spec/rails_app/app/controllers/sorcery_controller.rb +224 -0
  104. data/spec/rails_app/app/datamapper/authentication.rb +8 -0
  105. data/spec/rails_app/app/datamapper/user.rb +7 -0
  106. data/spec/{rails3_mongoid/app/models → rails_app/app/mongoid}/user.rb +2 -0
  107. data/spec/{rails3_mongo_mapper → rails_app}/config/application.rb +13 -8
  108. data/spec/rails_app/config/boot.rb +4 -0
  109. data/spec/rails_app/config/database.yml +22 -0
  110. data/spec/{rails3_mongo_mapper → rails_app}/config/environments/test.rb +2 -0
  111. data/spec/{rails3_mongoid → rails_app}/config/initializers/session_store.rb +4 -0
  112. data/spec/rails_app/config/routes.rb +42 -0
  113. data/spec/{rails3_mongo_mapper → rails_app}/config.ru +1 -1
  114. data/spec/{rails3 → rails_app}/db/migrate/activation/20101224223622_add_activation_to_users.rb +3 -3
  115. data/spec/rails_app/db/migrate/external/20101224223628_create_authentications_and_user_providers.rb +22 -0
  116. data/spec/rails_app/log/development.log +1791 -0
  117. data/spec/shared_examples/controller_activity_logging_shared_examples.rb +125 -0
  118. data/spec/shared_examples/controller_oauth2_shared_examples.rb +32 -36
  119. data/spec/shared_examples/controller_oauth_shared_examples.rb +35 -28
  120. data/spec/shared_examples/controller_shared_examples.rb +203 -0
  121. data/spec/shared_examples/user_activation_shared_examples.rb +136 -97
  122. data/spec/shared_examples/user_activity_logging_shared_examples.rb +10 -10
  123. data/spec/shared_examples/user_brute_force_protection_shared_examples.rb +14 -13
  124. data/spec/shared_examples/user_oauth_shared_examples.rb +23 -15
  125. data/spec/shared_examples/user_remember_me_shared_examples.rb +32 -23
  126. data/spec/shared_examples/user_reset_password_shared_examples.rb +162 -129
  127. data/spec/shared_examples/user_shared_examples.rb +265 -190
  128. data/spec/sorcery_crypto_providers_spec.rb +74 -72
  129. data/spec/spec_helper.rb +47 -4
  130. metadata +187 -368
  131. data/Gemfile.lock +0 -175
  132. data/README.rdoc +0 -261
  133. data/lib/sorcery/controller/submodules/external/protocols/oauth1.rb +0 -46
  134. data/lib/sorcery/controller/submodules/external/protocols/oauth2.rb +0 -49
  135. data/lib/sorcery/controller/submodules/external/providers/base.rb +0 -21
  136. data/lib/sorcery/controller/submodules/external/providers/facebook.rb +0 -98
  137. data/lib/sorcery/controller/submodules/external/providers/github.rb +0 -92
  138. data/lib/sorcery/controller/submodules/external/providers/google.rb +0 -91
  139. data/lib/sorcery/controller/submodules/external/providers/linkedin.rb +0 -102
  140. data/lib/sorcery/controller/submodules/external/providers/liveid.rb +0 -92
  141. data/lib/sorcery/controller/submodules/external/providers/twitter.rb +0 -93
  142. data/lib/sorcery/controller/submodules/external/providers/vk.rb +0 -100
  143. data/lib/sorcery/controller/submodules/external/providers/xing.rb +0 -97
  144. data/lib/sorcery/test_helpers.rb +0 -5
  145. data/spec/Gemfile +0 -12
  146. data/spec/Gemfile.lock +0 -129
  147. data/spec/README.md +0 -31
  148. data/spec/Rakefile +0 -12
  149. data/spec/rails3/.gitignore +0 -4
  150. data/spec/rails3/.rspec +0 -1
  151. data/spec/rails3/Gemfile +0 -15
  152. data/spec/rails3/Gemfile.lock +0 -162
  153. data/spec/rails3/README +0 -256
  154. data/spec/rails3/Rakefile +0 -11
  155. data/spec/rails3/app/controllers/application_controller.rb +0 -208
  156. data/spec/rails3/config/application.rb +0 -46
  157. data/spec/rails3/config/boot.rb +0 -13
  158. data/spec/rails3/config/database.yml +0 -27
  159. data/spec/rails3/config/environments/development.rb +0 -26
  160. data/spec/rails3/config/environments/in_memory.rb +0 -35
  161. data/spec/rails3/config/environments/production.rb +0 -49
  162. data/spec/rails3/config/environments/test.rb +0 -35
  163. data/spec/rails3/config/initializers/session_store.rb +0 -8
  164. data/spec/rails3/config/routes.rb +0 -59
  165. data/spec/rails3/config.ru +0 -4
  166. data/spec/rails3/db/migrate/external/20101224223628_create_authentications.rb +0 -14
  167. data/spec/rails3/public/stylesheets/.gitkeep +0 -0
  168. data/spec/rails3/script/rails +0 -6
  169. data/spec/rails3/spec/controller_activity_logging_spec.rb +0 -130
  170. data/spec/rails3/spec/controller_brute_force_protection_spec.rb +0 -96
  171. data/spec/rails3/spec/controller_http_basic_auth_spec.rb +0 -50
  172. data/spec/rails3/spec/controller_oauth2_spec.rb +0 -380
  173. data/spec/rails3/spec/controller_remember_me_spec.rb +0 -96
  174. data/spec/rails3/spec/controller_session_timeout_spec.rb +0 -55
  175. data/spec/rails3/spec/controller_spec.rb +0 -182
  176. data/spec/rails3/spec/spec.opts +0 -2
  177. data/spec/rails3/spec/spec_helper.orig.rb +0 -27
  178. data/spec/rails3/spec/spec_helper.rb +0 -71
  179. data/spec/rails3/spec/user_activation_spec.rb +0 -16
  180. data/spec/rails3/spec/user_activity_logging_spec.rb +0 -8
  181. data/spec/rails3/spec/user_spec.rb +0 -36
  182. data/spec/rails3/vendor/plugins/.gitkeep +0 -0
  183. data/spec/rails3_mongo_mapper/.gitignore +0 -4
  184. data/spec/rails3_mongo_mapper/.rspec +0 -1
  185. data/spec/rails3_mongo_mapper/Gemfile +0 -16
  186. data/spec/rails3_mongo_mapper/Gemfile.lock +0 -156
  187. data/spec/rails3_mongo_mapper/Rakefile +0 -11
  188. data/spec/rails3_mongo_mapper/app/controllers/application_controller.rb +0 -122
  189. data/spec/rails3_mongo_mapper/app/helpers/application_helper.rb +0 -2
  190. data/spec/rails3_mongo_mapper/app/mailers/sorcery_mailer.rb +0 -25
  191. data/spec/rails3_mongo_mapper/app/views/layouts/application.html.erb +0 -14
  192. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/activation_email.html.erb +0 -17
  193. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/activation_email.text.erb +0 -9
  194. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/activation_success_email.text.erb +0 -9
  195. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/reset_password_email.html.erb +0 -16
  196. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/reset_password_email.text.erb +0 -8
  197. data/spec/rails3_mongo_mapper/config/boot.rb +0 -13
  198. data/spec/rails3_mongo_mapper/config/environment.rb +0 -5
  199. data/spec/rails3_mongo_mapper/config/environments/development.rb +0 -30
  200. data/spec/rails3_mongo_mapper/config/environments/in_memory.rb +0 -0
  201. data/spec/rails3_mongo_mapper/config/environments/production.rb +0 -49
  202. data/spec/rails3_mongo_mapper/config/initializers/backtrace_silencers.rb +0 -7
  203. data/spec/rails3_mongo_mapper/config/initializers/inflections.rb +0 -10
  204. data/spec/rails3_mongo_mapper/config/initializers/mime_types.rb +0 -5
  205. data/spec/rails3_mongo_mapper/config/initializers/mongo.rb +0 -2
  206. data/spec/rails3_mongo_mapper/config/initializers/secret_token.rb +0 -7
  207. data/spec/rails3_mongo_mapper/config/initializers/session_store.rb +0 -8
  208. data/spec/rails3_mongo_mapper/config/locales/en.yml +0 -5
  209. data/spec/rails3_mongo_mapper/config/routes.rb +0 -59
  210. data/spec/rails3_mongo_mapper/db/schema.rb +0 -23
  211. data/spec/rails3_mongo_mapper/db/seeds.rb +0 -7
  212. data/spec/rails3_mongo_mapper/lib/tasks/.gitkeep +0 -0
  213. data/spec/rails3_mongo_mapper/public/404.html +0 -26
  214. data/spec/rails3_mongo_mapper/public/422.html +0 -26
  215. data/spec/rails3_mongo_mapper/public/500.html +0 -26
  216. data/spec/rails3_mongo_mapper/public/favicon.ico +0 -0
  217. data/spec/rails3_mongo_mapper/public/images/rails.png +0 -0
  218. data/spec/rails3_mongo_mapper/public/javascripts/application.js +0 -2
  219. data/spec/rails3_mongo_mapper/public/javascripts/controls.js +0 -965
  220. data/spec/rails3_mongo_mapper/public/javascripts/dragdrop.js +0 -974
  221. data/spec/rails3_mongo_mapper/public/javascripts/effects.js +0 -1123
  222. data/spec/rails3_mongo_mapper/public/javascripts/prototype.js +0 -6001
  223. data/spec/rails3_mongo_mapper/public/javascripts/rails.js +0 -175
  224. data/spec/rails3_mongo_mapper/public/robots.txt +0 -5
  225. data/spec/rails3_mongo_mapper/public/stylesheets/.gitkeep +0 -0
  226. data/spec/rails3_mongo_mapper/script/rails +0 -6
  227. data/spec/rails3_mongo_mapper/spec/controller_spec.rb +0 -175
  228. data/spec/rails3_mongo_mapper/spec/spec.opts +0 -2
  229. data/spec/rails3_mongo_mapper/spec/spec_helper.orig.rb +0 -27
  230. data/spec/rails3_mongo_mapper/spec/spec_helper.rb +0 -55
  231. data/spec/rails3_mongo_mapper/spec/user_activation_spec.rb +0 -9
  232. data/spec/rails3_mongo_mapper/spec/user_activity_logging_spec.rb +0 -8
  233. data/spec/rails3_mongo_mapper/spec/user_brute_force_protection_spec.rb +0 -8
  234. data/spec/rails3_mongo_mapper/spec/user_oauth_spec.rb +0 -8
  235. data/spec/rails3_mongo_mapper/spec/user_remember_me_spec.rb +0 -8
  236. data/spec/rails3_mongo_mapper/spec/user_reset_password_spec.rb +0 -8
  237. data/spec/rails3_mongo_mapper/spec/user_spec.rb +0 -37
  238. data/spec/rails3_mongo_mapper/vendor/plugins/.gitkeep +0 -0
  239. data/spec/rails3_mongoid/.gitignore +0 -4
  240. data/spec/rails3_mongoid/.rspec +0 -1
  241. data/spec/rails3_mongoid/Gemfile +0 -15
  242. data/spec/rails3_mongoid/Gemfile.lock +0 -146
  243. data/spec/rails3_mongoid/Rakefile +0 -11
  244. data/spec/rails3_mongoid/app/controllers/application_controller.rb +0 -127
  245. data/spec/rails3_mongoid/app/helpers/application_helper.rb +0 -2
  246. data/spec/rails3_mongoid/app/mailers/sorcery_mailer.rb +0 -25
  247. data/spec/rails3_mongoid/app/views/layouts/application.html.erb +0 -14
  248. data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_email.html.erb +0 -17
  249. data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_email.text.erb +0 -9
  250. data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_success_email.html.erb +0 -17
  251. data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_success_email.text.erb +0 -9
  252. data/spec/rails3_mongoid/app/views/sorcery_mailer/reset_password_email.html.erb +0 -16
  253. data/spec/rails3_mongoid/app/views/sorcery_mailer/reset_password_email.text.erb +0 -8
  254. data/spec/rails3_mongoid/config/application.rb +0 -51
  255. data/spec/rails3_mongoid/config/boot.rb +0 -13
  256. data/spec/rails3_mongoid/config/environment.rb +0 -5
  257. data/spec/rails3_mongoid/config/environments/development.rb +0 -26
  258. data/spec/rails3_mongoid/config/environments/in_memory.rb +0 -0
  259. data/spec/rails3_mongoid/config/environments/production.rb +0 -49
  260. data/spec/rails3_mongoid/config/environments/test.rb +0 -35
  261. data/spec/rails3_mongoid/config/initializers/backtrace_silencers.rb +0 -7
  262. data/spec/rails3_mongoid/config/initializers/inflections.rb +0 -10
  263. data/spec/rails3_mongoid/config/initializers/mime_types.rb +0 -5
  264. data/spec/rails3_mongoid/config/initializers/secret_token.rb +0 -7
  265. data/spec/rails3_mongoid/config/locales/en.yml +0 -5
  266. data/spec/rails3_mongoid/config/mongoid.yml +0 -7
  267. data/spec/rails3_mongoid/config/routes.rb +0 -59
  268. data/spec/rails3_mongoid/config.ru +0 -4
  269. data/spec/rails3_mongoid/db/schema.rb +0 -23
  270. data/spec/rails3_mongoid/db/seeds.rb +0 -7
  271. data/spec/rails3_mongoid/lib/tasks/.gitkeep +0 -0
  272. data/spec/rails3_mongoid/public/404.html +0 -26
  273. data/spec/rails3_mongoid/public/422.html +0 -26
  274. data/spec/rails3_mongoid/public/500.html +0 -26
  275. data/spec/rails3_mongoid/public/favicon.ico +0 -0
  276. data/spec/rails3_mongoid/public/images/rails.png +0 -0
  277. data/spec/rails3_mongoid/public/javascripts/application.js +0 -2
  278. data/spec/rails3_mongoid/public/javascripts/controls.js +0 -965
  279. data/spec/rails3_mongoid/public/javascripts/dragdrop.js +0 -974
  280. data/spec/rails3_mongoid/public/javascripts/effects.js +0 -1123
  281. data/spec/rails3_mongoid/public/javascripts/prototype.js +0 -6001
  282. data/spec/rails3_mongoid/public/javascripts/rails.js +0 -175
  283. data/spec/rails3_mongoid/public/robots.txt +0 -5
  284. data/spec/rails3_mongoid/public/stylesheets/.gitkeep +0 -0
  285. data/spec/rails3_mongoid/script/rails +0 -6
  286. data/spec/rails3_mongoid/spec/controller_activity_logging_spec.rb +0 -111
  287. data/spec/rails3_mongoid/spec/controller_spec.rb +0 -186
  288. data/spec/rails3_mongoid/spec/spec.opts +0 -2
  289. data/spec/rails3_mongoid/spec/spec_helper.orig.rb +0 -27
  290. data/spec/rails3_mongoid/spec/spec_helper.rb +0 -55
  291. data/spec/rails3_mongoid/spec/user_activation_spec.rb +0 -9
  292. data/spec/rails3_mongoid/spec/user_activity_logging_spec.rb +0 -8
  293. data/spec/rails3_mongoid/spec/user_brute_force_protection_spec.rb +0 -8
  294. data/spec/rails3_mongoid/spec/user_oauth_spec.rb +0 -8
  295. data/spec/rails3_mongoid/spec/user_remember_me_spec.rb +0 -8
  296. data/spec/rails3_mongoid/spec/user_reset_password_spec.rb +0 -8
  297. data/spec/rails3_mongoid/spec/user_spec.rb +0 -38
  298. data/spec/rails3_mongoid/vendor/plugins/.gitkeep +0 -0
  299. /data/lib/sorcery/{controller/submodules/external/protocols → protocols}/certs/ca-bundle.crt +0 -0
  300. /data/spec/{rails3/app/models → rails_app/app/active_record}/authentication.rb +0 -0
  301. /data/spec/{rails3 → rails_app}/app/helpers/application_helper.rb +0 -0
  302. /data/spec/{rails3 → rails_app}/app/mailers/sorcery_mailer.rb +0 -0
  303. /data/spec/{rails3_mongo_mapper/app/models → rails_app/app/mongo_mapper}/authentication.rb +0 -0
  304. /data/spec/{rails3_mongo_mapper/app/models → rails_app/app/mongo_mapper}/user.rb +0 -0
  305. /data/spec/{rails3_mongoid/app/models → rails_app/app/mongoid}/authentication.rb +0 -0
  306. /data/spec/{rails3 → rails_app}/app/views/application/index.html.erb +0 -0
  307. /data/spec/{rails3 → rails_app}/app/views/layouts/application.html.erb +0 -0
  308. /data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/activation_email.html.erb +0 -0
  309. /data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/activation_email.text.erb +0 -0
  310. /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
  311. /data/spec/{rails3_mongo_mapper → rails_app}/app/views/sorcery_mailer/activation_success_email.html.erb +0 -0
  312. /data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/activation_success_email.text.erb +0 -0
  313. /data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/reset_password_email.html.erb +0 -0
  314. /data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/reset_password_email.text.erb +0 -0
  315. /data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/send_unlock_token_email.text.erb +0 -0
  316. /data/spec/{rails3 → rails_app}/config/environment.rb +0 -0
  317. /data/spec/{rails3 → rails_app}/config/initializers/backtrace_silencers.rb +0 -0
  318. /data/spec/{rails3 → rails_app}/config/initializers/inflections.rb +0 -0
  319. /data/spec/{rails3 → rails_app}/config/initializers/mime_types.rb +0 -0
  320. /data/spec/{rails3 → rails_app}/config/initializers/secret_token.rb +0 -0
  321. /data/spec/{rails3 → rails_app}/config/locales/en.yml +0 -0
  322. /data/spec/{rails3 → rails_app}/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb +0 -0
  323. /data/spec/{rails3 → rails_app}/db/migrate/brute_force_protection/20101224223626_add_brute_force_protection_to_users.rb +0 -0
  324. /data/spec/{rails3 → rails_app}/db/migrate/core/20101224223620_create_users.rb +0 -0
  325. /data/spec/{rails3 → rails_app}/db/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb +0 -0
  326. /data/spec/{rails3 → rails_app}/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb +0 -0
  327. /data/spec/{rails3 → rails_app}/db/schema.rb +0 -0
  328. /data/spec/{rails3 → rails_app}/db/seeds.rb +0 -0
  329. /data/spec/{rails3 → rails_app}/public/404.html +0 -0
  330. /data/spec/{rails3 → rails_app}/public/422.html +0 -0
  331. /data/spec/{rails3 → rails_app}/public/500.html +0 -0
  332. /data/spec/{rails3 → rails_app}/public/favicon.ico +0 -0
  333. /data/spec/{rails3 → rails_app}/public/images/rails.png +0 -0
  334. /data/spec/{rails3 → rails_app}/public/javascripts/application.js +0 -0
  335. /data/spec/{rails3 → rails_app}/public/javascripts/controls.js +0 -0
  336. /data/spec/{rails3 → rails_app}/public/javascripts/dragdrop.js +0 -0
  337. /data/spec/{rails3 → rails_app}/public/javascripts/effects.js +0 -0
  338. /data/spec/{rails3 → rails_app}/public/javascripts/prototype.js +0 -0
  339. /data/spec/{rails3 → rails_app}/public/javascripts/rails.js +0 -0
  340. /data/spec/{rails3 → rails_app}/public/robots.txt +0 -0
  341. /data/spec/{rails3/lib/tasks → rails_app/public/stylesheets}/.gitkeep +0 -0
@@ -1,140 +1,147 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
- require File.expand_path(File.dirname(__FILE__) + '/../../shared_examples/controller_oauth_shared_examples')
1
+ require 'spec_helper'
2
+
3
+ require 'shared_examples/controller_oauth_shared_examples'
3
4
  require 'ostruct'
4
5
 
5
6
  def stub_all_oauth_requests!
6
- @consumer = OAuth::Consumer.new("key","secret", :site => "http://myapi.com")
7
- OAuth::Consumer.stub!(:new).and_return(@consumer)
8
-
9
- @req_token = OAuth::RequestToken.new(@consumer)
10
- @consumer.stub!(:get_request_token).and_return(@req_token)
11
- @acc_token = OAuth::AccessToken.new(@consumer)
12
- @req_token.stub!(:get_access_token).and_return(@acc_token)
13
- session[:request_token] = @req_token.token
14
- session[:request_token_secret] = @req_token.secret
15
- OAuth::RequestToken.stub!(:new).and_return(@req_token)
7
+ consumer = OAuth::Consumer.new("key","secret", :site => "http://myapi.com")
8
+ req_token = OAuth::RequestToken.new(consumer)
9
+ acc_token = OAuth::AccessToken.new(consumer)
10
+
16
11
  response = OpenStruct.new()
17
12
  response.body = {"following"=>false, "listed_count"=>0, "profile_link_color"=>"0084B4", "profile_image_url"=>"http://a1.twimg.com/profile_images/536178575/noamb_normal.jpg", "description"=>"Programmer/Heavy Metal Fan/New Father", "status"=>{"text"=>"coming soon to sorcery gem: twitter and facebook authentication support.", "truncated"=>false, "favorited"=>false, "source"=>"web", "geo"=>nil, "in_reply_to_screen_name"=>nil, "in_reply_to_user_id"=>nil, "in_reply_to_status_id_str"=>nil, "created_at"=>"Sun Mar 06 23:01:12 +0000 2011", "contributors"=>nil, "place"=>nil, "retweeted"=>false, "in_reply_to_status_id"=>nil, "in_reply_to_user_id_str"=>nil, "coordinates"=>nil, "retweet_count"=>0, "id"=>44533012284706816, "id_str"=>"44533012284706816"}, "show_all_inline_media"=>false, "geo_enabled"=>true, "profile_sidebar_border_color"=>"a8c7f7", "url"=>nil, "followers_count"=>10, "screen_name"=>"nbenari", "profile_use_background_image"=>true, "location"=>"Israel", "statuses_count"=>25, "profile_background_color"=>"022330", "lang"=>"en", "verified"=>false, "notifications"=>false, "profile_background_image_url"=>"http://a3.twimg.com/profile_background_images/104087198/04042010339.jpg", "favourites_count"=>5, "created_at"=>"Fri Nov 20 21:58:19 +0000 2009", "is_translator"=>false, "contributors_enabled"=>false, "protected"=>false, "follow_request_sent"=>false, "time_zone"=>"Greenland", "profile_text_color"=>"333333", "name"=>"Noam Ben Ari", "friends_count"=>10, "profile_sidebar_fill_color"=>"C0DFEC", "id"=>123, "id_str"=>"91434812", "profile_background_tile"=>false, "utc_offset"=>-10800}.to_json
18
- @acc_token.stub!(:get).and_return(response)
13
+
14
+ session[:request_token] = req_token.token
15
+ session[:request_token_secret] = req_token.secret
16
+
17
+ allow(OAuth::Consumer).to receive(:new) { consumer }
18
+ allow(consumer).to receive(:get_request_token) { req_token }
19
+ allow(req_token).to receive(:get_access_token) { acc_token }
20
+ allow(OAuth::RequestToken).to receive(:new) { req_token }
21
+ allow(acc_token).to receive(:get) { response }
19
22
  end
20
23
 
21
- describe ApplicationController do
24
+ describe SorceryController, :active_record => true do
22
25
  before(:all) do
23
26
  ActiveRecord::Migrator.migrate("#{Rails.root}/db/migrate/external")
27
+ User.reset_column_information
28
+
24
29
  sorcery_reload!([:external])
25
30
  sorcery_controller_property_set(:external_providers, [:twitter])
26
31
  sorcery_controller_external_property_set(:twitter, :key, "eYVNBjBDi33aa9GkA3w")
27
32
  sorcery_controller_external_property_set(:twitter, :secret, "XpbeSdCoaKSmQGSeokz5qcUATClRW5u08QWNfv71N8")
28
33
  sorcery_controller_external_property_set(:twitter, :callback_url, "http://blabla.com")
29
34
  end
30
-
35
+
31
36
  after(:all) do
32
37
  ActiveRecord::Migrator.rollback("#{Rails.root}/db/migrate/external")
33
38
  end
34
39
  # ----------------- OAuth -----------------------
35
- describe ApplicationController, "'using external API to login'" do
36
-
40
+ describe SorceryController, "'using external API to login'" do
41
+
37
42
  before(:each) do
38
43
  stub_all_oauth_requests!
39
44
  end
40
-
45
+
41
46
  after(:each) do
42
47
  User.delete_all
43
48
  Authentication.delete_all
44
49
  end
45
-
46
- context "when callback_url begin with /" do
50
+
51
+ context "when callback_url begin with /" do
47
52
  before do
48
53
  sorcery_controller_external_property_set(:twitter, :callback_url, "/oauth/twitter/callback")
49
54
  end
50
55
  it "login_at redirects correctly" do
51
56
  create_new_user
52
57
  get :login_at_test
53
- response.should be_a_redirect
54
- response.should redirect_to("http://myapi.com/oauth/authorize?oauth_callback=http%3A%2F%2Ftest.host%2Foauth%2Ftwitter%2Fcallback&oauth_token=")
58
+ expect(response).to be_a_redirect
59
+ expect(response).to redirect_to("http://myapi.com/oauth/authorize?oauth_callback=http%3A%2F%2Ftest.host%2Foauth%2Ftwitter%2Fcallback&oauth_token=")
55
60
  end
56
61
  after do
57
62
  sorcery_controller_external_property_set(:twitter, :callback_url, "http://blabla.com")
58
63
  end
59
64
  end
60
65
 
61
- context "when callback_url begin with http://" do
62
- it "login_at redirects correctly" do
66
+ context "when callback_url begin with http://" do
67
+ it "login_at redirects correctly", pending: true do
63
68
  create_new_user
64
69
  get :login_at_test
65
- response.should be_a_redirect
66
- response.should redirect_to("http://myapi.com/oauth/authorize?oauth_callback=http%3A%2F%2Fblabla.com&oauth_token=")
70
+ expect(response).to be_a_redirect
71
+ expect(response).to redirect_to("http://myapi.com/oauth/authorize?oauth_callback=http%3A%2F%2Fblabla.com&oauth_token=")
67
72
  end
68
73
  end
69
-
74
+
70
75
  it "logins if user exists" do
71
76
  sorcery_model_property_set(:authentications_class, Authentication)
72
77
  create_new_external_user(:twitter)
73
78
  get :test_login_from, :oauth_verifier => "blablaRERASDFcxvSDFA"
74
- flash[:notice].should == "Success!"
79
+ expect(flash[:notice]).to eq "Success!"
75
80
  end
76
-
81
+
77
82
  it "'login_from' fails if user doesn't exist" do
78
83
  sorcery_model_property_set(:authentications_class, Authentication)
79
84
  create_new_user
80
85
  get :test_login_from, :oauth_verifier => "blablaRERASDFcxvSDFA"
81
- flash[:alert].should == "Failed!"
86
+ expect(flash[:alert]).to eq "Failed!"
82
87
  end
83
88
 
84
- it "on successful 'login_from' the user should be redirected to the url he originally wanted" do
89
+ it "on successful 'login_from' the user is redirected to the url he originally wanted" do
85
90
  sorcery_model_property_set(:authentications_class, Authentication)
86
91
  create_new_external_user(:twitter)
87
92
  get :test_return_to_with_external, {}, :return_to_url => "fuu"
88
- response.should redirect_to("fuu")
89
- flash[:notice].should == "Success!"
93
+ expect(response).to redirect_to("fuu")
94
+ expect(flash[:notice]).to eq "Success!"
90
95
  end
91
96
 
92
97
  end
93
-
94
- describe ApplicationController do
98
+
99
+ describe SorceryController do
95
100
  it_behaves_like "oauth_controller"
96
101
  end
97
-
98
- describe ApplicationController, "using OAuth with User Activation features" do
102
+
103
+ describe SorceryController, "using OAuth with User Activation features" do
99
104
  before(:all) do
100
105
  ActiveRecord::Migrator.migrate("#{Rails.root}/db/migrate/activation")
101
106
  sorcery_reload!([:user_activation,:external], :user_activation_mailer => ::SorceryMailer)
102
107
  end
103
-
108
+
104
109
  after(:all) do
105
110
  ActiveRecord::Migrator.rollback("#{Rails.root}/db/migrate/activation")
106
111
  end
107
-
112
+
108
113
  after(:each) do
109
114
  User.delete_all
110
115
  Authentication.delete_all
111
116
  end
112
-
113
- it "should not send activation email to external users" do
117
+
118
+ it "does not send activation email to external users" do
114
119
  old_size = ActionMailer::Base.deliveries.size
115
120
  create_new_external_user(:twitter)
116
- ActionMailer::Base.deliveries.size.should == old_size
121
+ expect(ActionMailer::Base.deliveries.size).to eq old_size
117
122
  end
118
-
119
- it "should not send external users an activation success email" do
123
+
124
+ it "does not send external users an activation success email" do
120
125
  sorcery_model_property_set(:activation_success_email_method_name, nil)
121
126
  create_new_external_user(:twitter)
122
127
  old_size = ActionMailer::Base.deliveries.size
123
128
  @user.activate!
124
- ActionMailer::Base.deliveries.size.should == old_size
129
+ expect(ActionMailer::Base.deliveries.size).to eq old_size
125
130
  end
126
131
  end
127
132
 
128
- describe ApplicationController, "OAuth with user activation features" do
133
+ describe SorceryController, "OAuth with user activation features" do
129
134
  before(:all) do
130
135
  ActiveRecord::Migrator.migrate("#{Rails.root}/db/migrate/external")
131
136
  ActiveRecord::Migrator.migrate("#{Rails.root}/db/migrate/activity_logging")
137
+ User.reset_column_information
132
138
  sorcery_reload!([:activity_logging, :external])
133
139
  end
134
140
 
135
141
  after(:all) do
136
142
  ActiveRecord::Migrator.rollback("#{Rails.root}/db/migrate/external")
137
143
  ActiveRecord::Migrator.rollback("#{Rails.root}/db/migrate/activity_logging")
144
+ User.reset_column_information
138
145
  end
139
146
 
140
147
  context "when twitter" do
@@ -147,26 +154,27 @@ describe ApplicationController do
147
154
  create_new_external_user(:twitter)
148
155
  end
149
156
 
150
- it "should register login time" do
157
+ it "registers login time" do
151
158
  now = Time.now.in_time_zone
152
159
  get :test_login_from
153
- User.last.last_login_at.should_not be_nil
154
- User.last.last_login_at.to_s(:db).should >= now.to_s(:db)
155
- User.last.last_login_at.to_s(:db).should <= (now+2).to_s(:db)
160
+ expect(User.last.last_login_at).not_to be_nil
161
+ expect(User.last.last_login_at.to_s(:db)).to be >= now.to_s(:db)
162
+ expect(User.last.last_login_at.to_s(:db)).to be <= (now+2).to_s(:db)
156
163
  end
157
164
 
158
- it "should not register login time if configured so" do
165
+ it "does not register login time if configured so" do
159
166
  sorcery_controller_property_set(:register_login_time, false)
160
167
  now = Time.now.in_time_zone
161
168
  get :test_login_from
162
- User.last.last_login_at.should be_nil
169
+ expect(User.last.last_login_at).to be_nil
163
170
  end
164
171
  end
165
172
  end
166
173
 
167
- describe ApplicationController, "OAuth with session timeout features" do
174
+ describe SorceryController, "OAuth with session timeout features" do
168
175
  before(:all) do
169
176
  ActiveRecord::Migrator.migrate("#{Rails.root}/db/migrate/external")
177
+ User.reset_column_information
170
178
  sorcery_reload!([:session_timeout, :external])
171
179
  end
172
180
 
@@ -188,18 +196,20 @@ describe ApplicationController do
188
196
  Timecop.return
189
197
  end
190
198
 
191
- it "should not reset session before session timeout" do
199
+ it "does not reset session before session timeout" do
192
200
  get :test_login_from
193
- session[:user_id].should_not be_nil
194
- flash[:notice].should == "Success!"
201
+
202
+ expect(session[:user_id]).not_to be_nil
203
+ expect(flash[:notice]).to eq "Success!"
195
204
  end
196
205
 
197
- it "should reset session after session timeout" do
206
+ it "resets session after session timeout" do
198
207
  get :test_login_from
199
208
  Timecop.travel(Time.now.in_time_zone+0.6)
200
209
  get :test_should_be_logged_in
201
- session[:user_id].should be_nil
202
- response.should be_a_redirect
210
+
211
+ expect(session[:user_id]).to be_nil
212
+ expect(response).to be_a_redirect
203
213
  end
204
214
  end
205
215
  end
@@ -0,0 +1,97 @@
1
+ require 'spec_helper'
2
+
3
+ describe SorceryController, :active_record => true do
4
+
5
+ let!(:user) { create_new_user }
6
+
7
+ # ----------------- REMEMBER ME -----------------------
8
+ context "with remember me features" do
9
+
10
+ before(:all) do
11
+ ActiveRecord::Migrator.migrate("#{Rails.root}/db/migrate/remember_me")
12
+ User.reset_column_information
13
+ sorcery_reload!([:remember_me])
14
+ end
15
+
16
+ after(:all) do
17
+ ActiveRecord::Migrator.rollback("#{Rails.root}/db/migrate/remember_me")
18
+ end
19
+
20
+ after(:each) do
21
+ session = nil
22
+ cookies = nil
23
+ User.delete_all
24
+ end
25
+
26
+ it "sets cookie on remember_me!" do
27
+ post :test_login_with_remember, :email => 'bla@bla.com', :password => 'secret'
28
+
29
+ expect(cookies.signed["remember_me_token"]).to eq assigns[:current_user].remember_me_token
30
+ end
31
+
32
+ it "clears cookie on forget_me!" do
33
+ cookies["remember_me_token"] == {:value => 'asd54234dsfsd43534', :expires => 3600}
34
+ get :test_logout
35
+
36
+ expect(cookies["remember_me_token"]).to be_nil
37
+ end
38
+
39
+ it "login(email,password,remember_me) logs user in and remembers" do
40
+ post :test_login_with_remember_in_login, :email => 'bla@bla.com', :password => 'secret', :remember => "1"
41
+
42
+ expect(cookies.signed["remember_me_token"]).not_to be_nil
43
+ expect(cookies.signed["remember_me_token"]).to eq assigns[:user].remember_me_token
44
+ end
45
+
46
+ it "logout also calls forget_me!" do
47
+ session[:user_id] = user.id
48
+ get :test_logout_with_remember
49
+
50
+ expect(cookies["remember_me_token"]).to be_nil
51
+ end
52
+
53
+ it "logs user in from cookie" do
54
+ session[:user_id] = user.id
55
+ subject.remember_me!
56
+ subject.instance_eval do
57
+ remove_instance_variable :@current_user
58
+ end
59
+ session[:user_id] = nil
60
+ get :test_login_from_cookie
61
+
62
+ expect(assigns[:current_user]).to eq user
63
+ end
64
+
65
+ it "doest not remember_me! when not asked to, even if third parameter is used" do
66
+ post :test_login_with_remember_in_login, :email => 'bla@bla.com', :password => 'secret', :remember => "0"
67
+
68
+ expect(cookies["remember_me_token"]).to be_nil
69
+ end
70
+
71
+ it "doest not remember_me! when not asked to" do
72
+ post :test_login, :email => 'bla@bla.com', :password => 'secret'
73
+ expect(cookies["remember_me_token"]).to be_nil
74
+ end
75
+
76
+ # --- login_user(user) ---
77
+ specify { expect(@controller).to respond_to :auto_login }
78
+
79
+ it "auto_login(user) logs in an user instance without remembering" do
80
+ session[:user_id] = nil
81
+ subject.auto_login(user)
82
+ get :test_login_from_cookie
83
+
84
+ expect(assigns[:current_user]).to eq user
85
+ expect(cookies["remember_me_token"]).to be_nil
86
+ end
87
+
88
+ it "auto_login(user, true) logs in an user instance with remembering" do
89
+ session[:user_id] = nil
90
+ subject.auto_login(user, true)
91
+ get :test_login_from_cookie
92
+
93
+ expect(assigns[:current_user]).to eq user
94
+ expect(cookies["remember_me_token"]).not_to be_nil
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,70 @@
1
+ require 'spec_helper'
2
+
3
+ describe SorceryController, :active_record => true do
4
+
5
+ let!(:user) { create_new_user }
6
+
7
+ # ----------------- SESSION TIMEOUT -----------------------
8
+ context "with session timeout features" do
9
+ before(:all) do
10
+ sorcery_reload!([:session_timeout])
11
+ sorcery_controller_property_set(:session_timeout,0.5)
12
+ end
13
+
14
+ after(:each) do
15
+ Timecop.return
16
+ end
17
+
18
+ it "does not reset session before session timeout" do
19
+ login_user
20
+ get :test_should_be_logged_in
21
+
22
+ expect(session[:user_id]).not_to be_nil
23
+ expect(response).to be_a_success
24
+ end
25
+
26
+ it "resets session after session timeout" do
27
+ login_user
28
+ Timecop.travel(Time.now.in_time_zone+0.6)
29
+ get :test_should_be_logged_in
30
+
31
+ expect(session[:user_id]).to be_nil
32
+ expect(response).to be_a_redirect
33
+ end
34
+
35
+ it "works if the session is stored as a string or a Time" do
36
+ session[:login_time] = Time.now.to_s
37
+ get :test_login, :email => 'bla@bla.com', :password => 'secret'
38
+
39
+ expect(session[:user_id]).not_to be_nil
40
+ expect(response).to be_a_success
41
+ end
42
+
43
+ context "with 'session_timeout_from_last_action'" do
44
+ it "does not logout if there was activity" do
45
+ sorcery_controller_property_set(:session_timeout_from_last_action, true)
46
+ get :test_login, :email => 'bla@bla.com', :password => 'secret'
47
+ Timecop.travel(Time.now.in_time_zone+0.3)
48
+ get :test_should_be_logged_in
49
+
50
+ expect(session[:user_id]).not_to be_nil
51
+
52
+ Timecop.travel(Time.now.in_time_zone+0.3)
53
+ get :test_should_be_logged_in
54
+
55
+ expect(session[:user_id]).not_to be_nil
56
+ expect(response).to be_a_success
57
+ end
58
+
59
+ it "with 'session_timeout_from_last_action' logs out if there was no activity" do
60
+ sorcery_controller_property_set(:session_timeout_from_last_action, true)
61
+ get :test_login, :email => 'bla@bla.com', :password => 'secret'
62
+ Timecop.travel(Time.now.in_time_zone+0.6)
63
+ get :test_should_be_logged_in
64
+
65
+ expect(session[:user_id]).to be_nil
66
+ expect(response).to be_a_redirect
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'shared_examples/controller_shared_examples'
3
+
4
+ describe SorceryController, :active_record => true do
5
+
6
+ it_should_behave_like "sorcery_controller"
7
+
8
+ end
@@ -1,11 +1,11 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
1
+ require 'spec_helper'
2
2
 
3
- describe "the login process", :type => :request do
3
+ describe "the login process", :type => :request, :active_record => true do
4
4
  before(:all) do
5
5
  sorcery_reload!
6
6
  create_new_user
7
7
  end
8
-
8
+
9
9
  after(:all) do
10
10
  end
11
11
  end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ require 'rails_app/app/mailers/sorcery_mailer'
4
+ require 'shared_examples/user_activation_shared_examples'
5
+
6
+ describe User, "with activation submodule", :active_record => true do
7
+ before(:all) do
8
+ ActiveRecord::Migrator.migrate("#{Rails.root}/db/migrate/activation")
9
+ User.reset_column_information
10
+ end
11
+
12
+ after(:all) do
13
+ ActiveRecord::Migrator.rollback("#{Rails.root}/db/migrate/activation")
14
+ end
15
+
16
+ it_behaves_like "rails_3_activation_model"
17
+
18
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'shared_examples/user_activity_logging_shared_examples'
3
+
4
+ describe User, "with activity logging submodule", :active_record => true do
5
+
6
+ it_behaves_like "rails_3_activity_logging_model"
7
+
8
+ end
@@ -1,15 +1,16 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
- require File.expand_path(File.dirname(__FILE__) + '/../../shared_examples/user_brute_force_protection_shared_examples')
1
+ require 'spec_helper'
2
+ require 'shared_examples/user_brute_force_protection_shared_examples'
3
3
 
4
- describe "User with brute_force_protection submodule" do
4
+ describe User, "with brute_force_protection submodule", :active_record => true do
5
5
  before(:all) do
6
6
  ActiveRecord::Migrator.migrate("#{Rails.root}/db/migrate/brute_force_protection")
7
+ User.reset_column_information
7
8
  end
8
-
9
+
9
10
  after(:all) do
10
11
  ActiveRecord::Migrator.rollback("#{Rails.root}/db/migrate/brute_force_protection")
11
12
  end
12
13
 
13
14
  it_behaves_like "rails_3_brute_force_protection_model"
14
-
15
+
15
16
  end
@@ -1,15 +1,16 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
- require File.expand_path(File.dirname(__FILE__) + '/../../shared_examples/user_oauth_shared_examples')
1
+ require 'spec_helper'
2
+ require 'shared_examples/user_oauth_shared_examples'
3
3
 
4
- describe "User with oauth submodule" do
4
+ describe User, "with oauth submodule", :active_record => true do
5
5
  before(:all) do
6
6
  ActiveRecord::Migrator.migrate("#{Rails.root}/db/migrate/external")
7
+ User.reset_column_information
7
8
  end
8
-
9
+
9
10
  after(:all) do
10
11
  ActiveRecord::Migrator.rollback("#{Rails.root}/db/migrate/external")
11
12
  end
12
13
 
13
14
  it_behaves_like "rails_3_oauth_model"
14
-
15
+
15
16
  end
@@ -1,11 +1,12 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
- require File.expand_path(File.dirname(__FILE__) + '/../../shared_examples/user_remember_me_shared_examples')
1
+ require 'spec_helper'
2
+ require 'shared_examples/user_remember_me_shared_examples'
3
3
 
4
- describe "User with remember_me submodule" do
4
+ describe User, "with remember_me submodule", :active_record => true do
5
5
  before(:all) do
6
6
  ActiveRecord::Migrator.migrate("#{Rails.root}/db/migrate/remember_me")
7
+ User.reset_column_information
7
8
  end
8
-
9
+
9
10
  after(:all) do
10
11
  ActiveRecord::Migrator.rollback("#{Rails.root}/db/migrate/remember_me")
11
12
  end
@@ -1,16 +1,16 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
- require File.expand_path(File.dirname(__FILE__) + '/../../shared_examples/user_reset_password_shared_examples')
1
+ require 'spec_helper'
2
+ require 'shared_examples/user_reset_password_shared_examples'
3
3
 
4
-
5
- describe "User with reset_password submodule" do
4
+ describe User, "with reset_password submodule", :active_record => true do
6
5
  before(:all) do
7
6
  ActiveRecord::Migrator.migrate("#{Rails.root}/db/migrate/reset_password")
7
+ User.reset_column_information
8
8
  end
9
-
9
+
10
10
  after(:all) do
11
11
  ActiveRecord::Migrator.rollback("#{Rails.root}/db/migrate/reset_password")
12
12
  end
13
13
 
14
14
  it_behaves_like "rails_3_reset_password_model"
15
-
16
- end
15
+
16
+ end
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+ require 'rails_app/app/mailers/sorcery_mailer'
3
+ require 'shared_examples/user_shared_examples'
4
+
5
+ describe User, "with no submodules (core)", :active_record => true do
6
+ before(:all) do
7
+ sorcery_reload!
8
+ end
9
+
10
+ context "when app has plugin loaded" do
11
+ it "responds to the plugin activation class method" do
12
+ expect(ActiveRecord::Base).to respond_to :authenticates_with_sorcery!
13
+ end
14
+
15
+ it "User responds to .authenticates_with_sorcery!" do
16
+ expect(User).to respond_to :authenticates_with_sorcery!
17
+ end
18
+ end
19
+
20
+ # ----------------- PLUGIN CONFIGURATION -----------------------
21
+
22
+ it_should_behave_like "rails_3_core_model"
23
+
24
+ describe "external users" do
25
+ before(:all) do
26
+ ActiveRecord::Migrator.migrate("#{Rails.root}/db/migrate/external")
27
+ User.reset_column_information
28
+ sorcery_reload!
29
+ end
30
+
31
+ after(:all) do
32
+ ActiveRecord::Migrator.rollback("#{Rails.root}/db/migrate/external")
33
+ end
34
+
35
+ it_should_behave_like "external_user"
36
+ end
37
+ end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+ require 'shared_examples/controller_activity_logging_shared_examples'
3
+
4
+ describe SorceryController, :datamapper => true do
5
+
6
+ # ----------------- ACTIVITY LOGGING -----------------------
7
+ context "with activity logging features" do
8
+ after(:each) do
9
+ # NOTE dm-constraints supports only pg and mysql
10
+ Authentication.all.destroy
11
+ User.delete_all
12
+ end
13
+
14
+ it_behaves_like "controller_activity_logging"
15
+
16
+ end
17
+ end
@@ -0,0 +1,8 @@
1
+ require 'spec_helper'
2
+ require 'shared_examples/controller_shared_examples'
3
+
4
+ describe SorceryController, :datamapper => true do
5
+
6
+ it_should_behave_like "sorcery_controller"
7
+
8
+ end
@@ -0,0 +1,10 @@
1
+ require 'spec_helper'
2
+
3
+ require 'rails_app/app/mailers/sorcery_mailer'
4
+ require 'shared_examples/user_activation_shared_examples'
5
+
6
+ describe User, "with activation submodule", :datamapper => true do
7
+
8
+ it_behaves_like "rails_3_activation_model"
9
+
10
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+
3
+ require 'shared_examples/user_activity_logging_shared_examples'
4
+
5
+ describe User, "with activity logging submodule", :datamapper => true do
6
+
7
+ it_behaves_like "rails_3_activity_logging_model"
8
+
9
+ end