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.
- checksums.yaml +4 -4
- data/.gitignore +54 -0
- data/.travis.yml +13 -1
- data/CHANGELOG.md +234 -0
- data/Gemfile +17 -14
- data/Gemfile.rails4 +24 -0
- data/README.md +300 -0
- data/Rakefile +3 -79
- data/VERSION +1 -1
- data/lib/generators/sorcery/helpers.rb +40 -0
- data/lib/generators/sorcery/install_generator.rb +21 -17
- data/lib/generators/sorcery/templates/initializer.rb +1 -1
- data/lib/generators/sorcery/templates/migration/activity_logging.rb +2 -11
- data/lib/generators/sorcery/templates/migration/brute_force_protection.rb +1 -7
- data/lib/generators/sorcery/templates/migration/core.rb +5 -8
- data/lib/generators/sorcery/templates/migration/external.rb +1 -5
- data/lib/generators/sorcery/templates/migration/remember_me.rb +2 -9
- data/lib/generators/sorcery/templates/migration/reset_password.rb +2 -10
- data/lib/generators/sorcery/templates/migration/user_activation.rb +2 -10
- data/lib/sorcery/controller.rb +16 -4
- data/lib/sorcery/controller/submodules/external.rb +9 -8
- data/lib/sorcery/controller/submodules/external/protocols/oauth2.rb +2 -1
- data/lib/sorcery/controller/submodules/external/providers/facebook.rb +2 -1
- data/lib/sorcery/controller/submodules/external/providers/github.rb +2 -1
- data/lib/sorcery/controller/submodules/external/providers/google.rb +2 -1
- data/lib/sorcery/controller/submodules/external/providers/linkedin.rb +2 -1
- data/lib/sorcery/controller/submodules/external/providers/liveid.rb +2 -1
- data/lib/sorcery/controller/submodules/external/providers/twitter.rb +3 -2
- data/lib/sorcery/controller/submodules/external/providers/vk.rb +2 -1
- data/lib/sorcery/controller/submodules/external/providers/xing.rb +2 -1
- data/lib/sorcery/controller/submodules/remember_me.rb +1 -1
- data/lib/sorcery/controller/submodules/session_timeout.rb +1 -1
- data/lib/sorcery/model.rb +9 -3
- data/lib/sorcery/model/adapters/mongoid.rb +3 -3
- data/lib/sorcery/model/submodules/brute_force_protection.rb +6 -8
- data/lib/sorcery/model/submodules/reset_password.rb +5 -1
- data/lib/sorcery/model/submodules/user_activation.rb +18 -4
- data/lib/sorcery/test_helpers/internal.rb +21 -4
- data/lib/sorcery/test_helpers/internal/rails.rb +4 -4
- data/lib/sorcery/test_helpers/rails.rb +2 -2
- data/sorcery.gemspec +25 -363
- data/spec/{rails3/spec → active_record}/controller_activity_logging_spec.rb +29 -19
- data/spec/active_record/controller_brute_force_protection_spec.rb +136 -0
- data/spec/{rails3/spec → active_record}/controller_http_basic_auth_spec.rb +26 -17
- data/spec/{rails3/spec → active_record}/controller_oauth2_spec.rb +93 -56
- data/spec/{rails3/spec → active_record}/controller_oauth_spec.rb +35 -29
- data/spec/{rails3/spec → active_record}/controller_remember_me_spec.rb +28 -28
- data/spec/{rails3/spec → active_record}/controller_session_timeout_spec.rb +11 -11
- data/spec/{rails3/spec → active_record}/controller_spec.rb +19 -19
- data/spec/{rails3/spec → active_record}/integration_spec.rb +2 -2
- data/spec/{rails3/spec → active_record}/user_activation_spec.rb +8 -6
- data/spec/active_record/user_activity_logging_spec.rb +8 -0
- data/spec/{rails3/spec → active_record}/user_brute_force_protection_spec.rb +5 -4
- data/spec/{rails3/spec → active_record}/user_oauth_spec.rb +5 -4
- data/spec/{rails3/spec → active_record}/user_remember_me_spec.rb +4 -3
- data/spec/{rails3/spec → active_record}/user_reset_password_spec.rb +6 -6
- data/spec/{rails3/spec → active_record}/user_spec.rb +12 -10
- data/spec/{rails3_mongo_mapper/spec → mongo_mapper}/controller_spec.rb +15 -15
- data/spec/mongo_mapper/user_activation_spec.rb +10 -0
- data/spec/mongo_mapper/user_activity_logging_spec.rb +8 -0
- data/spec/mongo_mapper/user_brute_force_protection_spec.rb +8 -0
- data/spec/mongo_mapper/user_oauth_spec.rb +8 -0
- data/spec/mongo_mapper/user_remember_me_spec.rb +8 -0
- data/spec/mongo_mapper/user_reset_password_spec.rb +8 -0
- data/spec/{rails3_mongo_mapper/spec → mongo_mapper}/user_spec.rb +9 -8
- data/spec/{rails3_mongoid/spec → mongoid}/controller_activity_logging_spec.rb +8 -8
- data/spec/{rails3_mongoid/spec → mongoid}/controller_spec.rb +14 -14
- data/spec/mongoid/user_activation_spec.rb +10 -0
- data/spec/mongoid/user_activity_logging_spec.rb +9 -0
- data/spec/mongoid/user_brute_force_protection_spec.rb +9 -0
- data/spec/mongoid/user_oauth_spec.rb +9 -0
- data/spec/mongoid/user_remember_me_spec.rb +9 -0
- data/spec/mongoid/user_reset_password_spec.rb +9 -0
- data/spec/{rails3_mongoid/spec → mongoid}/user_spec.rb +10 -9
- data/spec/orm/active_record.rb +7 -0
- data/spec/orm/mongo_mapper.rb +10 -0
- data/spec/orm/mongoid.rb +17 -0
- data/spec/{rails3/app/models → rails_app/app/active_record}/authentication.rb +0 -0
- data/spec/{rails3/app/models → rails_app/app/active_record}/user.rb +1 -2
- data/spec/rails_app/app/active_record/user_provider.rb +3 -0
- data/spec/{rails3/app/controllers/application_controller.rb → rails_app/app/controllers/sorcery_controller.rb} +26 -15
- data/spec/{rails3 → rails_app}/app/helpers/application_helper.rb +0 -0
- data/spec/{rails3 → rails_app}/app/mailers/sorcery_mailer.rb +0 -0
- data/spec/{rails3_mongo_mapper/app/models → rails_app/app/mongo_mapper}/authentication.rb +0 -0
- data/spec/{rails3_mongo_mapper/app/models → rails_app/app/mongo_mapper}/user.rb +0 -0
- data/spec/{rails3_mongoid/app/models → rails_app/app/mongoid}/authentication.rb +0 -0
- data/spec/{rails3_mongoid/app/models → rails_app/app/mongoid}/user.rb +2 -0
- data/spec/{rails3 → rails_app}/app/views/application/index.html.erb +0 -0
- data/spec/{rails3 → rails_app}/app/views/layouts/application.html.erb +0 -0
- data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/activation_email.html.erb +0 -0
- data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/activation_email.text.erb +0 -0
- 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
- data/spec/{rails3_mongo_mapper → rails_app}/app/views/sorcery_mailer/activation_success_email.html.erb +0 -0
- data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/activation_success_email.text.erb +0 -0
- data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/reset_password_email.html.erb +0 -0
- data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/reset_password_email.text.erb +0 -0
- data/spec/{rails3 → rails_app}/app/views/sorcery_mailer/send_unlock_token_email.text.erb +0 -0
- data/spec/{rails3_mongo_mapper → rails_app}/config.ru +1 -1
- data/spec/{rails3_mongoid → rails_app}/config/application.rb +13 -8
- data/spec/rails_app/config/boot.rb +4 -0
- data/spec/rails_app/config/database.yml +22 -0
- data/spec/{rails3 → rails_app}/config/environment.rb +0 -0
- data/spec/{rails3_mongo_mapper → rails_app}/config/environments/test.rb +2 -0
- data/spec/{rails3 → rails_app}/config/initializers/backtrace_silencers.rb +0 -0
- data/spec/{rails3 → rails_app}/config/initializers/inflections.rb +0 -0
- data/spec/{rails3 → rails_app}/config/initializers/mime_types.rb +0 -0
- data/spec/{rails3 → rails_app}/config/initializers/secret_token.rb +0 -0
- data/spec/{rails3 → rails_app}/config/initializers/session_store.rb +4 -0
- data/spec/{rails3 → rails_app}/config/locales/en.yml +0 -0
- data/spec/rails_app/config/routes.rb +37 -0
- data/spec/{rails3 → rails_app}/db/migrate/activation/20101224223622_add_activation_to_users.rb +3 -3
- data/spec/{rails3 → rails_app}/db/migrate/activity_logging/20101224223624_add_activity_logging_to_users.rb +0 -0
- data/spec/{rails3 → rails_app}/db/migrate/brute_force_protection/20101224223626_add_brute_force_protection_to_users.rb +0 -0
- data/spec/{rails3 → rails_app}/db/migrate/core/20101224223620_create_users.rb +0 -0
- data/spec/rails_app/db/migrate/external/20101224223628_create_authentications_and_user_providers.rb +22 -0
- data/spec/{rails3 → rails_app}/db/migrate/remember_me/20101224223623_add_remember_me_token_to_users.rb +0 -0
- data/spec/{rails3 → rails_app}/db/migrate/reset_password/20101224223622_add_reset_password_to_users.rb +0 -0
- data/spec/{rails3 → rails_app}/db/schema.rb +0 -0
- data/spec/{rails3 → rails_app}/db/seeds.rb +0 -0
- data/spec/{rails3 → rails_app}/public/404.html +0 -0
- data/spec/{rails3 → rails_app}/public/422.html +0 -0
- data/spec/{rails3 → rails_app}/public/500.html +0 -0
- data/spec/{rails3 → rails_app}/public/favicon.ico +0 -0
- data/spec/{rails3 → rails_app}/public/images/rails.png +0 -0
- data/spec/{rails3 → rails_app}/public/javascripts/application.js +0 -0
- data/spec/{rails3 → rails_app}/public/javascripts/controls.js +0 -0
- data/spec/{rails3 → rails_app}/public/javascripts/dragdrop.js +0 -0
- data/spec/{rails3 → rails_app}/public/javascripts/effects.js +0 -0
- data/spec/{rails3 → rails_app}/public/javascripts/prototype.js +0 -0
- data/spec/{rails3 → rails_app}/public/javascripts/rails.js +0 -0
- data/spec/{rails3 → rails_app}/public/robots.txt +0 -0
- data/spec/{rails3/lib/tasks → rails_app/public/stylesheets}/.gitkeep +0 -0
- data/spec/shared_examples/controller_oauth_shared_examples.rb +22 -8
- data/spec/shared_examples/user_activation_shared_examples.rb +49 -27
- data/spec/shared_examples/user_reset_password_shared_examples.rb +33 -21
- data/spec/shared_examples/user_shared_examples.rb +65 -50
- data/spec/sorcery_crypto_providers_spec.rb +47 -45
- data/spec/spec_helper.rb +38 -4
- metadata +117 -254
- data/Gemfile.lock +0 -175
- data/README.rdoc +0 -261
- data/spec/Gemfile +0 -12
- data/spec/Gemfile.lock +0 -129
- data/spec/README.md +0 -31
- data/spec/Rakefile +0 -12
- data/spec/rails3/.gitignore +0 -4
- data/spec/rails3/.rspec +0 -1
- data/spec/rails3/Gemfile +0 -15
- data/spec/rails3/Gemfile.lock +0 -162
- data/spec/rails3/README +0 -256
- data/spec/rails3/Rakefile +0 -11
- data/spec/rails3/config.ru +0 -4
- data/spec/rails3/config/application.rb +0 -46
- data/spec/rails3/config/boot.rb +0 -13
- data/spec/rails3/config/database.yml +0 -27
- data/spec/rails3/config/environments/development.rb +0 -26
- data/spec/rails3/config/environments/in_memory.rb +0 -35
- data/spec/rails3/config/environments/production.rb +0 -49
- data/spec/rails3/config/environments/test.rb +0 -35
- data/spec/rails3/config/routes.rb +0 -59
- data/spec/rails3/db/migrate/external/20101224223628_create_authentications.rb +0 -14
- data/spec/rails3/public/stylesheets/.gitkeep +0 -0
- data/spec/rails3/script/rails +0 -6
- data/spec/rails3/spec/controller_brute_force_protection_spec.rb +0 -96
- data/spec/rails3/spec/spec.opts +0 -2
- data/spec/rails3/spec/spec_helper.orig.rb +0 -27
- data/spec/rails3/spec/spec_helper.rb +0 -71
- data/spec/rails3/spec/user_activity_logging_spec.rb +0 -8
- data/spec/rails3/vendor/plugins/.gitkeep +0 -0
- data/spec/rails3_mongo_mapper/.gitignore +0 -4
- data/spec/rails3_mongo_mapper/.rspec +0 -1
- data/spec/rails3_mongo_mapper/Gemfile +0 -16
- data/spec/rails3_mongo_mapper/Gemfile.lock +0 -156
- data/spec/rails3_mongo_mapper/Rakefile +0 -11
- data/spec/rails3_mongo_mapper/app/controllers/application_controller.rb +0 -122
- data/spec/rails3_mongo_mapper/app/helpers/application_helper.rb +0 -2
- data/spec/rails3_mongo_mapper/app/mailers/sorcery_mailer.rb +0 -25
- data/spec/rails3_mongo_mapper/app/views/layouts/application.html.erb +0 -14
- data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/activation_email.html.erb +0 -17
- data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/activation_email.text.erb +0 -9
- data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/activation_success_email.text.erb +0 -9
- data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/reset_password_email.html.erb +0 -16
- data/spec/rails3_mongo_mapper/app/views/sorcery_mailer/reset_password_email.text.erb +0 -8
- data/spec/rails3_mongo_mapper/config/application.rb +0 -51
- data/spec/rails3_mongo_mapper/config/boot.rb +0 -13
- data/spec/rails3_mongo_mapper/config/environment.rb +0 -5
- data/spec/rails3_mongo_mapper/config/environments/development.rb +0 -30
- data/spec/rails3_mongo_mapper/config/environments/in_memory.rb +0 -0
- data/spec/rails3_mongo_mapper/config/environments/production.rb +0 -49
- data/spec/rails3_mongo_mapper/config/initializers/backtrace_silencers.rb +0 -7
- data/spec/rails3_mongo_mapper/config/initializers/inflections.rb +0 -10
- data/spec/rails3_mongo_mapper/config/initializers/mime_types.rb +0 -5
- data/spec/rails3_mongo_mapper/config/initializers/mongo.rb +0 -2
- data/spec/rails3_mongo_mapper/config/initializers/secret_token.rb +0 -7
- data/spec/rails3_mongo_mapper/config/initializers/session_store.rb +0 -8
- data/spec/rails3_mongo_mapper/config/locales/en.yml +0 -5
- data/spec/rails3_mongo_mapper/config/routes.rb +0 -59
- data/spec/rails3_mongo_mapper/db/schema.rb +0 -23
- data/spec/rails3_mongo_mapper/db/seeds.rb +0 -7
- data/spec/rails3_mongo_mapper/lib/tasks/.gitkeep +0 -0
- data/spec/rails3_mongo_mapper/public/404.html +0 -26
- data/spec/rails3_mongo_mapper/public/422.html +0 -26
- data/spec/rails3_mongo_mapper/public/500.html +0 -26
- data/spec/rails3_mongo_mapper/public/favicon.ico +0 -0
- data/spec/rails3_mongo_mapper/public/images/rails.png +0 -0
- data/spec/rails3_mongo_mapper/public/javascripts/application.js +0 -2
- data/spec/rails3_mongo_mapper/public/javascripts/controls.js +0 -965
- data/spec/rails3_mongo_mapper/public/javascripts/dragdrop.js +0 -974
- data/spec/rails3_mongo_mapper/public/javascripts/effects.js +0 -1123
- data/spec/rails3_mongo_mapper/public/javascripts/prototype.js +0 -6001
- data/spec/rails3_mongo_mapper/public/javascripts/rails.js +0 -175
- data/spec/rails3_mongo_mapper/public/robots.txt +0 -5
- data/spec/rails3_mongo_mapper/public/stylesheets/.gitkeep +0 -0
- data/spec/rails3_mongo_mapper/script/rails +0 -6
- data/spec/rails3_mongo_mapper/spec/spec.opts +0 -2
- data/spec/rails3_mongo_mapper/spec/spec_helper.orig.rb +0 -27
- data/spec/rails3_mongo_mapper/spec/spec_helper.rb +0 -55
- data/spec/rails3_mongo_mapper/spec/user_activation_spec.rb +0 -9
- data/spec/rails3_mongo_mapper/spec/user_activity_logging_spec.rb +0 -8
- data/spec/rails3_mongo_mapper/spec/user_brute_force_protection_spec.rb +0 -8
- data/spec/rails3_mongo_mapper/spec/user_oauth_spec.rb +0 -8
- data/spec/rails3_mongo_mapper/spec/user_remember_me_spec.rb +0 -8
- data/spec/rails3_mongo_mapper/spec/user_reset_password_spec.rb +0 -8
- data/spec/rails3_mongo_mapper/vendor/plugins/.gitkeep +0 -0
- data/spec/rails3_mongoid/.gitignore +0 -4
- data/spec/rails3_mongoid/.rspec +0 -1
- data/spec/rails3_mongoid/Gemfile +0 -15
- data/spec/rails3_mongoid/Gemfile.lock +0 -146
- data/spec/rails3_mongoid/Rakefile +0 -11
- data/spec/rails3_mongoid/app/controllers/application_controller.rb +0 -127
- data/spec/rails3_mongoid/app/helpers/application_helper.rb +0 -2
- data/spec/rails3_mongoid/app/mailers/sorcery_mailer.rb +0 -25
- data/spec/rails3_mongoid/app/views/layouts/application.html.erb +0 -14
- data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_email.html.erb +0 -17
- data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_email.text.erb +0 -9
- data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_success_email.html.erb +0 -17
- data/spec/rails3_mongoid/app/views/sorcery_mailer/activation_success_email.text.erb +0 -9
- data/spec/rails3_mongoid/app/views/sorcery_mailer/reset_password_email.html.erb +0 -16
- data/spec/rails3_mongoid/app/views/sorcery_mailer/reset_password_email.text.erb +0 -8
- data/spec/rails3_mongoid/config.ru +0 -4
- data/spec/rails3_mongoid/config/boot.rb +0 -13
- data/spec/rails3_mongoid/config/environment.rb +0 -5
- data/spec/rails3_mongoid/config/environments/development.rb +0 -26
- data/spec/rails3_mongoid/config/environments/in_memory.rb +0 -0
- data/spec/rails3_mongoid/config/environments/production.rb +0 -49
- data/spec/rails3_mongoid/config/environments/test.rb +0 -35
- data/spec/rails3_mongoid/config/initializers/backtrace_silencers.rb +0 -7
- data/spec/rails3_mongoid/config/initializers/inflections.rb +0 -10
- data/spec/rails3_mongoid/config/initializers/mime_types.rb +0 -5
- data/spec/rails3_mongoid/config/initializers/secret_token.rb +0 -7
- data/spec/rails3_mongoid/config/initializers/session_store.rb +0 -8
- data/spec/rails3_mongoid/config/locales/en.yml +0 -5
- data/spec/rails3_mongoid/config/mongoid.yml +0 -7
- data/spec/rails3_mongoid/config/routes.rb +0 -59
- data/spec/rails3_mongoid/db/schema.rb +0 -23
- data/spec/rails3_mongoid/db/seeds.rb +0 -7
- data/spec/rails3_mongoid/lib/tasks/.gitkeep +0 -0
- data/spec/rails3_mongoid/public/404.html +0 -26
- data/spec/rails3_mongoid/public/422.html +0 -26
- data/spec/rails3_mongoid/public/500.html +0 -26
- data/spec/rails3_mongoid/public/favicon.ico +0 -0
- data/spec/rails3_mongoid/public/images/rails.png +0 -0
- data/spec/rails3_mongoid/public/javascripts/application.js +0 -2
- data/spec/rails3_mongoid/public/javascripts/controls.js +0 -965
- data/spec/rails3_mongoid/public/javascripts/dragdrop.js +0 -974
- data/spec/rails3_mongoid/public/javascripts/effects.js +0 -1123
- data/spec/rails3_mongoid/public/javascripts/prototype.js +0 -6001
- data/spec/rails3_mongoid/public/javascripts/rails.js +0 -175
- data/spec/rails3_mongoid/public/robots.txt +0 -5
- data/spec/rails3_mongoid/public/stylesheets/.gitkeep +0 -0
- data/spec/rails3_mongoid/script/rails +0 -6
- data/spec/rails3_mongoid/spec/spec.opts +0 -2
- data/spec/rails3_mongoid/spec/spec_helper.orig.rb +0 -27
- data/spec/rails3_mongoid/spec/spec_helper.rb +0 -55
- data/spec/rails3_mongoid/spec/user_activation_spec.rb +0 -9
- data/spec/rails3_mongoid/spec/user_activity_logging_spec.rb +0 -8
- data/spec/rails3_mongoid/spec/user_brute_force_protection_spec.rb +0 -8
- data/spec/rails3_mongoid/spec/user_oauth_spec.rb +0 -8
- data/spec/rails3_mongoid/spec/user_remember_me_spec.rb +0 -8
- data/spec/rails3_mongoid/spec/user_reset_password_spec.rb +0 -8
- data/spec/rails3_mongoid/vendor/plugins/.gitkeep +0 -0
@@ -1,49 +1,52 @@
|
|
1
|
-
require
|
2
|
-
|
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
|
8
|
-
|
8
|
+
OAuth::Consumer.stub(:new).and_return(@consumer)
|
9
|
+
|
9
10
|
@req_token = OAuth::RequestToken.new(@consumer)
|
10
|
-
@consumer.stub
|
11
|
+
@consumer.stub(:get_request_token).and_return(@req_token)
|
11
12
|
@acc_token = OAuth::AccessToken.new(@consumer)
|
12
|
-
@req_token.stub
|
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
|
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
|
19
|
+
@acc_token.stub(:get).and_return(response)
|
19
20
|
end
|
20
21
|
|
21
|
-
describe
|
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
|
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
|
96
|
+
|
97
|
+
describe SorceryController do
|
95
98
|
it_behaves_like "oauth_controller"
|
96
99
|
end
|
97
|
-
|
98
|
-
describe
|
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
|
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
|
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
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SorceryController do
|
2
4
|
|
3
|
-
describe ApplicationController do
|
4
|
-
|
5
5
|
# ----------------- REMEMBER ME -----------------------
|
6
|
-
describe
|
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, :
|
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(
|
41
|
-
post :test_login_with_remember_in_login, :
|
42
|
-
|
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, :
|
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, :
|
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
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SorceryController do
|
2
4
|
|
3
|
-
describe ApplicationController do
|
4
|
-
|
5
5
|
# ----------------- SESSION TIMEOUT -----------------------
|
6
|
-
describe
|
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, :
|
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, :
|
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
|
1
|
+
require 'spec_helper'
|
2
2
|
|
3
|
-
describe
|
3
|
+
describe SorceryController do
|
4
4
|
|
5
5
|
# ----------------- PLUGIN CONFIGURATION -----------------------
|
6
|
-
describe
|
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
|
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, [:
|
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, :
|
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, :
|
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, :
|
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, :
|
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, :
|
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, :
|
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 =>
|
93
|
-
get :test_login, :
|
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 =>
|
101
|
-
get :test_login, :
|
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/
|
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, :
|
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
|