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,17 +40,18 @@ class OauthClientPluginPublicController < PublicController | ||
40 | session[:notice] = _("Can't login with %s") % provider.name | 40 | session[:notice] = _("Can't login with %s") % provider.name |
41 | end | 41 | end |
42 | session[:oauth_client_popup] = true if request.env.fetch("omniauth.params", {})['oauth_client_popup'] | 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 | redirect_to :controller => :account, :action => :login | 55 | redirect_to :controller => :account, :action => :login |
55 | end | 56 | end |
56 | 57 |
plugins/oauth_client/lib/ext/user.rb
@@ -16,7 +16,7 @@ class User | @@ -16,7 +16,7 @@ class User | ||
16 | 16 | ||
17 | def store_oauth_providers | 17 | def store_oauth_providers |
18 | @oauth_providers.each do |provider| | 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 | end | 20 | end |
21 | end | 21 | end |
22 | 22 |
plugins/oauth_client/models/oauth_client_plugin/auth.rb
1 | class OauthClientPlugin::Auth < ActiveRecord::Base | 1 | class OauthClientPlugin::Auth < ActiveRecord::Base |
2 | 2 | ||
3 | attr_accessible :profile, :provider, :enabled, | 3 | attr_accessible :profile, :provider, :enabled, |
4 | - :access_token, :expires_in | 4 | + :access_token, :expires_in, :oauth_data |
5 | 5 | ||
6 | belongs_to :profile, class_name: 'Profile' | 6 | belongs_to :profile, class_name: 'Profile' |
7 | belongs_to :provider, class_name: 'OauthClientPlugin::Provider' | 7 | belongs_to :provider, class_name: 'OauthClientPlugin::Provider' |
@@ -12,6 +12,8 @@ class OauthClientPlugin::Auth < ActiveRecord::Base | @@ -12,6 +12,8 @@ class OauthClientPlugin::Auth < ActiveRecord::Base | ||
12 | 12 | ||
13 | acts_as_having_settings field: :data | 13 | acts_as_having_settings field: :data |
14 | 14 | ||
15 | + serialize :oauth_data, Hash | ||
16 | + | ||
15 | def expires_in | 17 | def expires_in |
16 | self.expires_at - Time.now | 18 | self.expires_at - Time.now |
17 | end | 19 | end |
plugins/oauth_client/test/functional/oauth_client_plugin_public_controller_test.rb
@@ -14,6 +14,7 @@ class OauthClientPluginPublicControllerTest < ActionController::TestCase | @@ -14,6 +14,7 @@ class OauthClientPluginPublicControllerTest < ActionController::TestCase | ||
14 | should 'redirect to signup when user is not found' do | 14 | should 'redirect to signup when user is not found' do |
15 | auth.info.stubs(:email).returns("xyz123@noosfero.org") | 15 | auth.info.stubs(:email).returns("xyz123@noosfero.org") |
16 | auth.info.stubs(:name).returns('xyz123') | 16 | auth.info.stubs(:name).returns('xyz123') |
17 | + auth.stubs(:to_hash).returns({}) | ||
17 | session[:provider_id] = provider.id | 18 | session[:provider_id] = provider.id |
18 | 19 | ||
19 | get :callback | 20 | get :callback |
plugins/oauth_client/test/unit/user_test.rb
@@ -57,7 +57,7 @@ class UserTest < ActiveSupport::TestCase | @@ -57,7 +57,7 @@ class UserTest < ActiveSupport::TestCase | ||
57 | }) | 57 | }) |
58 | user = User.create!(:email => 'testoauth@example.com', :login => 'testoauth', :oauth_providers => [], :oauth_signup_token => 'token') | 58 | user = User.create!(:email => 'testoauth@example.com', :login => 'testoauth', :oauth_providers => [], :oauth_signup_token => 'token') |
59 | user.oauth_signup_token = 'token' | 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 | end | 61 | end |
62 | 62 | ||
63 | should 'save oauth as a hash when creating user with oauth' do | 63 | should 'save oauth as a hash when creating user with oauth' do |
@@ -72,12 +72,12 @@ class UserTest < ActiveSupport::TestCase | @@ -72,12 +72,12 @@ class UserTest < ActiveSupport::TestCase | ||
72 | } | 72 | } |
73 | ) | 73 | ) |
74 | user = User.create!(:email => 'testoauth@example.com', :login => 'testoauth', :oauth_providers => [], :oauth_signup_token => 'token') | 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 | end | 76 | end |
77 | 77 | ||
78 | should 'note save oauth user provider when user is not originated from oauth' do | 78 | should 'note save oauth user provider when user is not originated from oauth' do |
79 | user = User.create!(:email => 'testoauth@example.com', :login => 'testoauth', :password => 'test', :password_confirmation => 'test') | 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 | end | 81 | end |
82 | 82 | ||
83 | end | 83 | end |