Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPawel Chojnacki <pawel@chojnacki.ws>2017-02-17 14:52:27 +0300
committerPawel Chojnacki <pawel@chojnacki.ws>2017-03-06 17:41:25 +0300
commit8993801f0cefdc64b46b8fe30622cc78eaa03173 (patch)
treef9a9a38c91e99f03ea87978119a03538d1e91175 /spec/lib/gitlab/auth
parent66dc71599cb698d380e14be7230ae3495c78d266 (diff)
Test various login scenarios if the limit gets enforced
Diffstat (limited to 'spec/lib/gitlab/auth')
-rw-r--r--spec/lib/gitlab/auth/unique_ips_limiter_spec.rb22
1 files changed, 8 insertions, 14 deletions
diff --git a/spec/lib/gitlab/auth/unique_ips_limiter_spec.rb b/spec/lib/gitlab/auth/unique_ips_limiter_spec.rb
index ccaddddf98f..f2472b4310f 100644
--- a/spec/lib/gitlab/auth/unique_ips_limiter_spec.rb
+++ b/spec/lib/gitlab/auth/unique_ips_limiter_spec.rb
@@ -1,14 +1,8 @@
require 'spec_helper'
-describe Gitlab::Auth::UniqueIpsLimiter, lib: true do
+describe Gitlab::Auth::UniqueIpsLimiter, :redis, lib: true do
let(:user) { create(:user) }
- before(:each) do
- Gitlab::Redis.with do |redis|
- redis.del("user_unique_ips:#{user.id}")
- end
- end
-
describe '#count_unique_ips' do
context 'non unique IPs' do
it 'properly counts them' do
@@ -25,7 +19,7 @@ describe Gitlab::Auth::UniqueIpsLimiter, lib: true do
end
it 'resets count after specified time window' do
- cur_time = Time.now.to_i
+ cur_time = Time.now
allow(Time).to receive(:now).and_return(cur_time)
expect(Gitlab::Auth::UniqueIpsLimiter.count_unique_ips(user.id, '192.168.1.2')).to eq(1)
@@ -51,15 +45,15 @@ describe Gitlab::Auth::UniqueIpsLimiter, lib: true do
end
it 'blocks user trying to login from second ip' do
- RequestStore[:client_ip] = '192.168.1.1'
+ allow(Gitlab::RequestContext).to receive(:client_ip).and_return('192.168.1.1')
expect(Gitlab::Auth::UniqueIpsLimiter.limit_user! { user }).to eq(user)
- RequestStore[:client_ip] = '192.168.1.2'
+ allow(Gitlab::RequestContext).to receive(:client_ip).and_return('192.168.1.2')
expect { Gitlab::Auth::UniqueIpsLimiter.limit_user! { user } }.to raise_error(Gitlab::Auth::TooManyIps)
end
it 'allows user trying to login from the same ip twice' do
- RequestStore[:client_ip] = '192.168.1.1'
+ allow(Gitlab::RequestContext).to receive(:client_ip).and_return('192.168.1.1')
expect(Gitlab::Auth::UniqueIpsLimiter.limit_user! { user }).to eq(user)
expect(Gitlab::Auth::UniqueIpsLimiter.limit_user! { user }).to eq(user)
end
@@ -71,13 +65,13 @@ describe Gitlab::Auth::UniqueIpsLimiter, lib: true do
end
it 'blocks user trying to login from third ip' do
- RequestStore[:client_ip] = '192.168.1.1'
+ allow(Gitlab::RequestContext).to receive(:client_ip).and_return('192.168.1.1')
expect(Gitlab::Auth::UniqueIpsLimiter.limit_user! { user }).to eq(user)
- RequestStore[:client_ip] = '192.168.1.2'
+ allow(Gitlab::RequestContext).to receive(:client_ip).and_return('192.168.1.2')
expect(Gitlab::Auth::UniqueIpsLimiter.limit_user! { user }).to eq(user)
- RequestStore[:client_ip] = '192.168.1.3'
+ allow(Gitlab::RequestContext).to receive(:client_ip).and_return('192.168.1.3')
expect { Gitlab::Auth::UniqueIpsLimiter.limit_user! { user } }.to raise_error(Gitlab::Auth::TooManyIps)
end
end