sorcery 0.1.4 → 0.2.1

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 (65) hide show
  1. data/Gemfile +4 -2
  2. data/Gemfile.lock +16 -13
  3. data/README.rdoc +30 -27
  4. data/Rakefile +5 -0
  5. data/VERSION +1 -1
  6. data/lib/sorcery/controller/submodules/activity_logging.rb +20 -7
  7. data/lib/sorcery/controller/submodules/brute_force_protection.rb +9 -2
  8. data/lib/sorcery/controller/submodules/http_basic_auth.rb +8 -3
  9. data/lib/sorcery/controller/submodules/oauth/oauth1.rb +26 -0
  10. data/lib/sorcery/controller/submodules/oauth/oauth2.rb +24 -0
  11. data/lib/sorcery/controller/submodules/oauth/providers/facebook.rb +64 -0
  12. data/lib/sorcery/controller/submodules/oauth/providers/twitter.rb +61 -0
  13. data/lib/sorcery/controller/submodules/oauth.rb +92 -0
  14. data/lib/sorcery/controller/submodules/remember_me.rb +14 -5
  15. data/lib/sorcery/controller/submodules/session_timeout.rb +6 -1
  16. data/lib/sorcery/controller.rb +29 -17
  17. data/lib/sorcery/engine.rb +9 -2
  18. data/lib/sorcery/model/submodules/activity_logging.rb +12 -7
  19. data/lib/sorcery/model/submodules/brute_force_protection.rb +11 -4
  20. data/lib/sorcery/model/submodules/oauth.rb +53 -0
  21. data/lib/sorcery/model/submodules/remember_me.rb +5 -3
  22. data/lib/sorcery/model/submodules/reset_password.rb +16 -13
  23. data/lib/sorcery/model/submodules/user_activation.rb +38 -19
  24. data/lib/sorcery/model/temporary_token.rb +22 -0
  25. data/lib/sorcery/model.rb +10 -3
  26. data/lib/sorcery/test_helpers.rb +84 -0
  27. data/lib/sorcery.rb +12 -0
  28. data/sorcery.gemspec +69 -40
  29. data/spec/Gemfile +3 -2
  30. data/spec/Gemfile.lock +15 -2
  31. data/spec/rails3/app_root/.rspec +1 -0
  32. data/spec/rails3/{Gemfile → app_root/Gemfile} +5 -3
  33. data/spec/rails3/{Gemfile.lock → app_root/Gemfile.lock} +25 -2
  34. data/spec/rails3/app_root/app/controllers/application_controller.rb +42 -1
  35. data/spec/rails3/app_root/app/models/authentication.rb +3 -0
  36. data/spec/rails3/app_root/app/models/user.rb +4 -1
  37. data/spec/rails3/app_root/config/application.rb +1 -3
  38. data/spec/rails3/app_root/config/routes.rb +1 -10
  39. data/spec/rails3/app_root/db/migrate/activation/20101224223622_add_activation_to_users.rb +6 -4
  40. data/spec/rails3/app_root/db/migrate/core/20101224223620_create_users.rb +4 -4
  41. data/spec/rails3/app_root/db/migrate/oauth/20101224223628_create_authentications.rb +14 -0
  42. data/spec/rails3/{controller_activity_logging_spec.rb → app_root/spec/controller_activity_logging_spec.rb} +13 -13
  43. data/spec/rails3/{controller_brute_force_protection_spec.rb → app_root/spec/controller_brute_force_protection_spec.rb} +16 -6
  44. data/spec/rails3/{controller_http_basic_auth_spec.rb → app_root/spec/controller_http_basic_auth_spec.rb} +3 -3
  45. data/spec/rails3/app_root/spec/controller_oauth2_spec.rb +117 -0
  46. data/spec/rails3/app_root/spec/controller_oauth_spec.rb +117 -0
  47. data/spec/rails3/{controller_remember_me_spec.rb → app_root/spec/controller_remember_me_spec.rb} +4 -4
  48. data/spec/rails3/{controller_session_timeout_spec.rb → app_root/spec/controller_session_timeout_spec.rb} +4 -4
  49. data/spec/rails3/{controller_spec.rb → app_root/spec/controller_spec.rb} +20 -13
  50. data/spec/rails3/app_root/spec/spec_helper.orig.rb +27 -0
  51. data/spec/rails3/app_root/spec/spec_helper.rb +61 -0
  52. data/spec/rails3/{user_activation_spec.rb → app_root/spec/user_activation_spec.rb} +60 -20
  53. data/spec/rails3/{user_activity_logging_spec.rb → app_root/spec/user_activity_logging_spec.rb} +4 -4
  54. data/spec/rails3/{user_brute_force_protection_spec.rb → app_root/spec/user_brute_force_protection_spec.rb} +7 -7
  55. data/spec/rails3/app_root/spec/user_oauth_spec.rb +39 -0
  56. data/spec/rails3/{user_remember_me_spec.rb → app_root/spec/user_remember_me_spec.rb} +4 -4
  57. data/spec/rails3/{user_reset_password_spec.rb → app_root/spec/user_reset_password_spec.rb} +21 -41
  58. data/spec/rails3/{user_spec.rb → app_root/spec/user_spec.rb} +68 -38
  59. metadata +127 -58
  60. data/spec/rails3/app_root/test/fixtures/users.yml +0 -9
  61. data/spec/rails3/app_root/test/performance/browsing_test.rb +0 -9
  62. data/spec/rails3/app_root/test/test_helper.rb +0 -13
  63. data/spec/rails3/app_root/test/unit/user_test.rb +0 -8
  64. data/spec/rails3/spec_helper.rb +0 -135
  65. /data/spec/rails3/{Rakefile → app_root/Rakefile} +0 -0
@@ -1,5 +1,5 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
- require File.expand_path(File.dirname(__FILE__) + '/app_root/app/mailers/sorcery_mailer')
2
+ require File.expand_path(File.dirname(__FILE__) + '/../app/mailers/sorcery_mailer')
3
3
 
4
4
  describe "User with activation submodule" do
5
5
  before(:all) do
@@ -13,53 +13,53 @@ describe "User with activation submodule" do
13
13
  # ----------------- PLUGIN CONFIGURATION -----------------------
14
14
  describe User, "loaded plugin configuration" do
15
15
  before(:all) do
16
- plugin_model_configure([:user_activation], :user_activation_mailer => ::SorceryMailer)
16
+ sorcery_reload!([:user_activation], :user_activation_mailer => ::SorceryMailer)
17
17
  end
18
18
 
19
19
  after(:each) do
20
20
  User.sorcery_config.reset!
21
- plugin_model_configure([:user_activation], :user_activation_mailer => ::SorceryMailer)
21
+ sorcery_reload!([:user_activation], :user_activation_mailer => ::SorceryMailer)
22
22
  end
23
23
 
24
24
  it "should enable configuration option 'activation_state_attribute_name'" do
25
- plugin_set_model_config_property(:activation_state_attribute_name, :status)
25
+ sorcery_model_property_set(:activation_state_attribute_name, :status)
26
26
  User.sorcery_config.activation_state_attribute_name.should equal(:status)
27
27
  end
28
28
 
29
- it "should enable configuration option 'activation_code_attribute_name'" do
30
- plugin_set_model_config_property(:activation_code_attribute_name, :code)
31
- User.sorcery_config.activation_code_attribute_name.should equal(:code)
29
+ it "should enable configuration option 'activation_token_attribute_name'" do
30
+ sorcery_model_property_set(:activation_token_attribute_name, :code)
31
+ User.sorcery_config.activation_token_attribute_name.should equal(:code)
32
32
  end
33
33
 
34
34
  it "should enable configuration option 'user_activation_mailer'" do
35
- plugin_set_model_config_property(:user_activation_mailer, TestMailer)
35
+ sorcery_model_property_set(:user_activation_mailer, TestMailer)
36
36
  User.sorcery_config.user_activation_mailer.should equal(TestMailer)
37
37
  end
38
38
 
39
39
  it "should enable configuration option 'activation_needed_email_method_name'" do
40
- plugin_set_model_config_property(:activation_needed_email_method_name, :my_activation_email)
40
+ sorcery_model_property_set(:activation_needed_email_method_name, :my_activation_email)
41
41
  User.sorcery_config.activation_needed_email_method_name.should equal(:my_activation_email)
42
42
  end
43
43
 
44
44
  it "should enable configuration option 'activation_success_email_method_name'" do
45
- plugin_set_model_config_property(:activation_success_email_method_name, :my_activation_email)
45
+ sorcery_model_property_set(:activation_success_email_method_name, :my_activation_email)
46
46
  User.sorcery_config.activation_success_email_method_name.should equal(:my_activation_email)
47
47
  end
48
48
 
49
49
  it "if mailer is nil on activation, throw exception!" do
50
- expect{plugin_model_configure([:user_activation])}.to raise_error(ArgumentError)
50
+ expect{sorcery_reload!([:user_activation])}.to raise_error(ArgumentError)
51
51
  end
52
52
  end
53
53
 
54
54
  # ----------------- ACTIVATION PROCESS -----------------------
55
55
  describe User, "activation process" do
56
56
  before(:all) do
57
- plugin_model_configure([:user_activation], :user_activation_mailer => ::SorceryMailer)
57
+ sorcery_reload!([:user_activation], :user_activation_mailer => ::SorceryMailer)
58
58
  end
59
59
 
60
60
  it "should generate an activation code on registration" do
61
61
  create_new_user
62
- @user.activation_code.should_not be_nil
62
+ @user.activation_token.should_not be_nil
63
63
  end
64
64
 
65
65
  it "should initialize user state to 'pending'" do
@@ -74,12 +74,12 @@ describe "User with activation submodule" do
74
74
 
75
75
  it "should clear activation code and change state to 'active' on activation" do
76
76
  create_new_user
77
- activation_code = @user.activation_code
77
+ activation_token = @user.activation_token
78
78
  @user.activate!
79
79
  @user2 = User.find(@user.id) # go to db to make sure it was saved and not just in memory
80
- @user2.activation_code.should be_nil
80
+ @user2.activation_token.should be_nil
81
81
  @user2.activation_state.should == "active"
82
- User.find_by_activation_code(activation_code).should be_nil
82
+ User.find_by_activation_token(activation_token).should be_nil
83
83
  end
84
84
 
85
85
  it "should send the user an activation email" do
@@ -113,14 +113,14 @@ describe "User with activation submodule" do
113
113
  end
114
114
 
115
115
  it "activation needed email is optional" do
116
- plugin_set_model_config_property(:activation_needed_email_method_name, nil)
116
+ sorcery_model_property_set(:activation_needed_email_method_name, nil)
117
117
  old_size = ActionMailer::Base.deliveries.size
118
118
  create_new_user
119
119
  ActionMailer::Base.deliveries.size.should == old_size
120
120
  end
121
121
 
122
122
  it "activation success email is optional" do
123
- plugin_set_model_config_property(:activation_success_email_method_name, nil)
123
+ sorcery_model_property_set(:activation_success_email_method_name, nil)
124
124
  create_new_user
125
125
  old_size = ActionMailer::Base.deliveries.size
126
126
  @user.activate!
@@ -130,7 +130,7 @@ describe "User with activation submodule" do
130
130
 
131
131
  describe User, "prevent non-active login feature" do
132
132
  before(:all) do
133
- plugin_model_configure([:user_activation], :user_activation_mailer => ::SorceryMailer)
133
+ sorcery_reload!([:user_activation], :user_activation_mailer => ::SorceryMailer)
134
134
  end
135
135
 
136
136
  it "should not allow a non-active user to authenticate" do
@@ -140,9 +140,49 @@ describe "User with activation submodule" do
140
140
 
141
141
  it "should allow a non-active user to authenticate if configured so" do
142
142
  create_new_user
143
- plugin_set_model_config_property(:prevent_non_active_users_to_login, false)
143
+ sorcery_model_property_set(:prevent_non_active_users_to_login, false)
144
144
  User.authenticate(@user.username,'secret').should be_true
145
145
  end
146
146
  end
147
147
 
148
+ describe User, "load_from_activation_token" do
149
+ before(:all) do
150
+ sorcery_reload!([:user_activation], :user_activation_mailer => ::SorceryMailer)
151
+ end
152
+
153
+ it "load_from_activation_token should return user when token is found" do
154
+ create_new_user
155
+ User.load_from_activation_token(@user.activation_token).should == @user
156
+ end
157
+
158
+ it "load_from_activation_token should NOT return user when token is NOT found" do
159
+ create_new_user
160
+ User.load_from_activation_token("a").should == nil
161
+ end
162
+
163
+ it "load_from_activation_token should return user when token is found and not expired" do
164
+ sorcery_model_property_set(:activation_token_expiration_period, 500)
165
+ create_new_user
166
+ User.load_from_activation_token(@user.activation_token).should == @user
167
+ end
168
+
169
+ it "load_from_activation_token should NOT return user when token is found and expired" do
170
+ sorcery_model_property_set(:activation_token_expiration_period, 0.1)
171
+ create_new_user
172
+ sleep 0.5
173
+ User.load_from_activation_token(@user.activation_token).should == nil
174
+ end
175
+
176
+ it "load_from_activation_token should return nil if token is blank" do
177
+ User.load_from_activation_token(nil).should == nil
178
+ User.load_from_activation_token("").should == nil
179
+ end
180
+
181
+ it "load_from_activation_token should always be valid if expiration period is nil" do
182
+ sorcery_model_property_set(:activation_token_expiration_period, nil)
183
+ create_new_user
184
+ User.load_from_activation_token(@user.activation_token).should == @user
185
+ end
186
+ end
187
+
148
188
  end
@@ -10,7 +10,7 @@ describe "User with activity logging submodule" do
10
10
  # ----------------- PLUGIN CONFIGURATION -----------------------
11
11
  describe User, "loaded plugin configuration" do
12
12
  before(:all) do
13
- plugin_model_configure([:activity_logging])
13
+ sorcery_reload!([:activity_logging])
14
14
  end
15
15
 
16
16
  after(:each) do
@@ -18,17 +18,17 @@ describe "User with activity logging submodule" do
18
18
  end
19
19
 
20
20
  it "should allow configuration option 'last_login_at_attribute_name'" do
21
- plugin_set_model_config_property(:last_login_at_attribute_name, :login_time)
21
+ sorcery_model_property_set(:last_login_at_attribute_name, :login_time)
22
22
  User.sorcery_config.last_login_at_attribute_name.should equal(:login_time)
23
23
  end
24
24
 
25
25
  it "should allow configuration option 'last_logout_at_attribute_name'" do
26
- plugin_set_model_config_property(:last_logout_at_attribute_name, :logout_time)
26
+ sorcery_model_property_set(:last_logout_at_attribute_name, :logout_time)
27
27
  User.sorcery_config.last_logout_at_attribute_name.should equal(:logout_time)
28
28
  end
29
29
 
30
30
  it "should allow configuration option 'last_activity_at_attribute_name'" do
31
- plugin_set_model_config_property(:last_activity_at_attribute_name, :activity_time)
31
+ sorcery_model_property_set(:last_activity_at_attribute_name, :activity_time)
32
32
  User.sorcery_config.last_activity_at_attribute_name.should equal(:activity_time)
33
33
  end
34
34
  end
@@ -13,7 +13,7 @@ describe "User with brute_force_protection submodule" do
13
13
  describe User, "loaded plugin configuration" do
14
14
 
15
15
  before(:all) do
16
- plugin_model_configure([:brute_force_protection])
16
+ sorcery_reload!([:brute_force_protection])
17
17
  create_new_user
18
18
  end
19
19
 
@@ -30,22 +30,22 @@ describe "User with brute_force_protection submodule" do
30
30
  end
31
31
 
32
32
  it "should enable configuration option 'failed_logins_count_attribute_name'" do
33
- plugin_set_model_config_property(:failed_logins_count_attribute_name, :my_count)
33
+ sorcery_model_property_set(:failed_logins_count_attribute_name, :my_count)
34
34
  User.sorcery_config.failed_logins_count_attribute_name.should equal(:my_count)
35
35
  end
36
36
 
37
37
  it "should enable configuration option 'lock_expires_at_attribute_name'" do
38
- plugin_set_model_config_property(:lock_expires_at_attribute_name, :expires)
38
+ sorcery_model_property_set(:lock_expires_at_attribute_name, :expires)
39
39
  User.sorcery_config.lock_expires_at_attribute_name.should equal(:expires)
40
40
  end
41
41
 
42
42
  it "should enable configuration option 'consecutive_login_retries_amount_allowed'" do
43
- plugin_set_model_config_property(:consecutive_login_retries_amount_allowed, 34)
44
- User.sorcery_config.consecutive_login_retries_amount_allowed.should equal(34)
43
+ sorcery_model_property_set(:consecutive_login_retries_amount_limit, 34)
44
+ User.sorcery_config.consecutive_login_retries_amount_limit.should equal(34)
45
45
  end
46
46
 
47
47
  it "should enable configuration option 'login_lock_time_period'" do
48
- plugin_set_model_config_property(:login_lock_time_period, 2.hours)
48
+ sorcery_model_property_set(:login_lock_time_period, 2.hours)
49
49
  User.sorcery_config.login_lock_time_period.should == 2.hours
50
50
  end
51
51
  end
@@ -54,7 +54,7 @@ describe "User with brute_force_protection submodule" do
54
54
  describe User, "when activated with sorcery" do
55
55
 
56
56
  before(:all) do
57
- plugin_model_configure([:brute_force_protection])
57
+ sorcery_reload!([:brute_force_protection])
58
58
  end
59
59
 
60
60
  before(:each) do
@@ -0,0 +1,39 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "User with oauth submodule" do
4
+ before(:all) do
5
+ ActiveRecord::Migrator.migrate("#{Rails.root}/db/migrate/oauth")
6
+ end
7
+
8
+ after(:all) do
9
+ ActiveRecord::Migrator.rollback("#{Rails.root}/db/migrate/oauth")
10
+ end
11
+
12
+ # ----------------- PLUGIN CONFIGURATION -----------------------
13
+ describe User, "loaded plugin configuration" do
14
+
15
+ before(:all) do
16
+ sorcery_reload!([:oauth])
17
+ sorcery_controller_property_set(:oauth_providers, [:twitter])
18
+ sorcery_model_property_set(:authentications_class, Authentication)
19
+ sorcery_controller_oauth_property_set(:twitter, :key, "eYVNBjBDi33aa9GkA3w")
20
+ sorcery_controller_oauth_property_set(:twitter, :secret, "XpbeSdCoaKSmQGSeokz5qcUATClRW5u08QWNfv71N8")
21
+ sorcery_controller_oauth_property_set(:twitter, :callback_url, "http://blabla.com")
22
+ create_new_external_user(:twitter)
23
+ end
24
+
25
+ it "should respond to 'load_from_provider'" do
26
+ User.should respond_to(:load_from_provider)
27
+ end
28
+
29
+ it "'load_from_provider' should load user if exists" do
30
+ User.load_from_provider(:twitter,123).should == @user
31
+ end
32
+
33
+ it "'load_from_provider' should return nil if user doesn't exist" do
34
+ User.load_from_provider(:twitter,980342).should be_nil
35
+ end
36
+
37
+ end
38
+
39
+ end
@@ -12,7 +12,7 @@ describe "User with remember_me submodule" do
12
12
  # ----------------- PLUGIN CONFIGURATION -----------------------
13
13
  describe User, "loaded plugin configuration" do
14
14
  before(:all) do
15
- plugin_model_configure([:remember_me])
15
+ sorcery_reload!([:remember_me])
16
16
  end
17
17
 
18
18
  after(:each) do
@@ -20,12 +20,12 @@ describe "User with remember_me submodule" do
20
20
  end
21
21
 
22
22
  it "should allow configuration option 'remember_me_token_attribute_name'" do
23
- plugin_set_model_config_property(:remember_me_token_attribute_name, :my_token)
23
+ sorcery_model_property_set(:remember_me_token_attribute_name, :my_token)
24
24
  User.sorcery_config.remember_me_token_attribute_name.should equal(:my_token)
25
25
  end
26
26
 
27
27
  it "should allow configuration option 'remember_me_token_expires_at_attribute_name'" do
28
- plugin_set_model_config_property(:remember_me_token_expires_at_attribute_name, :my_expires)
28
+ sorcery_model_property_set(:remember_me_token_expires_at_attribute_name, :my_expires)
29
29
  User.sorcery_config.remember_me_token_expires_at_attribute_name.should equal(:my_expires)
30
30
  end
31
31
 
@@ -48,7 +48,7 @@ describe "User with remember_me submodule" do
48
48
 
49
49
  it "should set an expiration based on 'remember_me_for' attribute" do
50
50
  create_new_user
51
- plugin_set_model_config_property(:remember_me_for, 2 * 60 * 60 * 24)
51
+ sorcery_model_property_set(:remember_me_for, 2 * 60 * 60 * 24)
52
52
  @user.remember_me!
53
53
  @user.remember_me_token_expires_at.to_s.should == (Time.now + 2 * 60 * 60 * 24).utc.to_s
54
54
  end
@@ -13,7 +13,7 @@ describe "User with reset_password submodule" do
13
13
  describe User, "loaded plugin configuration" do
14
14
 
15
15
  before(:all) do
16
- plugin_model_configure([:reset_password], :reset_password_mailer => ::SorceryMailer)
16
+ sorcery_reload!([:reset_password], :reset_password_mailer => ::SorceryMailer)
17
17
  end
18
18
 
19
19
  after(:each) do
@@ -25,11 +25,6 @@ describe "User with reset_password submodule" do
25
25
  @user.should respond_to(:deliver_reset_password_instructions!)
26
26
  end
27
27
 
28
- it "should respond to 'reset_password_token_valid?'" do
29
- create_new_user
30
- @user.should respond_to(:reset_password_token_valid?)
31
- end
32
-
33
28
  it "should respond to 'reset_password!" do
34
29
  create_new_user
35
30
  @user.should respond_to(:reset_password!)
@@ -41,32 +36,32 @@ describe "User with reset_password submodule" do
41
36
  end
42
37
 
43
38
  it "should allow configuration option 'reset_password_token_attribute_name'" do
44
- plugin_set_model_config_property(:reset_password_token_attribute_name, :my_code)
39
+ sorcery_model_property_set(:reset_password_token_attribute_name, :my_code)
45
40
  User.sorcery_config.reset_password_token_attribute_name.should equal(:my_code)
46
41
  end
47
42
 
48
43
  it "should allow configuration option 'reset_password_mailer'" do
49
- plugin_set_model_config_property(:reset_password_mailer, TestUser)
44
+ sorcery_model_property_set(:reset_password_mailer, TestUser)
50
45
  User.sorcery_config.reset_password_mailer.should equal(TestUser)
51
46
  end
52
47
 
53
48
  it "should allow configuration option 'reset_password_email_method_name'" do
54
- plugin_set_model_config_property(:reset_password_email_method_name, :my_mailer_method)
49
+ sorcery_model_property_set(:reset_password_email_method_name, :my_mailer_method)
55
50
  User.sorcery_config.reset_password_email_method_name.should equal(:my_mailer_method)
56
51
  end
57
52
 
58
53
  it "should allow configuration option 'reset_password_expiration_period'" do
59
- plugin_set_model_config_property(:reset_password_expiration_period, 16)
54
+ sorcery_model_property_set(:reset_password_expiration_period, 16)
60
55
  User.sorcery_config.reset_password_expiration_period.should equal(16)
61
56
  end
62
57
 
63
58
  it "should allow configuration option 'reset_password_email_sent_at_attribute_name'" do
64
- plugin_set_model_config_property(:reset_password_email_sent_at_attribute_name, :blabla)
59
+ sorcery_model_property_set(:reset_password_email_sent_at_attribute_name, :blabla)
65
60
  User.sorcery_config.reset_password_email_sent_at_attribute_name.should equal(:blabla)
66
61
  end
67
62
 
68
63
  it "should allow configuration option 'reset_password_time_between_emails'" do
69
- plugin_set_model_config_property(:reset_password_time_between_emails, 16)
64
+ sorcery_model_property_set(:reset_password_time_between_emails, 16)
70
65
  User.sorcery_config.reset_password_time_between_emails.should equal(16)
71
66
  end
72
67
  end
@@ -75,7 +70,7 @@ describe "User with reset_password submodule" do
75
70
  describe User, "when activated with sorcery" do
76
71
 
77
72
  before(:all) do
78
- plugin_model_configure([:reset_password], :reset_password_mailer => ::SorceryMailer)
73
+ sorcery_reload!([:reset_password], :reset_password_mailer => ::SorceryMailer)
79
74
  end
80
75
 
81
76
  before(:each) do
@@ -96,19 +91,26 @@ describe "User with reset_password submodule" do
96
91
 
97
92
  it "load_from_reset_password_token should return user when token is found and not expired" do
98
93
  create_new_user
99
- plugin_set_model_config_property(:reset_password_expiration_period, 500)
94
+ sorcery_model_property_set(:reset_password_expiration_period, 500)
100
95
  @user.deliver_reset_password_instructions!
101
96
  User.load_from_reset_password_token(@user.reset_password_token).should == @user
102
97
  end
103
98
 
104
99
  it "load_from_reset_password_token should NOT return user when token is found and expired" do
105
100
  create_new_user
106
- plugin_set_model_config_property(:reset_password_expiration_period, 0.1)
101
+ sorcery_model_property_set(:reset_password_expiration_period, 0.1)
107
102
  @user.deliver_reset_password_instructions!
108
103
  sleep 0.5
109
104
  User.load_from_reset_password_token(@user.reset_password_token).should == nil
110
105
  end
111
106
 
107
+ it "load_from_reset_password_token should always be valid if expiration period is nil" do
108
+ create_new_user
109
+ sorcery_model_property_set(:reset_password_expiration_period, nil)
110
+ @user.deliver_reset_password_instructions!
111
+ User.load_from_reset_password_token(@user.reset_password_token).should == @user
112
+ end
113
+
112
114
  it "load_from_reset_password_token should return nil if token is blank" do
113
115
  User.load_from_reset_password_token(nil).should == nil
114
116
  User.load_from_reset_password_token("").should == nil
@@ -123,7 +125,7 @@ describe "User with reset_password submodule" do
123
125
 
124
126
  it "the reset_password_token should be random" do
125
127
  create_new_user
126
- plugin_set_model_config_property(:reset_password_time_between_emails, 0)
128
+ sorcery_model_property_set(:reset_password_time_between_emails, 0)
127
129
  @user.deliver_reset_password_instructions!
128
130
  old_password_code = @user.reset_password_token
129
131
  @user.deliver_reset_password_instructions!
@@ -146,31 +148,9 @@ describe "User with reset_password submodule" do
146
148
  @user.reset_password_token.should be_nil
147
149
  end
148
150
 
149
- it "code isn't valid if expiration passed" do
150
- create_new_user
151
- plugin_set_model_config_property(:reset_password_expiration_period, 0.1)
152
- @user.deliver_reset_password_instructions!
153
- sleep 0.5
154
- @user.reset_password_token_valid?.should == false
155
- end
156
-
157
- it "code is valid if it's the same code and expiration period did not pass" do
158
- create_new_user
159
- plugin_set_model_config_property(:reset_password_expiration_period, 300)
160
- @user.deliver_reset_password_instructions!
161
- @user.reset_password_token_valid?.should == true
162
- end
163
-
164
- it "code is valid if it's the same code and expiration period is nil" do
165
- create_new_user
166
- plugin_set_model_config_property(:reset_password_expiration_period, nil)
167
- @user.deliver_reset_password_instructions!
168
- @user.reset_password_token_valid?.should == true
169
- end
170
-
171
151
  it "should not send an email if time between emails has not passed since last email" do
172
152
  create_new_user
173
- plugin_set_model_config_property(:reset_password_time_between_emails, 10000)
153
+ sorcery_model_property_set(:reset_password_time_between_emails, 10000)
174
154
  old_size = ActionMailer::Base.deliveries.size
175
155
  @user.deliver_reset_password_instructions!
176
156
  ActionMailer::Base.deliveries.size.should == old_size + 1
@@ -180,7 +160,7 @@ describe "User with reset_password submodule" do
180
160
 
181
161
  it "should send an email if time between emails has passed since last email" do
182
162
  create_new_user
183
- plugin_set_model_config_property(:reset_password_time_between_emails, 0.5)
163
+ sorcery_model_property_set(:reset_password_time_between_emails, 0.5)
184
164
  old_size = ActionMailer::Base.deliveries.size
185
165
  @user.deliver_reset_password_instructions!
186
166
  ActionMailer::Base.deliveries.size.should == old_size + 1
@@ -190,7 +170,7 @@ describe "User with reset_password submodule" do
190
170
  end
191
171
 
192
172
  it "if mailer is nil on activation, throw exception!" do
193
- expect{plugin_model_configure([:reset_password])}.to raise_error(ArgumentError)
173
+ expect{sorcery_reload!([:reset_password])}.to raise_error(ArgumentError)
194
174
  end
195
175
 
196
176
  end