cotweet-authlogic 2.1.6

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.
Files changed (126) hide show
  1. data/.gitignore +9 -0
  2. data/CHANGELOG.rdoc +345 -0
  3. data/LICENSE +20 -0
  4. data/README.rdoc +246 -0
  5. data/Rakefile +41 -0
  6. data/VERSION.yml +5 -0
  7. data/authlogic.gemspec +216 -0
  8. data/generators/session/session_generator.rb +9 -0
  9. data/generators/session/templates/session.rb +2 -0
  10. data/init.rb +1 -0
  11. data/lib/authlogic.rb +64 -0
  12. data/lib/authlogic/acts_as_authentic/base.rb +107 -0
  13. data/lib/authlogic/acts_as_authentic/email.rb +110 -0
  14. data/lib/authlogic/acts_as_authentic/logged_in_status.rb +60 -0
  15. data/lib/authlogic/acts_as_authentic/login.rb +141 -0
  16. data/lib/authlogic/acts_as_authentic/magic_columns.rb +24 -0
  17. data/lib/authlogic/acts_as_authentic/password.rb +355 -0
  18. data/lib/authlogic/acts_as_authentic/perishable_token.rb +105 -0
  19. data/lib/authlogic/acts_as_authentic/persistence_token.rb +68 -0
  20. data/lib/authlogic/acts_as_authentic/restful_authentication.rb +61 -0
  21. data/lib/authlogic/acts_as_authentic/session_maintenance.rb +139 -0
  22. data/lib/authlogic/acts_as_authentic/single_access_token.rb +65 -0
  23. data/lib/authlogic/acts_as_authentic/validations_scope.rb +32 -0
  24. data/lib/authlogic/authenticates_many/association.rb +42 -0
  25. data/lib/authlogic/authenticates_many/base.rb +55 -0
  26. data/lib/authlogic/controller_adapters/abstract_adapter.rb +67 -0
  27. data/lib/authlogic/controller_adapters/merb_adapter.rb +30 -0
  28. data/lib/authlogic/controller_adapters/rails_adapter.rb +48 -0
  29. data/lib/authlogic/controller_adapters/sinatra_adapter.rb +61 -0
  30. data/lib/authlogic/crypto_providers/aes256.rb +43 -0
  31. data/lib/authlogic/crypto_providers/bcrypt.rb +90 -0
  32. data/lib/authlogic/crypto_providers/md5.rb +34 -0
  33. data/lib/authlogic/crypto_providers/sha1.rb +35 -0
  34. data/lib/authlogic/crypto_providers/sha256.rb +50 -0
  35. data/lib/authlogic/crypto_providers/sha512.rb +50 -0
  36. data/lib/authlogic/crypto_providers/wordpress.rb +43 -0
  37. data/lib/authlogic/i18n.rb +83 -0
  38. data/lib/authlogic/i18n/translator.rb +15 -0
  39. data/lib/authlogic/random.rb +33 -0
  40. data/lib/authlogic/regex.rb +25 -0
  41. data/lib/authlogic/session/activation.rb +58 -0
  42. data/lib/authlogic/session/active_record_trickery.rb +64 -0
  43. data/lib/authlogic/session/base.rb +37 -0
  44. data/lib/authlogic/session/brute_force_protection.rb +96 -0
  45. data/lib/authlogic/session/callbacks.rb +99 -0
  46. data/lib/authlogic/session/cookies.rb +130 -0
  47. data/lib/authlogic/session/existence.rb +93 -0
  48. data/lib/authlogic/session/foundation.rb +71 -0
  49. data/lib/authlogic/session/http_auth.rb +58 -0
  50. data/lib/authlogic/session/id.rb +41 -0
  51. data/lib/authlogic/session/klass.rb +78 -0
  52. data/lib/authlogic/session/magic_columns.rb +95 -0
  53. data/lib/authlogic/session/magic_states.rb +59 -0
  54. data/lib/authlogic/session/params.rb +101 -0
  55. data/lib/authlogic/session/password.rb +240 -0
  56. data/lib/authlogic/session/perishable_token.rb +18 -0
  57. data/lib/authlogic/session/persistence.rb +70 -0
  58. data/lib/authlogic/session/priority_record.rb +34 -0
  59. data/lib/authlogic/session/scopes.rb +101 -0
  60. data/lib/authlogic/session/session.rb +62 -0
  61. data/lib/authlogic/session/timeout.rb +82 -0
  62. data/lib/authlogic/session/unauthorized_record.rb +50 -0
  63. data/lib/authlogic/session/validation.rb +82 -0
  64. data/lib/authlogic/test_case.rb +120 -0
  65. data/lib/authlogic/test_case/mock_controller.rb +45 -0
  66. data/lib/authlogic/test_case/mock_cookie_jar.rb +14 -0
  67. data/lib/authlogic/test_case/mock_logger.rb +10 -0
  68. data/lib/authlogic/test_case/mock_request.rb +19 -0
  69. data/lib/authlogic/test_case/rails_request_adapter.rb +30 -0
  70. data/rails/init.rb +1 -0
  71. data/shoulda_macros/authlogic.rb +69 -0
  72. data/test/acts_as_authentic_test/base_test.rb +18 -0
  73. data/test/acts_as_authentic_test/email_test.rb +101 -0
  74. data/test/acts_as_authentic_test/logged_in_status_test.rb +36 -0
  75. data/test/acts_as_authentic_test/login_test.rb +109 -0
  76. data/test/acts_as_authentic_test/magic_columns_test.rb +27 -0
  77. data/test/acts_as_authentic_test/password_test.rb +236 -0
  78. data/test/acts_as_authentic_test/perishable_token_test.rb +90 -0
  79. data/test/acts_as_authentic_test/persistence_token_test.rb +55 -0
  80. data/test/acts_as_authentic_test/restful_authentication_test.rb +40 -0
  81. data/test/acts_as_authentic_test/session_maintenance_test.rb +84 -0
  82. data/test/acts_as_authentic_test/single_access_test.rb +44 -0
  83. data/test/authenticates_many_test.rb +16 -0
  84. data/test/crypto_provider_test/aes256_test.rb +14 -0
  85. data/test/crypto_provider_test/bcrypt_test.rb +14 -0
  86. data/test/crypto_provider_test/sha1_test.rb +23 -0
  87. data/test/crypto_provider_test/sha256_test.rb +14 -0
  88. data/test/crypto_provider_test/sha512_test.rb +14 -0
  89. data/test/fixtures/companies.yml +5 -0
  90. data/test/fixtures/employees.yml +17 -0
  91. data/test/fixtures/projects.yml +3 -0
  92. data/test/fixtures/users.yml +24 -0
  93. data/test/i18n_test.rb +33 -0
  94. data/test/libs/affiliate.rb +7 -0
  95. data/test/libs/company.rb +6 -0
  96. data/test/libs/employee.rb +7 -0
  97. data/test/libs/employee_session.rb +2 -0
  98. data/test/libs/ldaper.rb +3 -0
  99. data/test/libs/ordered_hash.rb +9 -0
  100. data/test/libs/project.rb +3 -0
  101. data/test/libs/user.rb +5 -0
  102. data/test/libs/user_session.rb +6 -0
  103. data/test/random_test.rb +42 -0
  104. data/test/session_test/activation_test.rb +43 -0
  105. data/test/session_test/active_record_trickery_test.rb +36 -0
  106. data/test/session_test/brute_force_protection_test.rb +101 -0
  107. data/test/session_test/callbacks_test.rb +6 -0
  108. data/test/session_test/cookies_test.rb +112 -0
  109. data/test/session_test/credentials_test.rb +0 -0
  110. data/test/session_test/existence_test.rb +64 -0
  111. data/test/session_test/http_auth_test.rb +28 -0
  112. data/test/session_test/id_test.rb +17 -0
  113. data/test/session_test/klass_test.rb +40 -0
  114. data/test/session_test/magic_columns_test.rb +62 -0
  115. data/test/session_test/magic_states_test.rb +60 -0
  116. data/test/session_test/params_test.rb +53 -0
  117. data/test/session_test/password_test.rb +106 -0
  118. data/test/session_test/perishability_test.rb +15 -0
  119. data/test/session_test/persistence_test.rb +21 -0
  120. data/test/session_test/scopes_test.rb +60 -0
  121. data/test/session_test/session_test.rb +59 -0
  122. data/test/session_test/timeout_test.rb +52 -0
  123. data/test/session_test/unauthorized_record_test.rb +13 -0
  124. data/test/session_test/validation_test.rb +23 -0
  125. data/test/test_helper.rb +182 -0
  126. metadata +254 -0
@@ -0,0 +1,106 @@
1
+ require 'test_helper'
2
+
3
+ module SessionTest
4
+ module PasswordTest
5
+ class ConfigTest < ActiveSupport::TestCase
6
+ def test_find_by_login_method
7
+ UserSession.find_by_login_method = "my_login_method"
8
+ assert_equal "my_login_method", UserSession.find_by_login_method
9
+
10
+ UserSession.find_by_login_method "find_by_login"
11
+ assert_equal "find_by_login", UserSession.find_by_login_method
12
+ end
13
+
14
+ def test_verify_password_method
15
+ UserSession.verify_password_method = "my_login_method"
16
+ assert_equal "my_login_method", UserSession.verify_password_method
17
+
18
+ UserSession.verify_password_method "valid_password?"
19
+ assert_equal "valid_password?", UserSession.verify_password_method
20
+ end
21
+
22
+ def test_generalize_credentials_error_mesages_set_to_false
23
+ UserSession.generalize_credentials_error_messages false
24
+ assert !UserSession.generalize_credentials_error_messages
25
+ session = UserSession.create(:login => users(:ben).login, :password => "invalud-password")
26
+ assert_equal ["Password is not valid"], session.errors.full_messages
27
+ end
28
+
29
+ def test_generalize_credentials_error_messages_set_to_true
30
+ UserSession.generalize_credentials_error_messages true
31
+ assert UserSession.generalize_credentials_error_messages
32
+ session = UserSession.create(:login => users(:ben).login, :password => "invalud-password")
33
+ assert_equal ["Login/Password combination is not valid"], session.errors.full_messages
34
+ end
35
+
36
+ def test_generalize_credentials_error_messages_set_to_string
37
+ UserSession.generalize_credentials_error_messages= "Custom Error Message"
38
+ assert UserSession.generalize_credentials_error_messages
39
+ session = UserSession.create(:login => users(:ben).login, :password => "invalud-password")
40
+ assert_equal ["Custom Error Message"], session.errors.full_messages
41
+ end
42
+
43
+
44
+ def test_login_field
45
+ UserSession.configured_password_methods = false
46
+ UserSession.login_field = :saweet
47
+ assert_equal :saweet, UserSession.login_field
48
+ session = UserSession.new
49
+ assert session.respond_to?(:saweet)
50
+
51
+ UserSession.login_field :login
52
+ assert_equal :login, UserSession.login_field
53
+ session = UserSession.new
54
+ assert session.respond_to?(:login)
55
+ end
56
+
57
+ def test_password_field
58
+ UserSession.configured_password_methods = false
59
+ UserSession.password_field = :saweet
60
+ assert_equal :saweet, UserSession.password_field
61
+ session = UserSession.new
62
+ assert session.respond_to?(:saweet)
63
+
64
+ UserSession.password_field :password
65
+ assert_equal :password, UserSession.password_field
66
+ session = UserSession.new
67
+ assert session.respond_to?(:password)
68
+ end
69
+ end
70
+
71
+ class InstanceMethodsTest < ActiveSupport::TestCase
72
+ def test_init
73
+ session = UserSession.new
74
+ assert session.respond_to?(:login)
75
+ assert session.respond_to?(:login=)
76
+ assert session.respond_to?(:password)
77
+ assert session.respond_to?(:password=)
78
+ assert session.respond_to?(:protected_password, true)
79
+ end
80
+
81
+ def test_credentials
82
+ session = UserSession.new
83
+ session.credentials = {:login => "login", :password => "pass"}
84
+ assert_equal "login", session.login
85
+ assert_nil session.password
86
+ assert_equal "pass", session.send(:protected_password)
87
+ assert_equal({:password => "<protected>", :login => "login"}, session.credentials)
88
+ end
89
+
90
+ def test_credentials_are_params_safe
91
+ session = UserSession.new
92
+ assert_nothing_raised { session.credentials = {:hacker_method => "error!"} }
93
+ end
94
+
95
+ def test_save_with_credentials
96
+ ben = users(:ben)
97
+ session = UserSession.new(:login => ben.login, :password => "benrocks")
98
+ assert session.save
99
+ assert !session.new_session?
100
+ assert_equal 1, session.record.login_count
101
+ assert Time.now >= session.record.current_login_at
102
+ assert_equal "1.1.1.1", session.record.current_login_ip
103
+ end
104
+ end
105
+ end
106
+ end
@@ -0,0 +1,15 @@
1
+ require 'test_helper'
2
+
3
+ module SessionTest
4
+ class PerishabilityTest < ActiveSupport::TestCase
5
+ def test_after_save
6
+ ben = users(:ben)
7
+ old_perishable_token = ben.perishable_token
8
+ session = UserSession.create(ben)
9
+ assert_not_equal old_perishable_token, ben.perishable_token
10
+
11
+ drew = employees(:drew)
12
+ assert UserSession.create(drew)
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,21 @@
1
+ require 'test_helper'
2
+
3
+ module SessionTest
4
+ class PersistenceTest < ActiveSupport::TestCase
5
+ def test_find
6
+ ben = users(:ben)
7
+ assert !UserSession.find
8
+ http_basic_auth_for(ben) { assert UserSession.find }
9
+ set_cookie_for(ben)
10
+ assert UserSession.find
11
+ unset_cookie
12
+ set_session_for(ben)
13
+ session = UserSession.find
14
+ assert session
15
+ end
16
+
17
+ def test_persisting
18
+ # tested thoroughly in test_find
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,60 @@
1
+ require 'test_helper'
2
+
3
+ module SessionTest
4
+ class ScopesTest < ActiveSupport::TestCase
5
+ def test_scope_method
6
+ assert_nil Authlogic::Session::Base.scope
7
+
8
+ thread1 = Thread.new do
9
+ scope = {:id => :scope1}
10
+ Authlogic::Session::Base.send(:scope=, scope)
11
+ assert_equal scope, Authlogic::Session::Base.scope
12
+ end
13
+ thread1.join
14
+
15
+ assert_nil Authlogic::Session::Base.scope
16
+
17
+ thread2 = Thread.new do
18
+ scope = {:id => :scope2}
19
+ Authlogic::Session::Base.send(:scope=, scope)
20
+ assert_equal scope, Authlogic::Session::Base.scope
21
+ end
22
+ thread2.join
23
+
24
+ assert_nil Authlogic::Session::Base.scope
25
+ end
26
+
27
+ def test_with_scope_method
28
+ assert_raise(ArgumentError) { UserSession.with_scope }
29
+
30
+ UserSession.with_scope(:find_options => {:conditions => "awesome = 1"}, :id => "some_id") do
31
+ assert_equal({:find_options => {:conditions => "awesome = 1"}, :id => "some_id"}, UserSession.scope)
32
+ end
33
+
34
+ assert_nil UserSession.scope
35
+ end
36
+
37
+ def test_initialize
38
+ UserSession.with_scope(:find_options => {:conditions => "awesome = 1"}, :id => "some_id") do
39
+ session = UserSession.new
40
+ assert_equal({:find_options => {:conditions => "awesome = 1"}, :id => "some_id"}, session.scope)
41
+ session.id = :another_id
42
+ assert_equal "another_id_some_id_test", session.send(:build_key, "test")
43
+ end
44
+ end
45
+
46
+ def test_search_for_record_with_scopes
47
+ binary_logic = companies(:binary_logic)
48
+ ben = users(:ben)
49
+ zack = users(:zack)
50
+
51
+ session = UserSession.new
52
+ assert_equal zack, session.send(:search_for_record, "find_by_login", zack.login)
53
+
54
+ session.scope = {:find_options => {:conditions => ["company_id = ?", binary_logic.id]}}
55
+ assert_nil session.send(:search_for_record, "find_by_login", zack.login)
56
+
57
+ assert_equal ben, session.send(:search_for_record, "find_by_login", ben.login)
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,59 @@
1
+ require 'test_helper'
2
+
3
+ module SessionTest
4
+ module SessionTest
5
+ class ConfigTest < ActiveSupport::TestCase
6
+ def test_session_key
7
+ UserSession.session_key = "my_session_key"
8
+ assert_equal "my_session_key", UserSession.session_key
9
+
10
+ UserSession.session_key "user_credentials"
11
+ assert_equal "user_credentials", UserSession.session_key
12
+ end
13
+ end
14
+
15
+ class InstanceMethodsTest < ActiveSupport::TestCase
16
+ def test_persist_persist_by_session
17
+ ben = users(:ben)
18
+ set_session_for(ben)
19
+ assert session = UserSession.find
20
+ assert_equal ben, session.record
21
+ assert_equal ben.persistence_token, controller.session["user_credentials"]
22
+ end
23
+
24
+ def test_persist_persist_by_session_with_token_only
25
+ ben = users(:ben)
26
+ set_session_for(ben)
27
+ controller.session["user_credentials_id"] = nil
28
+ assert session = UserSession.find
29
+ assert_equal ben, session.record
30
+ assert_equal ben.persistence_token, controller.session["user_credentials"]
31
+ end
32
+
33
+ def test_after_save_update_session
34
+ ben = users(:ben)
35
+ session = UserSession.new(ben)
36
+ assert controller.session["user_credentials"].blank?
37
+ assert session.save
38
+ assert_equal ben.persistence_token, controller.session["user_credentials"]
39
+ end
40
+
41
+ def test_after_destroy_update_session
42
+ ben = users(:ben)
43
+ set_session_for(ben)
44
+ assert_equal ben.persistence_token, controller.session["user_credentials"]
45
+ assert session = UserSession.find
46
+ assert session.destroy
47
+ assert controller.session["user_credentials"].blank?
48
+ end
49
+
50
+ def test_after_persisting_update_session
51
+ ben = users(:ben)
52
+ set_cookie_for(ben)
53
+ assert controller.session["user_credentials"].blank?
54
+ assert UserSession.find
55
+ assert_equal ben.persistence_token, controller.session["user_credentials"]
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,52 @@
1
+ require 'test_helper'
2
+
3
+ module SessionTest
4
+ module TimeoutTest
5
+ class ConfigTest < ActiveSupport::TestCase
6
+ def test_logout_on_timeout
7
+ UserSession.logout_on_timeout = true
8
+ assert UserSession.logout_on_timeout
9
+
10
+ UserSession.logout_on_timeout false
11
+ assert !UserSession.logout_on_timeout
12
+ end
13
+ end
14
+
15
+ class InstanceMethods < ActiveSupport::TestCase
16
+ def test_stale_state
17
+ UserSession.logout_on_timeout = true
18
+ ben = users(:ben)
19
+ ben.last_request_at = 3.years.ago
20
+ ben.save
21
+ set_session_for(ben)
22
+
23
+ session = UserSession.new
24
+ assert session.persisting?
25
+ assert session.stale?
26
+ assert_equal ben, session.stale_record
27
+ assert_nil session.record
28
+ assert_nil controller.session["user_credentials_id"]
29
+
30
+ set_session_for(ben)
31
+
32
+ ben.last_request_at = Time.now
33
+ ben.save
34
+
35
+ assert session.persisting?
36
+ assert !session.stale?
37
+ assert_nil session.stale_record
38
+
39
+ UserSession.logout_on_timeout = false
40
+ end
41
+
42
+ def test_successful_login
43
+ UserSession.logout_on_timeout = true
44
+ ben = users(:ben)
45
+ assert UserSession.create(:login => ben.login, :password => "benrocks")
46
+ assert session = UserSession.find
47
+ assert_equal ben, session.record
48
+ UserSession.logout_on_timeout = false
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,13 @@
1
+ require 'test_helper'
2
+
3
+ module SessionTest
4
+ class UnauthorizedRecordTest < ActiveSupport::TestCase
5
+ def test_credentials
6
+ ben = users(:ben)
7
+ session = UserSession.new
8
+ session.credentials = [ben]
9
+ assert_equal ben, session.unauthorized_record
10
+ assert_equal({:unauthorized_record => "<protected>"}, session.credentials)
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,23 @@
1
+ require 'test_helper'
2
+
3
+ module SessionTest
4
+ class ValidationTest < ActiveSupport::TestCase
5
+ def test_errors
6
+ session = UserSession.new
7
+ assert session.errors.is_a?(Authlogic::Session::Validation::Errors)
8
+ end
9
+
10
+ def test_valid
11
+ session = UserSession.new
12
+ assert !session.valid?
13
+ assert_nil session.record
14
+ assert session.errors.count > 0
15
+
16
+ ben = users(:ben)
17
+ session.unauthorized_record = ben
18
+ assert session.valid?
19
+ assert_equal ben, session.attempted_record
20
+ assert session.errors.empty?
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,182 @@
1
+ require "test/unit"
2
+ require "rubygems"
3
+ require "ruby-debug"
4
+ require "active_record"
5
+ require "active_record/fixtures"
6
+
7
+ # A temporary fix to bring active record errors up to speed with rails edge.
8
+ # I need to remove this once the new gem is released. This is only here so my tests pass.
9
+ unless defined?(::ActiveModel)
10
+ class ActiveRecord::Errors
11
+ def [](key)
12
+ value = on(key)
13
+ value.is_a?(Array) ? value : [value].compact
14
+ end
15
+ end
16
+ end
17
+
18
+
19
+ ActiveRecord::Schema.verbose = false
20
+
21
+ begin
22
+ ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")
23
+ rescue ArgumentError
24
+ ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :dbfile => ":memory:")
25
+ end
26
+
27
+ ActiveRecord::Base.configurations = true
28
+ ActiveRecord::Schema.define(:version => 1) do
29
+ create_table :companies do |t|
30
+ t.datetime :created_at
31
+ t.datetime :updated_at
32
+ t.string :name
33
+ t.boolean :active
34
+ end
35
+
36
+ create_table :projects do |t|
37
+ t.datetime :created_at
38
+ t.datetime :updated_at
39
+ t.string :name
40
+ end
41
+
42
+ create_table :projects_users, :id => false do |t|
43
+ t.integer :project_id
44
+ t.integer :user_id
45
+ end
46
+
47
+ create_table :users do |t|
48
+ t.datetime :created_at
49
+ t.datetime :updated_at
50
+ t.integer :lock_version, :default => 0
51
+ t.integer :company_id
52
+ t.string :login
53
+ t.string :crypted_password
54
+ t.string :password_salt
55
+ t.string :persistence_token
56
+ t.string :single_access_token
57
+ t.string :perishable_token
58
+ t.string :email
59
+ t.string :first_name
60
+ t.string :last_name
61
+ t.integer :login_count, :default => 0, :null => false
62
+ t.integer :failed_login_count, :default => 0, :null => false
63
+ t.datetime :last_request_at
64
+ t.datetime :current_login_at
65
+ t.datetime :last_login_at
66
+ t.string :current_login_ip
67
+ t.string :last_login_ip
68
+ t.boolean :active, :default => true
69
+ t.boolean :approved, :default => true
70
+ t.boolean :confirmed, :default => true
71
+ end
72
+
73
+ create_table :employees do |t|
74
+ t.datetime :created_at
75
+ t.datetime :updated_at
76
+ t.integer :company_id
77
+ t.string :email
78
+ t.string :crypted_password
79
+ t.string :password_salt
80
+ t.string :persistence_token
81
+ t.string :first_name
82
+ t.string :last_name
83
+ t.integer :login_count, :default => 0, :null => false
84
+ t.datetime :last_request_at
85
+ t.datetime :current_login_at
86
+ t.datetime :last_login_at
87
+ t.string :current_login_ip
88
+ t.string :last_login_ip
89
+ end
90
+
91
+ create_table :affiliates do |t|
92
+ t.datetime :created_at
93
+ t.datetime :updated_at
94
+ t.integer :company_id
95
+ t.string :username
96
+ t.string :pw_hash
97
+ t.string :pw_salt
98
+ t.string :persistence_token
99
+ end
100
+
101
+ create_table :ldapers do |t|
102
+ t.datetime :created_at
103
+ t.datetime :updated_at
104
+ t.string :ldap_login
105
+ t.string :persistence_token
106
+ end
107
+ end
108
+
109
+ require File.dirname(__FILE__) + '/../lib/authlogic' unless defined?(Authlogic)
110
+ require File.dirname(__FILE__) + '/../lib/authlogic/test_case'
111
+ require File.dirname(__FILE__) + '/libs/project'
112
+ require File.dirname(__FILE__) + '/libs/affiliate'
113
+ require File.dirname(__FILE__) + '/libs/employee'
114
+ require File.dirname(__FILE__) + '/libs/employee_session'
115
+ require File.dirname(__FILE__) + '/libs/ldaper'
116
+ require File.dirname(__FILE__) + '/libs/user'
117
+ require File.dirname(__FILE__) + '/libs/user_session'
118
+ require File.dirname(__FILE__) + '/libs/company'
119
+
120
+ Authlogic::CryptoProviders::AES256.key = "myafdsfddddddddddddddddddddddddddddddddddddddddddddddd"
121
+
122
+ class ActiveSupport::TestCase
123
+ include ActiveRecord::TestFixtures
124
+ self.fixture_path = File.dirname(__FILE__) + "/fixtures"
125
+ self.use_transactional_fixtures = false
126
+ self.use_instantiated_fixtures = false
127
+ self.pre_loaded_fixtures = false
128
+ fixtures :all
129
+ setup :activate_authlogic
130
+
131
+ private
132
+ def password_for(user)
133
+ case user
134
+ when users(:ben)
135
+ "benrocks"
136
+ when users(:zack)
137
+ "zackrocks"
138
+ end
139
+ end
140
+
141
+ def http_basic_auth_for(user = nil, &block)
142
+ unless user.blank?
143
+ controller.http_user = user.login
144
+ controller.http_password = password_for(user)
145
+ end
146
+ yield
147
+ controller.http_user = controller.http_password = nil
148
+ end
149
+
150
+ def set_cookie_for(user, id = nil)
151
+ controller.cookies["user_credentials"] = {:value => user.persistence_token, :expires => nil}
152
+ end
153
+
154
+ def unset_cookie
155
+ controller.cookies["user_credentials"] = nil
156
+ end
157
+
158
+ def set_params_for(user, id = nil)
159
+ controller.params["user_credentials"] = user.single_access_token
160
+ end
161
+
162
+ def unset_params
163
+ controller.params["user_credentials"] = nil
164
+ end
165
+
166
+ def set_request_content_type(type)
167
+ controller.request_content_type = type
168
+ end
169
+
170
+ def unset_request_content_type
171
+ controller.request_content_type = nil
172
+ end
173
+
174
+ def set_session_for(user, id = nil)
175
+ controller.session["user_credentials"] = user.persistence_token
176
+ controller.session["user_credentials_id"] = user.id
177
+ end
178
+
179
+ def unset_session
180
+ controller.session["user_credentials"] = controller.session["user_credentials_id"] = nil
181
+ end
182
+ end