Commit 0d9dfcfa522caea587355b2ea2d7c01f5911362c
1 parent
1400bce5
Exists in
staging
and in
2 other branches
oauth_client: fix tests
Showing
5 changed files
with
19 additions
and
15 deletions
Show diff stats
plugins/oauth_client/controllers/public/oauth_client_plugin_public_controller.rb
| ... | ... | @@ -40,17 +40,18 @@ class OauthClientPluginPublicController < PublicController |
| 40 | 40 | session[:notice] = _("Can't login with %s") % provider.name |
| 41 | 41 | end |
| 42 | 42 | session[:oauth_client_popup] = true if request.env.fetch("omniauth.params", {})['oauth_client_popup'] |
| 43 | - session[:return_to] = url_for( | |
| 44 | - :controller => :oauth_client_plugin_public, | |
| 45 | - :action => :finish, | |
| 46 | - :user => { | |
| 47 | - :login => current_user.login, | |
| 48 | - :person => {:identifier => current_user.person.identifier, :name => current_user.person.name} | |
| 49 | - } , | |
| 50 | - :profile_data => {:name => current_user.person.name}, | |
| 51 | - :oauth_client_popup => session[:oauth_client_popup] | |
| 43 | + if current_user.present? | |
| 44 | + session[:return_to] = url_for( | |
| 45 | + :controller => :oauth_client_plugin_public, | |
| 46 | + :action => :finish, | |
| 47 | + :user => { | |
| 48 | + :login => current_user.login, | |
| 49 | + :person => {:identifier => current_user.person.identifier, :name => current_user.person.name} | |
| 50 | + } , | |
| 51 | + :profile_data => {:name => current_user.person.name}, | |
| 52 | + :oauth_client_popup => session[:oauth_client_popup] | |
| 52 | 53 | ) |
| 53 | - | |
| 54 | + end | |
| 54 | 55 | redirect_to :controller => :account, :action => :login |
| 55 | 56 | end |
| 56 | 57 | ... | ... |
plugins/oauth_client/lib/ext/user.rb
| ... | ... | @@ -16,7 +16,7 @@ class User |
| 16 | 16 | |
| 17 | 17 | def store_oauth_providers |
| 18 | 18 | @oauth_providers.each do |provider| |
| 19 | - self.person.oauth_auths.create!(profile: self.person, provider: provider, enabled: true) | |
| 19 | + self.person.oauth_auths.create!(profile: self.person, provider: provider, enabled: true, oauth_data: oauth_data) | |
| 20 | 20 | end |
| 21 | 21 | end |
| 22 | 22 | ... | ... |
plugins/oauth_client/models/oauth_client_plugin/auth.rb
| 1 | 1 | class OauthClientPlugin::Auth < ActiveRecord::Base |
| 2 | 2 | |
| 3 | 3 | attr_accessible :profile, :provider, :enabled, |
| 4 | - :access_token, :expires_in | |
| 4 | + :access_token, :expires_in, :oauth_data | |
| 5 | 5 | |
| 6 | 6 | belongs_to :profile, class_name: 'Profile' |
| 7 | 7 | belongs_to :provider, class_name: 'OauthClientPlugin::Provider' |
| ... | ... | @@ -12,6 +12,8 @@ class OauthClientPlugin::Auth < ActiveRecord::Base |
| 12 | 12 | |
| 13 | 13 | acts_as_having_settings field: :data |
| 14 | 14 | |
| 15 | + serialize :oauth_data, Hash | |
| 16 | + | |
| 15 | 17 | def expires_in |
| 16 | 18 | self.expires_at - Time.now |
| 17 | 19 | end | ... | ... |
plugins/oauth_client/test/functional/oauth_client_plugin_public_controller_test.rb
| ... | ... | @@ -14,6 +14,7 @@ class OauthClientPluginPublicControllerTest < ActionController::TestCase |
| 14 | 14 | should 'redirect to signup when user is not found' do |
| 15 | 15 | auth.info.stubs(:email).returns("xyz123@noosfero.org") |
| 16 | 16 | auth.info.stubs(:name).returns('xyz123') |
| 17 | + auth.stubs(:to_hash).returns({}) | |
| 17 | 18 | session[:provider_id] = provider.id |
| 18 | 19 | |
| 19 | 20 | get :callback | ... | ... |
plugins/oauth_client/test/unit/user_test.rb
| ... | ... | @@ -57,7 +57,7 @@ class UserTest < ActiveSupport::TestCase |
| 57 | 57 | }) |
| 58 | 58 | user = User.create!(:email => 'testoauth@example.com', :login => 'testoauth', :oauth_providers => [], :oauth_signup_token => 'token') |
| 59 | 59 | user.oauth_signup_token = 'token' |
| 60 | - assert user.oauth_user_providers.first.oauth_data.present? | |
| 60 | + assert user.oauth_auths.first.oauth_data.present? | |
| 61 | 61 | end |
| 62 | 62 | |
| 63 | 63 | should 'save oauth as a hash when creating user with oauth' do |
| ... | ... | @@ -72,12 +72,12 @@ class UserTest < ActiveSupport::TestCase |
| 72 | 72 | } |
| 73 | 73 | ) |
| 74 | 74 | user = User.create!(:email => 'testoauth@example.com', :login => 'testoauth', :oauth_providers => [], :oauth_signup_token => 'token') |
| 75 | - assert user.oauth_user_providers.first.oauth_data.is_a? Hash | |
| 75 | + assert user.oauth_auths.first.oauth_data.is_a? Hash | |
| 76 | 76 | end |
| 77 | 77 | |
| 78 | 78 | should 'note save oauth user provider when user is not originated from oauth' do |
| 79 | 79 | user = User.create!(:email => 'testoauth@example.com', :login => 'testoauth', :password => 'test', :password_confirmation => 'test') |
| 80 | - assert user.oauth_user_providers.count.eql? 0 | |
| 80 | + assert user.oauth_auths.count.eql? 0 | |
| 81 | 81 | end |
| 82 | 82 | |
| 83 | 83 | end | ... | ... |