authlogic_rpx 1.0.4 → 1.1.0
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.
- data/CHANGELOG.rdoc +10 -0
- data/Manifest +19 -2
- data/README.rdoc +284 -72
- data/Rakefile +30 -2
- data/authlogic_rpx.gemspec +11 -11
- data/generators/add_authlogic_rpx_migration/USAGE +18 -0
- data/generators/add_authlogic_rpx_migration/add_authlogic_rpx_migration_generator.rb +44 -0
- data/generators/add_authlogic_rpx_migration/templates/migration_internal_mapping.rb +34 -0
- data/generators/add_authlogic_rpx_migration/templates/migration_no_mapping.rb +29 -0
- data/lib/authlogic_rpx.rb +1 -0
- data/lib/authlogic_rpx/acts_as_authentic.rb +199 -32
- data/lib/authlogic_rpx/helper.rb +21 -13
- data/lib/authlogic_rpx/rpx_identifier.rb +5 -0
- data/lib/authlogic_rpx/session.rb +23 -16
- data/lib/authlogic_rpx/version.rb +2 -2
- data/test/fixtures/rpxresponses.yml +20 -0
- data/test/fixtures/users.yml +20 -5
- data/test/integration/basic_authentication_and_registration_test.rb +53 -0
- data/test/integration/internal_mapping/basic_authentication_and_registration_test.rb +3 -0
- data/test/integration/internal_mapping/settings_test.rb +10 -0
- data/test/integration/no_mapping/basic_authentication_and_registration_test.rb +3 -0
- data/test/integration/no_mapping/settings_test.rb +10 -0
- data/test/libs/ext_test_unit.rb +30 -0
- data/test/libs/mock_rpx_now.rb +34 -0
- data/test/libs/rails_trickery.rb +2 -2
- data/test/libs/rpxresponse.rb +3 -0
- data/test/libs/user_session.rb +1 -1
- data/test/test_helper.rb +35 -21
- data/test/test_internal_mapping_helper.rb +95 -0
- data/test/unit/acts_as_authentic_settings_test.rb +42 -0
- data/test/unit/session_settings_test.rb +38 -0
- data/test/unit/session_validation_test.rb +16 -0
- data/test/unit/verify_rpx_mock_test.rb +29 -0
- metadata +34 -8
- data/test/acts_as_authentic_test.rb +0 -5
- data/test/session_test.rb +0 -10
@@ -0,0 +1,95 @@
|
|
1
|
+
require "rubygems"
|
2
|
+
begin
|
3
|
+
gem 'test-unit'
|
4
|
+
require "test/unit"
|
5
|
+
require File.dirname(__FILE__) + "/libs/ext_test_unit"
|
6
|
+
rescue Gem::LoadError
|
7
|
+
# assume using stdlib Test:Unit
|
8
|
+
require "test/unit"
|
9
|
+
require File.dirname(__FILE__) + "/libs/ext_test_unit"
|
10
|
+
end
|
11
|
+
|
12
|
+
require "ruby-debug"
|
13
|
+
require "active_record"
|
14
|
+
require "action_controller"
|
15
|
+
|
16
|
+
ActiveRecord::Schema.verbose = false
|
17
|
+
|
18
|
+
begin
|
19
|
+
ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")
|
20
|
+
rescue ArgumentError
|
21
|
+
ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :dbfile => ":memory:")
|
22
|
+
end
|
23
|
+
|
24
|
+
ActiveRecord::Base.configurations = true
|
25
|
+
ActiveRecord::Schema.define(:version => 1) do
|
26
|
+
|
27
|
+
create_table :rpxresponses do |t|
|
28
|
+
t.string :identifier
|
29
|
+
t.string :provider_name
|
30
|
+
t.string :username
|
31
|
+
t.string :verified_email
|
32
|
+
t.string :display_name
|
33
|
+
end
|
34
|
+
|
35
|
+
create_table :users do |t|
|
36
|
+
t.datetime :created_at
|
37
|
+
t.datetime :updated_at
|
38
|
+
t.integer :lock_version, :default => 0
|
39
|
+
t.string :login
|
40
|
+
t.string :crypted_password
|
41
|
+
t.string :password_salt
|
42
|
+
t.string :persistence_token
|
43
|
+
t.string :single_access_token
|
44
|
+
t.string :perishable_token
|
45
|
+
t.string :rpx_identifier
|
46
|
+
t.string :email
|
47
|
+
t.string :first_name
|
48
|
+
t.string :last_name
|
49
|
+
t.integer :login_count, :default => 0, :null => false
|
50
|
+
t.integer :failed_login_count, :default => 0, :null => false
|
51
|
+
t.datetime :last_request_at
|
52
|
+
t.datetime :current_login_at
|
53
|
+
t.datetime :last_login_at
|
54
|
+
t.string :current_login_ip
|
55
|
+
t.string :last_login_ip
|
56
|
+
end
|
57
|
+
|
58
|
+
create_table :rpx_identifiers do |t|
|
59
|
+
t.string :identifier
|
60
|
+
t.string :provider_name
|
61
|
+
t.integer :user_id
|
62
|
+
t.timestamps
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
require "active_record/fixtures"
|
68
|
+
require "authlogic"
|
69
|
+
require "authlogic/test_case"
|
70
|
+
|
71
|
+
require "rpx_now"
|
72
|
+
RPX_API_KEY = 'abcdefghijklmnopqrstuvwxyz' unless defined? RPX_API_KEY
|
73
|
+
|
74
|
+
require File.dirname(__FILE__) + "/../lib/authlogic_rpx"
|
75
|
+
|
76
|
+
require File.dirname(__FILE__) + "/libs/rails_trickery"
|
77
|
+
require File.dirname(__FILE__) + '/libs/rpxresponse'
|
78
|
+
require File.dirname(__FILE__) + '/libs/mock_rpx_now'
|
79
|
+
require File.dirname(__FILE__) + '/libs/user'
|
80
|
+
require File.dirname(__FILE__) + '/libs/user_session'
|
81
|
+
|
82
|
+
class ActiveSupport::TestCase
|
83
|
+
include ActiveRecord::TestFixtures
|
84
|
+
self.fixture_path = File.dirname(__FILE__) + "/fixtures"
|
85
|
+
self.use_transactional_fixtures = false
|
86
|
+
self.use_instantiated_fixtures = false
|
87
|
+
self.pre_loaded_fixtures = false
|
88
|
+
fixtures :all
|
89
|
+
setup :activate_authlogic
|
90
|
+
|
91
|
+
private
|
92
|
+
|
93
|
+
|
94
|
+
end
|
95
|
+
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper.rb'
|
2
|
+
|
3
|
+
class ActsAsAuthenticSettingsTest < ActiveSupport::TestCase
|
4
|
+
|
5
|
+
must "account_merge_enabled default is disabled" do
|
6
|
+
User.account_merge_enabled
|
7
|
+
assert_false User.account_merge_enabled_value
|
8
|
+
end
|
9
|
+
|
10
|
+
must "account_merge_enabled set disabled" do
|
11
|
+
User.account_merge_enabled false
|
12
|
+
assert_false User.account_merge_enabled_value
|
13
|
+
end
|
14
|
+
|
15
|
+
must "account_merge_enabled set enabled" do
|
16
|
+
User.account_merge_enabled true
|
17
|
+
assert_true User.account_merge_enabled_value
|
18
|
+
end
|
19
|
+
|
20
|
+
must "account_mapping_mode default is :auto" do
|
21
|
+
User.account_mapping_mode
|
22
|
+
assert_equal :auto, User.account_mapping_mode_value
|
23
|
+
end
|
24
|
+
|
25
|
+
must "account_mapping_mode set :none" do
|
26
|
+
User.account_mapping_mode :none
|
27
|
+
assert_equal :none, User.account_mapping_mode_value
|
28
|
+
assert_equal :none, User.account_mapping_mode_used
|
29
|
+
end
|
30
|
+
|
31
|
+
must "account_mapping_mode set :internal" do
|
32
|
+
User.account_mapping_mode :internal
|
33
|
+
assert_equal :internal, User.account_mapping_mode_value
|
34
|
+
end
|
35
|
+
|
36
|
+
must "invalid account_mapping_mode raises config error" do
|
37
|
+
assert_raises( AuthlogicRpx::ActsAsAuthentic::ConfigurationError ) do
|
38
|
+
User.account_mapping_mode :invalid
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper.rb'
|
2
|
+
|
3
|
+
class SessionSettingsTest < ActiveSupport::TestCase
|
4
|
+
|
5
|
+
must "RPX API key is set" do
|
6
|
+
assert UserSession.rpx_key, "the RPX API key must be set in the Authlogic::Session class configuration"
|
7
|
+
end
|
8
|
+
|
9
|
+
must "auto_register default is enabled" do
|
10
|
+
UserSession.auto_register
|
11
|
+
assert_true UserSession.auto_register_value
|
12
|
+
end
|
13
|
+
|
14
|
+
must "auto_register set disabled" do
|
15
|
+
UserSession.auto_register false
|
16
|
+
assert_false UserSession.auto_register_value
|
17
|
+
end
|
18
|
+
|
19
|
+
must "auto_register set enabled" do
|
20
|
+
UserSession.auto_register true
|
21
|
+
assert_true UserSession.auto_register_value
|
22
|
+
end
|
23
|
+
|
24
|
+
must "rpx_extended_info default is disbled" do
|
25
|
+
assert_false UserSession.rpx_extended_info_value
|
26
|
+
end
|
27
|
+
|
28
|
+
must "rpx_extended_info set enabled" do
|
29
|
+
UserSession.rpx_extended_info true
|
30
|
+
assert_true UserSession.rpx_extended_info_value
|
31
|
+
end
|
32
|
+
|
33
|
+
must "rpx_extended_info set disabled" do
|
34
|
+
UserSession.rpx_extended_info false
|
35
|
+
assert_false UserSession.rpx_extended_info_value
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper.rb'
|
2
|
+
|
3
|
+
class SessionValidationTest < ActiveSupport::TestCase
|
4
|
+
|
5
|
+
must "unvalidated session creation fails" do
|
6
|
+
session = UserSession.new
|
7
|
+
assert_false session.save
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
must "validate valid_rpx_auth_user_one" do
|
12
|
+
session = UserSession.create(users(:valid_rpx_auth_user_one), true )
|
13
|
+
assert_true session.valid?
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper.rb'
|
2
|
+
|
3
|
+
class VerifyRpxMockTest < ActiveSupport::TestCase
|
4
|
+
|
5
|
+
must "get a validated response from RPXNow" do
|
6
|
+
rpx_data = RPXNow.user_data('valid_rpx_auth_user_one',:extended => true )
|
7
|
+
assert_not_nil rpx_data
|
8
|
+
assert_not_nil rpx_data[:identifier]
|
9
|
+
rpx_id = rpx_data[:identifier]
|
10
|
+
assert_false rpx_id.blank?
|
11
|
+
end
|
12
|
+
|
13
|
+
must "get a validated response from RPXNow raw mode" do
|
14
|
+
rpx_data = RPXNow.user_data('valid_rpx_auth_user_one',:extended => true ) { |raw| raw }
|
15
|
+
assert_not_nil rpx_data
|
16
|
+
assert_not_nil rpx_data['profile']
|
17
|
+
rpx_id = rpx_data['profile']['identifier']
|
18
|
+
assert_false rpx_id.blank?
|
19
|
+
rpx_provider_name = rpx_data['profile']['providerName']
|
20
|
+
assert_false rpx_provider_name.blank?
|
21
|
+
end
|
22
|
+
|
23
|
+
must "get nil response from RPXNow if invalid request" do
|
24
|
+
rpx_data = RPXNow.user_data('invalid token',:extended => true )
|
25
|
+
assert_nil rpx_data
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: authlogic_rpx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul Gallagher / tardate
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2010-01-05 00:00:00 +08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -20,7 +20,7 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 2.1.
|
23
|
+
version: 2.1.3
|
24
24
|
version:
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rpx_now
|
@@ -30,7 +30,7 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.6.
|
33
|
+
version: 0.6.11
|
34
34
|
version:
|
35
35
|
description: Authlogic extension/plugin that provides RPX (rpxnow.com) authentication support
|
36
36
|
email: gallagher.paul@gmail.com
|
@@ -44,6 +44,7 @@ extra_rdoc_files:
|
|
44
44
|
- lib/authlogic_rpx.rb
|
45
45
|
- lib/authlogic_rpx/acts_as_authentic.rb
|
46
46
|
- lib/authlogic_rpx/helper.rb
|
47
|
+
- lib/authlogic_rpx/rpx_identifier.rb
|
47
48
|
- lib/authlogic_rpx/session.rb
|
48
49
|
- lib/authlogic_rpx/version.rb
|
49
50
|
files:
|
@@ -53,20 +54,37 @@ files:
|
|
53
54
|
- README.rdoc
|
54
55
|
- Rakefile
|
55
56
|
- authlogic_rpx.gemspec
|
57
|
+
- generators/add_authlogic_rpx_migration/USAGE
|
58
|
+
- generators/add_authlogic_rpx_migration/add_authlogic_rpx_migration_generator.rb
|
59
|
+
- generators/add_authlogic_rpx_migration/templates/migration_internal_mapping.rb
|
60
|
+
- generators/add_authlogic_rpx_migration/templates/migration_no_mapping.rb
|
56
61
|
- init.rb
|
57
62
|
- lib/authlogic_rpx.rb
|
58
63
|
- lib/authlogic_rpx/acts_as_authentic.rb
|
59
64
|
- lib/authlogic_rpx/helper.rb
|
65
|
+
- lib/authlogic_rpx/rpx_identifier.rb
|
60
66
|
- lib/authlogic_rpx/session.rb
|
61
67
|
- lib/authlogic_rpx/version.rb
|
62
68
|
- rails/init.rb
|
63
|
-
- test/
|
69
|
+
- test/fixtures/rpxresponses.yml
|
64
70
|
- test/fixtures/users.yml
|
71
|
+
- test/integration/basic_authentication_and_registration_test.rb
|
72
|
+
- test/integration/internal_mapping/basic_authentication_and_registration_test.rb
|
73
|
+
- test/integration/internal_mapping/settings_test.rb
|
74
|
+
- test/integration/no_mapping/basic_authentication_and_registration_test.rb
|
75
|
+
- test/integration/no_mapping/settings_test.rb
|
76
|
+
- test/libs/ext_test_unit.rb
|
77
|
+
- test/libs/mock_rpx_now.rb
|
65
78
|
- test/libs/rails_trickery.rb
|
79
|
+
- test/libs/rpxresponse.rb
|
66
80
|
- test/libs/user.rb
|
67
81
|
- test/libs/user_session.rb
|
68
|
-
- test/session_test.rb
|
69
82
|
- test/test_helper.rb
|
83
|
+
- test/test_internal_mapping_helper.rb
|
84
|
+
- test/unit/acts_as_authentic_settings_test.rb
|
85
|
+
- test/unit/session_settings_test.rb
|
86
|
+
- test/unit/session_validation_test.rb
|
87
|
+
- test/unit/verify_rpx_mock_test.rb
|
70
88
|
has_rdoc: true
|
71
89
|
homepage: http://github.com/tardate/authlogic_rpx
|
72
90
|
licenses: []
|
@@ -101,6 +119,14 @@ signing_key:
|
|
101
119
|
specification_version: 3
|
102
120
|
summary: Authlogic plug-in for RPX support
|
103
121
|
test_files:
|
104
|
-
- test/
|
105
|
-
- test/
|
122
|
+
- test/integration/basic_authentication_and_registration_test.rb
|
123
|
+
- test/integration/internal_mapping/basic_authentication_and_registration_test.rb
|
124
|
+
- test/integration/internal_mapping/settings_test.rb
|
125
|
+
- test/integration/no_mapping/basic_authentication_and_registration_test.rb
|
126
|
+
- test/integration/no_mapping/settings_test.rb
|
106
127
|
- test/test_helper.rb
|
128
|
+
- test/test_internal_mapping_helper.rb
|
129
|
+
- test/unit/acts_as_authentic_settings_test.rb
|
130
|
+
- test/unit/session_settings_test.rb
|
131
|
+
- test/unit/session_validation_test.rb
|
132
|
+
- test/unit/verify_rpx_mock_test.rb
|
data/test/session_test.rb
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
-
|
3
|
-
class SessionTest < ActiveSupport::TestCase
|
4
|
-
def test_authenticate_by_record
|
5
|
-
session = UserSession.new
|
6
|
-
assert session.respond_to?(:record)
|
7
|
-
session.record = users(:john)
|
8
|
-
assert_equal users(:john), session.record
|
9
|
-
end
|
10
|
-
end
|