sorcery 0.8.4 → 0.8.5

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of sorcery might be problematic. Click here for more details.

Files changed (281) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +54 -0
  3. data/.travis.yml +13 -1
  4. data/CHANGELOG.md +234 -0
  5. data/Gemfile +17 -14
  6. data/Gemfile.rails4 +24 -0
  7. data/README.md +300 -0
  8. data/Rakefile +3 -79
  9. data/VERSION +1 -1
  10. data/lib/generators/sorcery/helpers.rb +40 -0
  11. data/lib/generators/sorcery/install_generator.rb +21 -17
  12. data/lib/generators/sorcery/templates/initializer.rb +1 -1
  13. data/lib/generators/sorcery/templates/migration/activity_logging.rb +2 -11
  14. data/lib/generators/sorcery/templates/migration/brute_force_protection.rb +1 -7
  15. data/lib/generators/sorcery/templates/migration/core.rb +5 -8
  16. data/lib/generators/sorcery/templates/migration/external.rb +1 -5
  17. data/lib/generators/sorcery/templates/migration/remember_me.rb +2 -9
  18. data/lib/generators/sorcery/templates/migration/reset_password.rb +2 -10
  19. data/lib/generators/sorcery/templates/migration/user_activation.rb +2 -10
  20. data/lib/sorcery/controller.rb +16 -4
  21. data/lib/sorcery/controller/submodules/external.rb +9 -8
  22. data/lib/sorcery/controller/submodules/external/protocols/oauth2.rb +2 -1
  23. data/lib/sorcery/controller/submodules/external/providers/facebook.rb +2 -1
  24. data/lib/sorcery/controller/submodules/external/providers/github.rb +2 -1
  25. data/lib/sorcery/controller/submodules/external/providers/google.rb +2 -1
  26. data/lib/sorcery/controller/submodules/external/providers/linkedin.rb +2 -1
  27. data/lib/sorcery/controller/submodules/external/providers/liveid.rb +2 -1
  28. data/lib/sorcery/controller/submodules/external/providers/twitter.rb +3 -2
  29. data/lib/sorcery/controller/submodules/external/providers/vk.rb +2 -1
  30. data/lib/sorcery/controller/submodules/external/providers/xing.rb +2 -1
  31. data/lib/sorcery/controller/submodules/remember_me.rb +1 -1
  32. data/lib/sorcery/controller/submodules/session_timeout.rb +1 -1
  33. data/lib/sorcery/model.rb +9 -3
  34. data/lib/sorcery/model/adapters/mongoid.rb +3 -3
  35. data/lib/sorcery/model/submodules/brute_force_protection.rb +6 -8
  36. data/lib/sorcery/model/submodules/reset_password.rb +5 -1
  37. data/lib/sorcery/model/submodules/user_activation.rb +18 -4
  38. data/lib/sorcery/test_helpers/internal.rb +21 -4
  39. data/lib/sorcery/test_helpers/internal/rails.rb +4 -4
  40. data/lib/sorcery/test_helpers/rails.rb +2 -2
  41. data/sorcery.gemspec +25 -363
  42. data/spec/{rails3/spec → active_record}/controller_activity_logging_spec.rb +29 -19
  43. data/spec/active_record/controller_brute_force_protection_spec.rb +136 -0
  44. data/spec/{rails3/spec → active_record}/controller_http_basic_auth_spec.rb +26 -17
  45. data/spec/{rails3/spec → active_record}/controller_oauth2_spec.rb +93 -56
  46. data/spec/{rails3/spec → active_record}/controller_oauth_spec.rb +35 -29
  47. data/spec/{rails3/spec → active_record}/controller_remember_me_spec.rb +28 -28
  48. data/spec/{rails3/spec → active_record}/controller_session_timeout_spec.rb +11 -11
  49. data/spec/{rails3/spec → active_record}/controller_spec.rb +19 -19
  50. data/spec/{rails3/spec → active_record}/integration_spec.rb +2 -2
  51. data/spec/{rails3/spec → active_record}/user_activation_spec.rb +8 -6
  52. data/spec/active_record/user_activity_logging_spec.rb +8 -0
  53. data/spec/{rails3/spec → active_record}/user_brute_force_protection_spec.rb +5 -4
  54. data/spec/{rails3/spec → active_record}/user_oauth_spec.rb +5 -4
  55. data/spec/{rails3/spec → active_record}/user_remember_me_spec.rb +4 -3
  56. data/spec/{rails3/spec → active_record}/user_reset_password_spec.rb +6 -6
  57. data/spec/{rails3/spec → active_record}/user_spec.rb +12 -10
  58. data/spec/{rails3_mongo_mapper/spec → mongo_mapper}/controller_spec.rb +15 -15
  59. data/spec/mongo_mapper/user_activation_spec.rb +10 -0
  60. data/spec/mongo_mapper/user_activity_logging_spec.rb +8 -0
  61. data/spec/mongo_mapper/user_brute_force_protection_spec.rb +8 -0
  62. data/spec/mongo_mapper/user_oauth_spec.rb +8 -0
  63. data/spec/mongo_mapper/user_remember_me_spec.rb +8 -0
  64. data/spec/mongo_mapper/user_reset_password_spec.rb +8 -0
  65. data/spec/{rails3_mongo_mapper/spec → mongo_mapper}/user_spec.rb +9 -8
  66. data/spec/{rails3_mongoid/spec → mongoid}/controller_activity_logging_spec.rb +8 -8
  67. data/spec/{rails3_mongoid/spec → mongoid}/controller_spec.rb +14 -14
  68. data/spec/mongoid/user_activation_spec.rb +10 -0
  69. data/spec/mongoid/user_activity_logging_spec.rb +9 -0
  70. data/spec/mongoid/user_brute_force_protection_spec.rb +9 -0
  71. data/spec/mongoid/user_oauth_spec.rb +9 -0
  72. data/spec/mongoid/user_remember_me_spec.rb +9 -0
  73. data/spec/mongoid/user_reset_password_spec.rb +9 -0
  74. data/spec/{rails3_mongoid/spec → mongoid}/user_spec.rb +10 -9
  75. data/spec/orm/active_record.rb +7 -0
  76. data/spec/orm/mongo_mapper.rb +10 -0
  77. data/spec/orm/mongoid.rb +17 -0
  78. data/spec/{rails3/app/models → rails_app/app/active_record}/authentication.rb +0 -0
  79. data/spec/{rails3/app/models → rails_app/app/active_record}/user.rb +1 -2
  80. data/spec/rails_app/app/active_record/user_provider.rb +3 -0
  81. data/spec/{rails3/app/controllers/application_controller.rb → rails_app/app/controllers/sorcery_controller.rb} +26 -15
  82. data/spec/{rails3 → rails_app}/app/helpers/application_helper.rb +0 -0
  83. data/spec/{rails3 → rails_app}/app/mailers/sorcery_mailer.rb +0 -0
  84. data/spec/{rails3_mongo_mapper/app/models → rails_app/app/mongo_mapper}/authentication.rb +0 -0
  85. data/spec/{rails3_mongo_mapper/app/models → rails_app/app/mongo_mapper}/user.rb +0 -0
  86. data/spec/{rails3_mongoid/app/models → rails_app/app/mongoid}/authentication.rb +0 -0
  87. data/spec/{rails3_mongoid/app/models → rails_app/app/mongoid}/user.rb +2 -0
  88. data/spec/{rails3 → rails_app}/app/views/application/index.html.erb +0 -0
  89. data/spec/{rails3 → rails_app}/app/views/layouts/application.html.erb +0 -0
  90. data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/activation_email.html.erb +0 -0
  91. data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/activation_email.text.erb +0 -0
  92. 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
  93. data/spec/{rails3_mongo_mapper → rails_app}/app/views/sorcery_mailer/activation_success_email.html.erb +0 -0
  94. data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/activation_success_email.text.erb +0 -0
  95. data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/reset_password_email.html.erb +0 -0
  96. data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/reset_password_email.text.erb +0 -0
  97. data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/send_unlock_token_email.text.erb +0 -0
  98. data/spec/{rails3_mongo_mapper → rails_app}/config.ru +1 -1
  99. data/spec/{rails3_mongoid → rails_app}/config/application.rb +13 -8
  100. data/spec/rails_app/config/boot.rb +4 -0
  101. data/spec/rails_app/config/database.yml +22 -0
  102. data/spec/{rails3 → rails_app}/config/environment.rb +0 -0
  103. data/spec/{rails3_mongo_mapper → rails_app}/config/environments/test.rb +2 -0
  104. data/spec/{rails3 → rails_app}/config/initializers/backtrace_silencers.rb +0 -0
  105. data/spec/{rails3 → rails_app}/config/initializers/inflections.rb +0 -0
  106. data/spec/{rails3 → rails_app}/config/initializers/mime_types.rb +0 -0
  107. data/spec/{rails3 → rails_app}/config/initializers/secret_token.rb +0 -0
  108. data/spec/{rails3 → rails_app}/config/initializers/session_store.rb +4 -0
  109. data/spec/{rails3 → rails_app}/config/locales/en.yml +0 -0
  110. data/spec/rails_app/config/routes.rb +37 -0
  111. data/spec/{rails3 → rails_app}/db/migrate/activation/20101224223622_add_activation_to_users.rb +3 -3
  112. data/spec/{rails3 → rails_app}/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb +0 -0
  113. data/spec/{rails3 → rails_app}/db/migrate/brute_force_protection/20101224223626_add_brute_force_protection_to_users.rb +0 -0
  114. data/spec/{rails3 → rails_app}/db/migrate/core/20101224223620_create_users.rb +0 -0
  115. data/spec/rails_app/db/migrate/external/20101224223628_create_authentications_and_user_providers.rb +22 -0
  116. data/spec/{rails3 → rails_app}/db/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb +0 -0
  117. data/spec/{rails3 → rails_app}/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb +0 -0
  118. data/spec/{rails3 → rails_app}/db/schema.rb +0 -0
  119. data/spec/{rails3 → rails_app}/db/seeds.rb +0 -0
  120. data/spec/{rails3 → rails_app}/public/404.html +0 -0
  121. data/spec/{rails3 → rails_app}/public/422.html +0 -0
  122. data/spec/{rails3 → rails_app}/public/500.html +0 -0
  123. data/spec/{rails3 → rails_app}/public/favicon.ico +0 -0
  124. data/spec/{rails3 → rails_app}/public/images/rails.png +0 -0
  125. data/spec/{rails3 → rails_app}/public/javascripts/application.js +0 -0
  126. data/spec/{rails3 → rails_app}/public/javascripts/controls.js +0 -0
  127. data/spec/{rails3 → rails_app}/public/javascripts/dragdrop.js +0 -0
  128. data/spec/{rails3 → rails_app}/public/javascripts/effects.js +0 -0
  129. data/spec/{rails3 → rails_app}/public/javascripts/prototype.js +0 -0
  130. data/spec/{rails3 → rails_app}/public/javascripts/rails.js +0 -0
  131. data/spec/{rails3 → rails_app}/public/robots.txt +0 -0
  132. data/spec/{rails3/lib/tasks → rails_app/public/stylesheets}/.gitkeep +0 -0
  133. data/spec/shared_examples/controller_oauth_shared_examples.rb +22 -8
  134. data/spec/shared_examples/user_activation_shared_examples.rb +49 -27
  135. data/spec/shared_examples/user_reset_password_shared_examples.rb +33 -21
  136. data/spec/shared_examples/user_shared_examples.rb +65 -50
  137. data/spec/sorcery_crypto_providers_spec.rb +47 -45
  138. data/spec/spec_helper.rb +38 -4
  139. metadata +117 -254
  140. data/Gemfile.lock +0 -175
  141. data/README.rdoc +0 -261
  142. data/spec/Gemfile +0 -12
  143. data/spec/Gemfile.lock +0 -129
  144. data/spec/README.md +0 -31
  145. data/spec/Rakefile +0 -12
  146. data/spec/rails3/.gitignore +0 -4
  147. data/spec/rails3/.rspec +0 -1
  148. data/spec/rails3/Gemfile +0 -15
  149. data/spec/rails3/Gemfile.lock +0 -162
  150. data/spec/rails3/README +0 -256
  151. data/spec/rails3/Rakefile +0 -11
  152. data/spec/rails3/config.ru +0 -4
  153. data/spec/rails3/config/application.rb +0 -46
  154. data/spec/rails3/config/boot.rb +0 -13
  155. data/spec/rails3/config/database.yml +0 -27
  156. data/spec/rails3/config/environments/development.rb +0 -26
  157. data/spec/rails3/config/environments/in_memory.rb +0 -35
  158. data/spec/rails3/config/environments/production.rb +0 -49
  159. data/spec/rails3/config/environments/test.rb +0 -35
  160. data/spec/rails3/config/routes.rb +0 -59
  161. data/spec/rails3/db/migrate/external/20101224223628_create_authentications.rb +0 -14
  162. data/spec/rails3/public/stylesheets/.gitkeep +0 -0
  163. data/spec/rails3/script/rails +0 -6
  164. data/spec/rails3/spec/controller_brute_force_protection_spec.rb +0 -96
  165. data/spec/rails3/spec/spec.opts +0 -2
  166. data/spec/rails3/spec/spec_helper.orig.rb +0 -27
  167. data/spec/rails3/spec/spec_helper.rb +0 -71
  168. data/spec/rails3/spec/user_activity_logging_spec.rb +0 -8
  169. data/spec/rails3/vendor/plugins/.gitkeep +0 -0
  170. data/spec/rails3_mongo_mapper/.gitignore +0 -4
  171. data/spec/rails3_mongo_mapper/.rspec +0 -1
  172. data/spec/rails3_mongo_mapper/Gemfile +0 -16
  173. data/spec/rails3_mongo_mapper/Gemfile.lock +0 -156
  174. data/spec/rails3_mongo_mapper/Rakefile +0 -11
  175. data/spec/rails3_mongo_mapper/app/controllers/application_controller.rb +0 -122
  176. data/spec/rails3_mongo_mapper/app/helpers/application_helper.rb +0 -2
  177. data/spec/rails3_mongo_mapper/app/mailers/sorcery_mailer.rb +0 -25
  178. data/spec/rails3_mongo_mapper/app/views/layouts/application.html.erb +0 -14
  179. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/activation_email.html.erb +0 -17
  180. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/activation_email.text.erb +0 -9
  181. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/activation_success_email.text.erb +0 -9
  182. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/reset_password_email.html.erb +0 -16
  183. data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/reset_password_email.text.erb +0 -8
  184. data/spec/rails3_mongo_mapper/config/application.rb +0 -51
  185. data/spec/rails3_mongo_mapper/config/boot.rb +0 -13
  186. data/spec/rails3_mongo_mapper/config/environment.rb +0 -5
  187. data/spec/rails3_mongo_mapper/config/environments/development.rb +0 -30
  188. data/spec/rails3_mongo_mapper/config/environments/in_memory.rb +0 -0
  189. data/spec/rails3_mongo_mapper/config/environments/production.rb +0 -49
  190. data/spec/rails3_mongo_mapper/config/initializers/backtrace_silencers.rb +0 -7
  191. data/spec/rails3_mongo_mapper/config/initializers/inflections.rb +0 -10
  192. data/spec/rails3_mongo_mapper/config/initializers/mime_types.rb +0 -5
  193. data/spec/rails3_mongo_mapper/config/initializers/mongo.rb +0 -2
  194. data/spec/rails3_mongo_mapper/config/initializers/secret_token.rb +0 -7
  195. data/spec/rails3_mongo_mapper/config/initializers/session_store.rb +0 -8
  196. data/spec/rails3_mongo_mapper/config/locales/en.yml +0 -5
  197. data/spec/rails3_mongo_mapper/config/routes.rb +0 -59
  198. data/spec/rails3_mongo_mapper/db/schema.rb +0 -23
  199. data/spec/rails3_mongo_mapper/db/seeds.rb +0 -7
  200. data/spec/rails3_mongo_mapper/lib/tasks/.gitkeep +0 -0
  201. data/spec/rails3_mongo_mapper/public/404.html +0 -26
  202. data/spec/rails3_mongo_mapper/public/422.html +0 -26
  203. data/spec/rails3_mongo_mapper/public/500.html +0 -26
  204. data/spec/rails3_mongo_mapper/public/favicon.ico +0 -0
  205. data/spec/rails3_mongo_mapper/public/images/rails.png +0 -0
  206. data/spec/rails3_mongo_mapper/public/javascripts/application.js +0 -2
  207. data/spec/rails3_mongo_mapper/public/javascripts/controls.js +0 -965
  208. data/spec/rails3_mongo_mapper/public/javascripts/dragdrop.js +0 -974
  209. data/spec/rails3_mongo_mapper/public/javascripts/effects.js +0 -1123
  210. data/spec/rails3_mongo_mapper/public/javascripts/prototype.js +0 -6001
  211. data/spec/rails3_mongo_mapper/public/javascripts/rails.js +0 -175
  212. data/spec/rails3_mongo_mapper/public/robots.txt +0 -5
  213. data/spec/rails3_mongo_mapper/public/stylesheets/.gitkeep +0 -0
  214. data/spec/rails3_mongo_mapper/script/rails +0 -6
  215. data/spec/rails3_mongo_mapper/spec/spec.opts +0 -2
  216. data/spec/rails3_mongo_mapper/spec/spec_helper.orig.rb +0 -27
  217. data/spec/rails3_mongo_mapper/spec/spec_helper.rb +0 -55
  218. data/spec/rails3_mongo_mapper/spec/user_activation_spec.rb +0 -9
  219. data/spec/rails3_mongo_mapper/spec/user_activity_logging_spec.rb +0 -8
  220. data/spec/rails3_mongo_mapper/spec/user_brute_force_protection_spec.rb +0 -8
  221. data/spec/rails3_mongo_mapper/spec/user_oauth_spec.rb +0 -8
  222. data/spec/rails3_mongo_mapper/spec/user_remember_me_spec.rb +0 -8
  223. data/spec/rails3_mongo_mapper/spec/user_reset_password_spec.rb +0 -8
  224. data/spec/rails3_mongo_mapper/vendor/plugins/.gitkeep +0 -0
  225. data/spec/rails3_mongoid/.gitignore +0 -4
  226. data/spec/rails3_mongoid/.rspec +0 -1
  227. data/spec/rails3_mongoid/Gemfile +0 -15
  228. data/spec/rails3_mongoid/Gemfile.lock +0 -146
  229. data/spec/rails3_mongoid/Rakefile +0 -11
  230. data/spec/rails3_mongoid/app/controllers/application_controller.rb +0 -127
  231. data/spec/rails3_mongoid/app/helpers/application_helper.rb +0 -2
  232. data/spec/rails3_mongoid/app/mailers/sorcery_mailer.rb +0 -25
  233. data/spec/rails3_mongoid/app/views/layouts/application.html.erb +0 -14
  234. data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_email.html.erb +0 -17
  235. data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_email.text.erb +0 -9
  236. data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_success_email.html.erb +0 -17
  237. data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_success_email.text.erb +0 -9
  238. data/spec/rails3_mongoid/app/views/sorcery_mailer/reset_password_email.html.erb +0 -16
  239. data/spec/rails3_mongoid/app/views/sorcery_mailer/reset_password_email.text.erb +0 -8
  240. data/spec/rails3_mongoid/config.ru +0 -4
  241. data/spec/rails3_mongoid/config/boot.rb +0 -13
  242. data/spec/rails3_mongoid/config/environment.rb +0 -5
  243. data/spec/rails3_mongoid/config/environments/development.rb +0 -26
  244. data/spec/rails3_mongoid/config/environments/in_memory.rb +0 -0
  245. data/spec/rails3_mongoid/config/environments/production.rb +0 -49
  246. data/spec/rails3_mongoid/config/environments/test.rb +0 -35
  247. data/spec/rails3_mongoid/config/initializers/backtrace_silencers.rb +0 -7
  248. data/spec/rails3_mongoid/config/initializers/inflections.rb +0 -10
  249. data/spec/rails3_mongoid/config/initializers/mime_types.rb +0 -5
  250. data/spec/rails3_mongoid/config/initializers/secret_token.rb +0 -7
  251. data/spec/rails3_mongoid/config/initializers/session_store.rb +0 -8
  252. data/spec/rails3_mongoid/config/locales/en.yml +0 -5
  253. data/spec/rails3_mongoid/config/mongoid.yml +0 -7
  254. data/spec/rails3_mongoid/config/routes.rb +0 -59
  255. data/spec/rails3_mongoid/db/schema.rb +0 -23
  256. data/spec/rails3_mongoid/db/seeds.rb +0 -7
  257. data/spec/rails3_mongoid/lib/tasks/.gitkeep +0 -0
  258. data/spec/rails3_mongoid/public/404.html +0 -26
  259. data/spec/rails3_mongoid/public/422.html +0 -26
  260. data/spec/rails3_mongoid/public/500.html +0 -26
  261. data/spec/rails3_mongoid/public/favicon.ico +0 -0
  262. data/spec/rails3_mongoid/public/images/rails.png +0 -0
  263. data/spec/rails3_mongoid/public/javascripts/application.js +0 -2
  264. data/spec/rails3_mongoid/public/javascripts/controls.js +0 -965
  265. data/spec/rails3_mongoid/public/javascripts/dragdrop.js +0 -974
  266. data/spec/rails3_mongoid/public/javascripts/effects.js +0 -1123
  267. data/spec/rails3_mongoid/public/javascripts/prototype.js +0 -6001
  268. data/spec/rails3_mongoid/public/javascripts/rails.js +0 -175
  269. data/spec/rails3_mongoid/public/robots.txt +0 -5
  270. data/spec/rails3_mongoid/public/stylesheets/.gitkeep +0 -0
  271. data/spec/rails3_mongoid/script/rails +0 -6
  272. data/spec/rails3_mongoid/spec/spec.opts +0 -2
  273. data/spec/rails3_mongoid/spec/spec_helper.orig.rb +0 -27
  274. data/spec/rails3_mongoid/spec/spec_helper.rb +0 -55
  275. data/spec/rails3_mongoid/spec/user_activation_spec.rb +0 -9
  276. data/spec/rails3_mongoid/spec/user_activity_logging_spec.rb +0 -8
  277. data/spec/rails3_mongoid/spec/user_brute_force_protection_spec.rb +0 -8
  278. data/spec/rails3_mongoid/spec/user_oauth_spec.rb +0 -8
  279. data/spec/rails3_mongoid/spec/user_remember_me_spec.rb +0 -8
  280. data/spec/rails3_mongoid/spec/user_reset_password_spec.rb +0 -8
  281. data/spec/rails3_mongoid/vendor/plugins/.gitkeep +0 -0
@@ -1,49 +1,52 @@
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
7
  @consumer = OAuth::Consumer.new("key","secret", :site => "http://myapi.com")
7
- OAuth::Consumer.stub!(:new).and_return(@consumer)
8
-
8
+ OAuth::Consumer.stub(:new).and_return(@consumer)
9
+
9
10
  @req_token = OAuth::RequestToken.new(@consumer)
10
- @consumer.stub!(:get_request_token).and_return(@req_token)
11
+ @consumer.stub(:get_request_token).and_return(@req_token)
11
12
  @acc_token = OAuth::AccessToken.new(@consumer)
12
- @req_token.stub!(:get_access_token).and_return(@acc_token)
13
+ @req_token.stub(:get_access_token).and_return(@acc_token)
13
14
  session[:request_token] = @req_token.token
14
15
  session[:request_token_secret] = @req_token.secret
15
- OAuth::RequestToken.stub!(:new).and_return(@req_token)
16
+ OAuth::RequestToken.stub(:new).and_return(@req_token)
16
17
  response = OpenStruct.new()
17
18
  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)
19
+ @acc_token.stub(:get).and_return(response)
19
20
  end
20
21
 
21
- describe ApplicationController do
22
+ describe SorceryController do
22
23
  before(:all) do
23
24
  ActiveRecord::Migrator.migrate("#{Rails.root}/db/migrate/external")
25
+ User.reset_column_information
26
+
24
27
  sorcery_reload!([:external])
25
28
  sorcery_controller_property_set(:external_providers, [:twitter])
26
29
  sorcery_controller_external_property_set(:twitter, :key, "eYVNBjBDi33aa9GkA3w")
27
30
  sorcery_controller_external_property_set(:twitter, :secret, "XpbeSdCoaKSmQGSeokz5qcUATClRW5u08QWNfv71N8")
28
31
  sorcery_controller_external_property_set(:twitter, :callback_url, "http://blabla.com")
29
32
  end
30
-
33
+
31
34
  after(:all) do
32
35
  ActiveRecord::Migrator.rollback("#{Rails.root}/db/migrate/external")
33
36
  end
34
37
  # ----------------- OAuth -----------------------
35
- describe ApplicationController, "'using external API to login'" do
36
-
38
+ describe SorceryController, "'using external API to login'" do
39
+
37
40
  before(:each) do
38
41
  stub_all_oauth_requests!
39
42
  end
40
-
43
+
41
44
  after(:each) do
42
45
  User.delete_all
43
46
  Authentication.delete_all
44
47
  end
45
-
46
- context "when callback_url begin with /" do
48
+
49
+ context "when callback_url begin with /" do
47
50
  before do
48
51
  sorcery_controller_external_property_set(:twitter, :callback_url, "/oauth/twitter/callback")
49
52
  end
@@ -58,22 +61,22 @@ describe ApplicationController do
58
61
  end
59
62
  end
60
63
 
61
- context "when callback_url begin with http://" do
62
- it "login_at redirects correctly" do
64
+ context "when callback_url begin with http://" do
65
+ it "login_at redirects correctly", pending: true do
63
66
  create_new_user
64
67
  get :login_at_test
65
68
  response.should be_a_redirect
66
69
  response.should redirect_to("http://myapi.com/oauth/authorize?oauth_callback=http%3A%2F%2Fblabla.com&oauth_token=")
67
70
  end
68
71
  end
69
-
72
+
70
73
  it "logins if user exists" do
71
74
  sorcery_model_property_set(:authentications_class, Authentication)
72
75
  create_new_external_user(:twitter)
73
76
  get :test_login_from, :oauth_verifier => "blablaRERASDFcxvSDFA"
74
77
  flash[:notice].should == "Success!"
75
78
  end
76
-
79
+
77
80
  it "'login_from' fails if user doesn't exist" do
78
81
  sorcery_model_property_set(:authentications_class, Authentication)
79
82
  create_new_user
@@ -90,32 +93,32 @@ describe ApplicationController do
90
93
  end
91
94
 
92
95
  end
93
-
94
- describe ApplicationController do
96
+
97
+ describe SorceryController do
95
98
  it_behaves_like "oauth_controller"
96
99
  end
97
-
98
- describe ApplicationController, "using OAuth with User Activation features" do
100
+
101
+ describe SorceryController, "using OAuth with User Activation features" do
99
102
  before(:all) do
100
103
  ActiveRecord::Migrator.migrate("#{Rails.root}/db/migrate/activation")
101
104
  sorcery_reload!([:user_activation,:external], :user_activation_mailer => ::SorceryMailer)
102
105
  end
103
-
106
+
104
107
  after(:all) do
105
108
  ActiveRecord::Migrator.rollback("#{Rails.root}/db/migrate/activation")
106
109
  end
107
-
110
+
108
111
  after(:each) do
109
112
  User.delete_all
110
113
  Authentication.delete_all
111
114
  end
112
-
115
+
113
116
  it "should not send activation email to external users" do
114
117
  old_size = ActionMailer::Base.deliveries.size
115
118
  create_new_external_user(:twitter)
116
119
  ActionMailer::Base.deliveries.size.should == old_size
117
120
  end
118
-
121
+
119
122
  it "should not send external users an activation success email" do
120
123
  sorcery_model_property_set(:activation_success_email_method_name, nil)
121
124
  create_new_external_user(:twitter)
@@ -125,16 +128,18 @@ describe ApplicationController do
125
128
  end
126
129
  end
127
130
 
128
- describe ApplicationController, "OAuth with user activation features" do
131
+ describe SorceryController, "OAuth with user activation features" do
129
132
  before(:all) do
130
133
  ActiveRecord::Migrator.migrate("#{Rails.root}/db/migrate/external")
131
134
  ActiveRecord::Migrator.migrate("#{Rails.root}/db/migrate/activity_logging")
135
+ User.reset_column_information
132
136
  sorcery_reload!([:activity_logging, :external])
133
137
  end
134
138
 
135
139
  after(:all) do
136
140
  ActiveRecord::Migrator.rollback("#{Rails.root}/db/migrate/external")
137
141
  ActiveRecord::Migrator.rollback("#{Rails.root}/db/migrate/activity_logging")
142
+ User.reset_column_information
138
143
  end
139
144
 
140
145
  context "when twitter" do
@@ -164,9 +169,10 @@ describe ApplicationController do
164
169
  end
165
170
  end
166
171
 
167
- describe ApplicationController, "OAuth with session timeout features" do
172
+ describe SorceryController, "OAuth with session timeout features" do
168
173
  before(:all) do
169
174
  ActiveRecord::Migrator.migrate("#{Rails.root}/db/migrate/external")
175
+ User.reset_column_information
170
176
  sorcery_reload!([:session_timeout, :external])
171
177
  end
172
178
 
@@ -1,56 +1,56 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
1
+ require 'spec_helper'
2
+
3
+ describe SorceryController do
2
4
 
3
- describe ApplicationController do
4
-
5
5
  # ----------------- REMEMBER ME -----------------------
6
- describe ApplicationController, "with remember me features" do
7
-
6
+ describe SorceryController, "with remember me features" do
7
+
8
8
  before(:all) do
9
9
  ActiveRecord::Migrator.migrate("#{Rails.root}/db/migrate/remember_me")
10
+ User.reset_column_information
10
11
  sorcery_reload!([:remember_me])
11
12
  end
12
-
13
+
13
14
  before(:each) do
14
15
  create_new_user
15
16
  end
16
-
17
+
17
18
  after(:all) do
18
19
  ActiveRecord::Migrator.rollback("#{Rails.root}/db/migrate/remember_me")
19
20
  end
20
-
21
+
21
22
  after(:each) do
22
23
  session = nil
23
24
  cookies = nil
24
25
  User.delete_all
25
26
  end
26
-
27
+
27
28
  it "should set cookie on remember_me!" do
28
- post :test_login_with_remember, :username => 'gizmo', :password => 'secret'
29
- @request.cookies.merge!(cookies)
30
- cookies = ActionDispatch::Cookies::CookieJar.build(@request)
29
+ post :test_login_with_remember, :email => 'bla@bla.com', :password => 'secret'
30
+ # @request.cookies.merge!(cookies)
31
+ # cookies = ActionDispatch::Cookies::CookieJar.build(@request)
31
32
  cookies.signed["remember_me_token"].should == assigns[:current_user].remember_me_token
32
33
  end
33
-
34
+
34
35
  it "should clear cookie on forget_me!" do
35
36
  cookies["remember_me_token"] == {:value => 'asd54234dsfsd43534', :expires => 3600}
36
37
  get :test_logout
37
38
  cookies["remember_me_token"].should be_nil
38
39
  end
39
-
40
- it "login(username,password,remember_me) should login and remember" do
41
- post :test_login_with_remember_in_login, :username => 'gizmo', :password => 'secret', :remember => "1"
42
- @request.cookies.merge!(cookies)
43
- cookies = ActionDispatch::Cookies::CookieJar.build(@request)
40
+
41
+ it "login(email,password,remember_me) should login and remember" do
42
+ post :test_login_with_remember_in_login, :email => 'bla@bla.com', :password => 'secret', :remember => "1"
43
+ # cookies = ActionDispatch::Cookies::CookieJar.build(@request)
44
44
  cookies.signed["remember_me_token"].should_not be_nil
45
45
  cookies.signed["remember_me_token"].should == assigns[:user].remember_me_token
46
46
  end
47
-
47
+
48
48
  it "logout should also forget_me!" do
49
49
  session[:user_id] = @user.id
50
50
  get :test_logout_with_remember
51
51
  cookies["remember_me_token"].should be_nil
52
52
  end
53
-
53
+
54
54
  it "should login_from_cookie" do
55
55
  session[:user_id] = @user.id
56
56
  subject.remember_me!
@@ -61,20 +61,20 @@ describe ApplicationController do
61
61
  get :test_login_from_cookie
62
62
  assigns[:current_user].should == @user
63
63
  end
64
-
64
+
65
65
  it "should not remember_me! when not asked to, even if third parameter is used" do
66
- post :test_login_with_remember_in_login, :username => 'gizmo', :password => 'secret', :remember => "0"
66
+ post :test_login_with_remember_in_login, :email => 'bla@bla.com', :password => 'secret', :remember => "0"
67
67
  cookies["remember_me_token"].should be_nil
68
68
  end
69
-
69
+
70
70
  it "should not remember_me! when not asked to" do
71
- post :test_login, :username => 'gizmo', :password => 'secret'
71
+ post :test_login, :email => 'bla@bla.com', :password => 'secret'
72
72
  cookies["remember_me_token"].should be_nil
73
73
  end
74
-
74
+
75
75
  # --- login_user(user) ---
76
76
  specify { should respond_to(:auto_login) }
77
-
77
+
78
78
  it "auto_login(user) should login a user instance without remembering" do
79
79
  create_new_user
80
80
  session[:user_id] = nil
@@ -83,7 +83,7 @@ describe ApplicationController do
83
83
  assigns[:current_user].should == @user
84
84
  cookies["remember_me_token"].should be_nil
85
85
  end
86
-
86
+
87
87
  it "auto_login(user, true) should login a user instance with remembering" do
88
88
  create_new_user
89
89
  session[:user_id] = nil
@@ -91,6 +91,6 @@ describe ApplicationController do
91
91
  get :test_login_from_cookie
92
92
  assigns[:current_user].should == @user
93
93
  cookies["remember_me_token"].should_not be_nil
94
- end
94
+ end
95
95
  end
96
96
  end
@@ -1,26 +1,26 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
1
+ require 'spec_helper'
2
+
3
+ describe SorceryController do
2
4
 
3
- describe ApplicationController do
4
-
5
5
  # ----------------- SESSION TIMEOUT -----------------------
6
- describe ApplicationController, "with session timeout features" do
6
+ describe SorceryController, "with session timeout features" do
7
7
  before(:all) do
8
8
  sorcery_reload!([:session_timeout])
9
9
  sorcery_controller_property_set(:session_timeout,0.5)
10
10
  create_new_user
11
11
  end
12
-
12
+
13
13
  after(:each) do
14
14
  Timecop.return
15
15
  end
16
-
16
+
17
17
  it "should not reset session before session timeout" do
18
18
  login_user
19
19
  get :test_should_be_logged_in
20
20
  session[:user_id].should_not be_nil
21
21
  response.should be_a_success
22
22
  end
23
-
23
+
24
24
  it "should reset session after session timeout" do
25
25
  login_user
26
26
  Timecop.travel(Time.now.in_time_zone+0.6)
@@ -28,11 +28,11 @@ describe ApplicationController do
28
28
  session[:user_id].should be_nil
29
29
  response.should be_a_redirect
30
30
  end
31
-
31
+
32
32
  context "with 'session_timeout_from_last_action'" do
33
33
  it "should not logout if there was activity" do
34
34
  sorcery_controller_property_set(:session_timeout_from_last_action, true)
35
- get :test_login, :username => 'gizmo', :password => 'secret'
35
+ get :test_login, :email => 'bla@bla.com', :password => 'secret'
36
36
  Timecop.travel(Time.now.in_time_zone+0.3)
37
37
  get :test_should_be_logged_in
38
38
  session[:user_id].should_not be_nil
@@ -41,10 +41,10 @@ describe ApplicationController do
41
41
  session[:user_id].should_not be_nil
42
42
  response.should be_a_success
43
43
  end
44
-
44
+
45
45
  it "with 'session_timeout_from_last_action' should logout if there was no activity" do
46
46
  sorcery_controller_property_set(:session_timeout_from_last_action, true)
47
- get :test_login, :username => 'gizmo', :password => 'secret'
47
+ get :test_login, :email => 'bla@bla.com', :password => 'secret'
48
48
  Timecop.travel(Time.now.in_time_zone+0.6)
49
49
  get :test_should_be_logged_in
50
50
  session[:user_id].should be_nil
@@ -1,9 +1,9 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
1
+ require 'spec_helper'
2
2
 
3
- describe ApplicationController do
3
+ describe SorceryController do
4
4
 
5
5
  # ----------------- PLUGIN CONFIGURATION -----------------------
6
- describe ApplicationController, "plugin configuration" do
6
+ describe SorceryController, "plugin configuration" do
7
7
  before(:all) do
8
8
  sorcery_reload!
9
9
  end
@@ -26,7 +26,7 @@ describe ApplicationController do
26
26
  end
27
27
 
28
28
  # ----------------- PLUGIN ACTIVATED -----------------------
29
- describe ApplicationController, "when activated with sorcery" do
29
+ describe SorceryController, "when activated with sorcery" do
30
30
  before(:all) do
31
31
  sorcery_reload!
32
32
  User.delete_all
@@ -41,7 +41,7 @@ describe ApplicationController do
41
41
  sorcery_reload!
42
42
  User.delete_all
43
43
  sorcery_controller_property_set(:user_class, User)
44
- sorcery_model_property_set(:username_attribute_names, [:username, :email])
44
+ sorcery_model_property_set(:username_attribute_names, [:email])
45
45
  end
46
46
 
47
47
  specify { should respond_to(:login) }
@@ -53,52 +53,52 @@ describe ApplicationController do
53
53
  specify { should respond_to(:current_user) }
54
54
 
55
55
  it "login(username,password) should return the user when success and set the session with user.id" do
56
- get :test_login, :username => 'gizmo', :password => 'secret'
56
+ get :test_login, :email => 'bla@bla.com', :password => 'secret'
57
57
  assigns[:user].should == @user
58
58
  session[:user_id].should == @user.id
59
59
  end
60
60
 
61
61
  it "login(email,password) should return the user when success and set the session with user.id" do
62
- get :test_login, :username => 'bla@bla.com', :password => 'secret'
62
+ get :test_login, :email => 'bla@bla.com', :password => 'secret'
63
63
  assigns[:user].should == @user
64
64
  session[:user_id].should == @user.id
65
65
  end
66
66
 
67
67
  it "login(username,password) should return nil and not set the session when failure" do
68
- get :test_login, :username => 'gizmo', :password => 'opensesame!'
68
+ get :test_login, :email => 'bla@bla.com', :password => 'opensesame!'
69
69
  assigns[:user].should be_nil
70
70
  session[:user_id].should be_nil
71
71
  end
72
72
 
73
73
  it "login(email,password) should return the user when success and set the session with the _csrf_token" do
74
- get :test_login, :username => 'gizmo', :password => 'secret'
74
+ get :test_login, :email => 'bla@bla.com', :password => 'secret'
75
75
  session[:_csrf_token].should_not be_nil
76
76
  end
77
77
 
78
78
  it "login(username,password) should return nil and not set the session when upper case username" do
79
- get :test_login, :username => 'GIZMO', :password => 'secret'
79
+ get :test_login, :email => 'BLA@BLA.COM', :password => 'secret'
80
80
  assigns[:user].should be_nil
81
81
  session[:user_id].should be_nil
82
82
  end
83
83
 
84
84
  it "login(username,password) should return the user and set the session with user.id when upper case username and config is downcase before authenticating" do
85
85
  sorcery_model_property_set(:downcase_username_before_authenticating, true)
86
- get :test_login, :username => 'GIZMO', :password => 'secret'
86
+ get :test_login, :email => 'BLA@BLA.COM', :password => 'secret'
87
87
  assigns[:user].should == @user
88
88
  session[:user_id].should == @user.id
89
89
  end
90
90
 
91
91
  it "login(username,password) should return nil and not set the session when user was created with upper case username, config is default, and log in username is lower case" do
92
- create_new_user({:username => 'GIZMO1', :email => "bla1@bla.com", :password => 'secret1'})
93
- get :test_login, :username => 'gizmo1', :password => 'secret1'
92
+ create_new_user({:username => "", :email => "BLA1@BLA.COM", :password => 'secret1'})
93
+ get :test_login, :email => 'bla1@bla.com', :password => 'secret1'
94
94
  assigns[:user].should be_nil
95
95
  session[:user_id].should be_nil
96
96
  end
97
97
 
98
98
  it "login(username,password) should return the user and set the session with user.id when user was created with upper case username and config is downcase before authenticating" do
99
99
  sorcery_model_property_set(:downcase_username_before_authenticating, true)
100
- create_new_user({:username => 'GIZMO1', :email => "bla1@bla.com", :password => 'secret1'})
101
- get :test_login, :username => 'gizmo1', :password => 'secret1'
100
+ create_new_user({:username => "", :email => "BLA1@BLA.COM", :password => 'secret1'})
101
+ get :test_login, :email => 'bla1@bla.com', :password => 'secret1'
102
102
  assigns[:user].should == @user
103
103
  session[:user_id].should == @user.id
104
104
  end
@@ -123,12 +123,12 @@ describe ApplicationController do
123
123
  it "current_user should return the user instance if logged in" do
124
124
  create_new_user
125
125
  session[:user_id] = @user.id
126
- subject.current_user.should == @user
126
+ 2.times { subject.current_user.should == @user } # memoized!
127
127
  end
128
128
 
129
129
  it "current_user should return false if not logged in" do
130
130
  session[:user_id] = nil
131
- subject.current_user.should == false
131
+ 2.times { subject.current_user.should == false } # memoized!
132
132
  end
133
133
 
134
134
  specify { should respond_to(:require_login) }
@@ -142,7 +142,7 @@ describe ApplicationController do
142
142
 
143
143
  it "require_login before_filter should save the url that the user originally wanted" do
144
144
  get :some_action
145
- session[:return_to_url].should == "http://test.host/application/some_action"
145
+ session[:return_to_url].should == "http://test.host/some_action"
146
146
  response.should redirect_to("http://test.host/")
147
147
  end
148
148
 
@@ -155,7 +155,7 @@ describe ApplicationController do
155
155
 
156
156
  it "on successful login the user should be redirected to the url he originally wanted" do
157
157
  session[:return_to_url] = "http://test.host/some_action"
158
- post :test_return_to, :username => 'gizmo', :password => 'secret'
158
+ post :test_return_to, :email => 'bla@bla.com', :password => 'secret'
159
159
  response.should redirect_to("http://test.host/some_action")
160
160
  flash[:notice].should == "haha!"
161
161
  end