simple_auth 1.5.0 → 2.0.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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +1 -1
  3. data/.travis.yml +11 -0
  4. data/CHANGELOG.md +5 -0
  5. data/Gemfile +0 -2
  6. data/Gemfile.lock +102 -79
  7. data/README.md +243 -0
  8. data/Rakefile +15 -0
  9. data/gemfiles/rails_3_1.gemfile +5 -0
  10. data/gemfiles/rails_3_1.gemfile.lock +151 -0
  11. data/gemfiles/rails_3_2.gemfile +5 -0
  12. data/gemfiles/rails_3_2.gemfile.lock +149 -0
  13. data/gemfiles/rails_4_0.gemfile +4 -0
  14. data/gemfiles/rails_4_0.gemfile.lock +140 -0
  15. data/gemfiles/rails_4_1.gemfile +4 -0
  16. data/gemfiles/rails_4_1.gemfile.lock +146 -0
  17. data/lib/simple_auth.rb +1 -6
  18. data/lib/simple_auth/action_controller.rb +14 -10
  19. data/lib/simple_auth/active_record.rb +86 -0
  20. data/lib/simple_auth/compat.rb +2 -0
  21. data/lib/simple_auth/compat/active_record.rb +31 -0
  22. data/lib/simple_auth/compat/config.rb +17 -0
  23. data/lib/simple_auth/config.rb +0 -20
  24. data/lib/simple_auth/exceptions.rb +0 -1
  25. data/lib/simple_auth/railtie.rb +1 -1
  26. data/lib/simple_auth/rspec.rb +2 -2
  27. data/lib/simple_auth/session.rb +1 -1
  28. data/lib/simple_auth/version.rb +2 -2
  29. data/simple_auth.gemspec +4 -4
  30. data/spec/controllers/redirect_logged_user_spec.rb +16 -16
  31. data/spec/controllers/require_logged_user_spec.rb +34 -34
  32. data/spec/schema.rb +5 -1
  33. data/spec/simple_auth/active_record_spec.rb +104 -2
  34. data/spec/simple_auth/compat_spec.rb +31 -0
  35. data/spec/simple_auth/config_spec.rb +8 -27
  36. data/spec/simple_auth/helper_spec.rb +7 -7
  37. data/spec/simple_auth/session_spec.rb +76 -76
  38. data/spec/spec_helper.rb +2 -168
  39. data/spec/support/app/models/customer.rb +3 -0
  40. data/templates/initializer.rb +0 -8
  41. metadata +62 -33
  42. data/README.markdown +0 -202
  43. data/lib/simple_auth/orm/active_record.rb +0 -80
  44. data/lib/simple_auth/orm/base.rb +0 -89
  45. data/lib/simple_auth/orm/mongo_mapper.rb +0 -62
  46. data/spec/simple_auth/mongo_mapper_spec.rb +0 -10
  47. data/spec/support/app/models/account.rb +0 -6
@@ -8,17 +8,17 @@ describe SimpleAuth::Helper do
8
8
  @helper.extend(ActionView::Helpers::CaptureHelper)
9
9
  end
10
10
 
11
- it "should include module" do
11
+ it "includes module" do
12
12
  ApplicationController.included_modules.include?(SimpleAuth::Helper)
13
13
  end
14
14
 
15
- it "should render block when user is logged" do
16
- @helper.should_receive(:logged_in?).and_return(true)
17
- @helper.when_logged { "logged" }.should == "logged"
15
+ it "renders block when user is logged" do
16
+ expect(@helper).to receive(:logged_in?).and_return(true)
17
+ expect(@helper.when_logged { "logged" }).to eq("logged")
18
18
  end
19
19
 
20
- it "should not render block when user is unlogged" do
21
- @helper.should_receive(:logged_in?).and_return(false)
22
- @helper.when_logged { "logged" }.should be_nil
20
+ it "doesn't render block when user is unlogged" do
21
+ expect(@helper).to receive(:logged_in?).and_return(false)
22
+ expect(@helper.when_logged { "logged" }).to be_nil
23
23
  end
24
24
  end
@@ -13,25 +13,25 @@ describe SimpleAuth::Session do
13
13
 
14
14
  @session = Hash.new
15
15
  @controller = ActionController::Base.new
16
- @controller.stub :session => @session, :reset_session => nil
16
+ allow(@controller).to receive_messages :session => @session, :reset_session => nil
17
17
 
18
18
  SimpleAuth::Config.controller = @controller
19
19
  @user_session = SimpleAuth::Session.new(:credential => "johndoe", :password => "test")
20
20
  end
21
21
 
22
- it "should not raise when trying to find a session without activating controller" do
22
+ it "doesn't raise when trying to find a session without activating controller" do
23
23
  SimpleAuth::Config.controller = nil
24
24
 
25
25
  expect {
26
- SimpleAuth::Session.find.should be_nil
26
+ expect(SimpleAuth::Session.find).to be_nil
27
27
  }.to_not raise_error
28
28
  end
29
29
 
30
- it "should return session key" do
30
+ it "returns session key" do
31
31
  SimpleAuth::Session.session_key == :user_id
32
32
  end
33
33
 
34
- it "should return record id" do
34
+ it "returns record id" do
35
35
  @session[:user_id] = 42
36
36
  SimpleAuth::Session.record_id == 42
37
37
  end
@@ -41,56 +41,56 @@ describe SimpleAuth::Session do
41
41
  @user_session.save!
42
42
  end
43
43
 
44
- it "should return existing session" do
44
+ it "returns existing session" do
45
45
  @user_session = SimpleAuth::Session.find
46
- @user_session.should be_valid
47
- @user_session.record.should == @user
46
+ expect(@user_session).to be_valid
47
+ expect(@user_session.record).to eq(@user)
48
48
  end
49
49
 
50
- it "should not be new record" do
51
- @user_session.should_not be_new_record
50
+ it "doesn't be new record" do
51
+ expect(@user_session).not_to be_new_record
52
52
  end
53
53
 
54
- it "should be invalid when record is not authorized" do
55
- @user_session.record.stub :authorized? => false
56
- @user_session.should_not be_valid
54
+ it "is invalid when record is not authorized" do
55
+ allow(@controller).to receive_messages :authorized? => false
56
+ expect(@user_session).not_to be_valid
57
57
  end
58
58
 
59
- it "should be valid when record is authorized" do
60
- @user_session.record.stub :authorized? => true
61
- @user_session.should be_valid
59
+ it "is valid when record is authorized" do
60
+ allow(@user_session.record).to receive_messages :authorized? => true
61
+ expect(@user_session).to be_valid
62
62
  end
63
63
 
64
- it "should find record" do
65
- @user_session.record.should == @user
64
+ it "finds record" do
65
+ expect(@user_session.record).to eq(@user)
66
66
  end
67
67
 
68
- it "should be saved" do
69
- @user_session.save.should be_true
68
+ it "is saved" do
69
+ expect(@user_session.save).to be_truthy
70
70
  end
71
71
 
72
- it "should reset session before saving" do
72
+ it "resets session before saving" do
73
73
  @session[:session_id] = "xWA1"
74
74
  @user_session.save
75
- @session.should_not have_key(:session_id)
75
+ expect(@session).not_to have_key(:session_id)
76
76
  end
77
77
 
78
- it "should automatically save session when calling create!" do
78
+ it "automatically saves session when calling create!" do
79
79
  @user_session = SimpleAuth::Session.create!(:credential => "johndoe", :password => "test")
80
- @user_session.should be_valid
81
- @user_session.record.should == @user
82
- @session[:user_id].should == @user.id
80
+ expect(@user_session).to be_valid
81
+ expect(@user_session.record).to eq(@user)
82
+ expect(@session[:user_id]).to eq(@user.id)
83
83
  end
84
84
 
85
- it "should destroy session" do
86
- @user_session.destroy.should be_true
87
- @user_session.record.should be_nil
88
- @session.should_not have_key(:user)
85
+ it "destroys session" do
86
+ expect(@user_session.destroy).to be_truthy
87
+ expect(@user_session.record).to be_nil
88
+ expect(@session).not_to have_key(:user)
89
89
  end
90
90
 
91
- it "should initialize record session" do
91
+ it "initializes record session" do
92
92
  @user_session.save
93
- @session[:user_id].should == @user.id
93
+ expect(@session[:user_id]).to eq(@user.id)
94
94
  end
95
95
  end
96
96
 
@@ -100,66 +100,66 @@ describe SimpleAuth::Session do
100
100
  @user_session.save
101
101
  end
102
102
 
103
- it "should unset previous record id when is not valid" do
103
+ it "unsets previous record id when is not valid" do
104
104
  @session[:user_id] = 1
105
- @user_session.should_not be_valid
106
- @session.should_not have_key(:user)
105
+ expect(@user_session).not_to be_valid
106
+ expect(@session).not_to have_key(:user)
107
107
  end
108
108
 
109
- it "should unset previous record id when is not saved" do
109
+ it "unsets previous record id when is not saved" do
110
110
  @session[:user_id] = 1
111
- @user_session.save.should be_false
112
- @session.should_not have_key(:user)
111
+ expect(@user_session.save).to be_falsey
112
+ expect(@session).not_to have_key(:user)
113
113
  end
114
114
 
115
- it "should be new record" do
116
- SimpleAuth::Session.new.should be_new_record
117
- @user_session.should be_new_record
115
+ it "is new record" do
116
+ expect(SimpleAuth::Session.new).to be_new_record
117
+ expect(@user_session).to be_new_record
118
118
  end
119
119
 
120
- it "should have error message" do
121
- @user_session.errors.full_messages[0].should == "Invalid username or password"
120
+ it "has error message" do
121
+ expect(@user_session.errors.full_messages[0]).to eq("Invalid username or password")
122
122
  end
123
123
 
124
- it "should not return error messages for attributes" do
125
- @user_session.errors.on(:credential).should be_nil
126
- @user_session.errors.on(:password).should be_nil
124
+ it "doesn't return error messages for attributes" do
125
+ expect(@user_session.errors.on(:credential)).to be_nil
126
+ expect(@user_session.errors.on(:password)).to be_nil
127
127
  end
128
128
 
129
- it "should return empty array when trying to get errors by using hash syntax" do
130
- @user_session.errors[:credential].should be_empty
131
- @user_session.errors[:password].should be_empty
129
+ it "returns empty array when trying to get errors by using hash syntax" do
130
+ expect(@user_session.errors[:credential]).to be_empty
131
+ expect(@user_session.errors[:password]).to be_empty
132
132
  end
133
133
 
134
- it "should have errors" do
135
- @user_session.errors.should_not be_empty
134
+ it "has errors" do
135
+ expect(@user_session.errors).not_to be_empty
136
136
  end
137
137
 
138
- it "should not find existing session" do
139
- SimpleAuth::Session.find.should be_nil
138
+ it "doesn't find existing session" do
139
+ expect(SimpleAuth::Session.find).to be_nil
140
140
  end
141
141
 
142
- it "should not find record" do
143
- @user_session.record.should be_nil
142
+ it "doesn't find record" do
143
+ expect(@user_session.record).to be_nil
144
144
  end
145
145
 
146
- it "should not be a valid session" do
147
- @user_session.should_not be_valid
146
+ it "doesn't be a valid session" do
147
+ expect(@user_session).not_to be_valid
148
148
  end
149
149
 
150
- it "should unset record store from session" do
151
- @session.should_not have_key(:user)
150
+ it "unsets record store from session" do
151
+ expect(@session).not_to have_key(:user)
152
152
  end
153
153
 
154
- it "should not be saved" do
155
- @user_session.save.should be_false
154
+ it "doesn't be saved" do
155
+ expect(@user_session.save).to be_falsey
156
156
  end
157
157
 
158
- it "should raise error with save!" do
158
+ it "raises error with save!" do
159
159
  expect { @user_session.save! }.to raise_error(SimpleAuth::NotAuthorized)
160
160
  end
161
161
 
162
- it "should raise error with create!" do
162
+ it "raises error with create!" do
163
163
  expect { SimpleAuth::Session.create!({}) }.to raise_error(SimpleAuth::NotAuthorized)
164
164
  end
165
165
  end
@@ -169,27 +169,27 @@ describe SimpleAuth::Session do
169
169
  @user_session.save!
170
170
  end
171
171
 
172
- it "should keep return to url" do
172
+ it "keeps return to url" do
173
173
  @session[:return_to] = "/some/path"
174
174
  @user_session.destroy
175
- @session[:return_to].should == "/some/path"
175
+ expect(@session[:return_to]).to eq("/some/path")
176
176
  end
177
177
 
178
- it "should remove record session" do
178
+ it "removes record session" do
179
179
  @user_session.destroy
180
- @session.should_not have_key(:user_id)
180
+ expect(@session).not_to have_key(:user_id)
181
181
  end
182
182
 
183
- it "should keep keys composed by user_*" do
183
+ it "keeps keys composed by user_*" do
184
184
  SimpleAuth::Config.wipeout_session = false
185
185
 
186
186
  @session[:user_friends_count] = 42
187
187
  @user_session.destroy
188
188
 
189
- @session[:user_friends_count].should == 42
189
+ expect(@session[:user_friends_count]).to eq(42)
190
190
  end
191
191
 
192
- it "should wipe out keys composed by user_*" do
192
+ it "erases keys composed by user_*" do
193
193
  SimpleAuth::Config.wipeout_session = true
194
194
 
195
195
  @session[:user_friends_count] = 100
@@ -197,16 +197,16 @@ describe SimpleAuth::Session do
197
197
 
198
198
  @user_session.destroy
199
199
 
200
- @session.should_not have_key(:user_friends_count)
201
- @session.should_not have_key(:user_preferred_number)
200
+ expect(@session).not_to have_key(:user_friends_count)
201
+ expect(@session).not_to have_key(:user_preferred_number)
202
202
  end
203
203
 
204
- it "should unset current_user instance variable" do
204
+ it "unsets current_user instance variable" do
205
205
  @user_session.destroy
206
206
 
207
- SimpleAuth::Config.controller.send(:current_user).should be_nil
208
- SimpleAuth::Config.controller.instance_variable_get("@current_user").should be_nil
209
- SimpleAuth::Config.controller.instance_variable_get("@current_session").should be_nil
207
+ expect(SimpleAuth::Config.controller.send(:current_user)).to be_nil
208
+ expect(SimpleAuth::Config.controller.instance_variable_get("@current_user")).to be_nil
209
+ expect(SimpleAuth::Config.controller.instance_variable_get("@current_session")).to be_nil
210
210
  end
211
211
  end
212
212
  end
data/spec/spec_helper.rb CHANGED
@@ -1,187 +1,21 @@
1
1
  ENV["RAILS_ENV"] = "test"
2
- require "bundler"
3
- Bundler.setup(:default, :development, :test)
2
+ require "bundler/setup"
4
3
  Bundler.require
5
4
 
6
5
  I18n.load_path += Dir[File.expand_path("../../locales/*.yml", __FILE__)]
6
+ I18n.enforce_available_locales = false
7
7
 
8
8
  require "rails"
9
9
  require "simple_auth"
10
10
  require File.dirname(__FILE__) + "/support/config/boot"
11
11
  require "rspec/rails"
12
- require "mongo_mapper"
13
12
 
14
13
  # Load database schema
15
14
  load File.dirname(__FILE__) + "/schema.rb"
16
15
 
17
- # Set up MongoDB connection
18
- MongoMapper.connection = Mongo::Connection.new("localhost")
19
- MongoMapper.database = "simple_auth"
20
-
21
16
  # Restore default configuration
22
17
  RSpec.configure do |config|
23
18
  config.before :each do
24
19
  load File.dirname(__FILE__) + "/../lib/simple_auth/config.rb"
25
20
  end
26
21
  end
27
-
28
- shared_examples_for "orm" do
29
- before do
30
- SimpleAuth::Config.model = model_name
31
- end
32
-
33
- context "configuration" do
34
- it "should set credentials" do
35
- model.authentication do |config|
36
- config.credentials = ["uid"]
37
- end
38
-
39
- SimpleAuth::Config.credentials.should == ["uid"]
40
- end
41
-
42
- it "should automatically set model" do
43
- model.authentication do |config|
44
- config.model = nil
45
- end
46
-
47
- SimpleAuth::Config.model.should == model_name
48
- end
49
- end
50
-
51
- context "new record" do
52
- before do
53
- subject.should_not be_valid
54
- end
55
-
56
- it "should require password" do
57
- subject.errors[:password].should_not be_empty
58
- end
59
-
60
- it "should require password to be at least 4-chars long" do
61
- subject.password = "123"
62
- subject.should_not be_valid
63
- subject.errors[:password].should_not be_empty
64
- end
65
-
66
- it "should require password confirmation not to be empty" do
67
- subject.password_confirmation = ""
68
- subject.errors[:password_confirmation].should_not be_empty
69
- end
70
-
71
- it "should require password confirmation not to be nil" do
72
- subject.password_confirmation = nil
73
- subject.errors[:password_confirmation].should_not be_empty
74
- end
75
-
76
- it "should unset password after saving" do
77
- subject = model.new(:password => "test", :password_confirmation => "test")
78
- subject.save
79
- subject.password.should be_nil
80
- subject.password_confirmation.should be_nil
81
- end
82
-
83
- it "should mark password as changed" do
84
- subject = model.new(:password => "test")
85
- subject.password_changed?.should be_true
86
- end
87
-
88
- it "should not mark password as changed" do
89
- subject = model.new
90
- subject.password_changed?.should be_false
91
- end
92
-
93
- it "should mark password as unchanged after saving" do
94
- subject = model.new(:password => "test", :password_confirmation => "test")
95
- subject.save
96
- subject.password_changed?.should be_false
97
- end
98
- end
99
-
100
- context "existing record" do
101
- before do
102
- model.delete_all
103
- model.create(
104
- :email => "john@doe.com",
105
- :login => "johndoe",
106
- :password => "test",
107
- :password_confirmation => "test",
108
- :username => "john"
109
- )
110
- end
111
-
112
- subject { model.first }
113
-
114
- it "should not require password when it hasn't changed" do
115
- subject.login = "john"
116
- subject.should be_valid
117
- end
118
-
119
- it "should require password when explicitly said so" do
120
- subject.require_password!
121
- subject.should_not be_valid
122
- subject.errors[:password].should_not be_empty
123
- end
124
-
125
- it "should require password" do
126
- subject.require_password?.should be_false
127
- subject.require_password!
128
- subject.require_password?.should be_true
129
- end
130
-
131
- it "should not require password after saving" do
132
- subject.require_password!
133
- subject.password = "newpass"
134
- subject.password_confirmation = "newpass"
135
- subject.save.should be_true
136
- subject.require_password?.should be_false
137
- end
138
-
139
- it "should require password confirmation when it has changed" do
140
- subject.password = "newpass"
141
- subject.should_not be_valid
142
- subject.errors[:password_confirmation].should_not be_empty
143
- end
144
-
145
- it "should require password when it has changed to blank" do
146
- subject.password = nil
147
- subject.should_not be_valid
148
- subject.errors[:password].should_not be_empty
149
- end
150
-
151
- it "should authenticate using email" do
152
- model.authenticate("john@doe.com", "test").should == subject
153
- end
154
-
155
- it "should authenticate using login" do
156
- model.authenticate("johndoe", "test").should == subject
157
- end
158
-
159
- it "should authenticate using custom attribute" do
160
- SimpleAuth::Config.credentials = [:username]
161
- model.authenticate("john", "test").should == subject
162
- end
163
-
164
- it "should not authenticate using invalid credential" do
165
- model.authenticate("invalid", "test").should be_nil
166
- end
167
-
168
- it "should not authenticate using wrong password" do
169
- model.authenticate("johndoe", "invalid").should be_nil
170
- end
171
-
172
- it "should return nil when no user has been found" do
173
- model.find_by_credential("invalid").should be_nil
174
- end
175
-
176
- it "should raise error when no user has been found" do
177
- expect {
178
- model.find_by_credential!("invalid")
179
- }.to raise_error(SimpleAuth::RecordNotFound)
180
- end
181
-
182
- it "should return user" do
183
- model.find_by_credential(subject.email).should == subject
184
- model.find_by_credential!(subject.email).should == subject
185
- end
186
- end
187
- end