Commit 616c476146bcfee353110a7ddc62eaa370978376

Authored by Lucas Kanashiro
1 parent b66c6ef7

Initial test structure

spec/omniauth/strategies/remote_user_spec.rb
... ... @@ -4,30 +4,41 @@ describe 'Test Strategy Remote_User' do
4 4 let(:app) do
5 5 Rack::Builder.new do |b|
6 6 b.use Rack::Session::Cookie, :secret => 'abc123'
7   - b.use OmniAuth::Strategies::RemoteUser, :fields => [:name, :email], :uid_field => :name
8   - b.run lambda { |_env| [200, {'HTTP_REMOTE_USER' => 'myuser'}, ['My body']] }
  7 + b.use OmniAuth::Strategies::RemoteUser
  8 + b.run lambda { |_env| [200, {}, ['My body']] }
9 9 end.to_app
10 10 end
11 11  
12   - context 'Response phase' do
13   - before(:each) { get '/auth/remote_user',{},{'HTTP_COOKIE' => '_gitlab_session=user@myuser','HTTP_REMOTE_USER' => "user@myuser" }}
14   - it 'check my rack response' do
15   - expect(last_response.body).to eq('My body')
16   - expect(last_response.status).to eq(200)
17   - expect(last_response.original_headers).to eq({'HTTP_REMOTE_USER' => 'myuser' })
18   - expect(last_response.errors).to eq('')
  12 + context 'Without REMOTE_USER and not logged in' do
  13 + before(:each){get '/', {}, {}}
  14 +
  15 + it 'Do nothing' do
  16 + last_response.status.should == 200
  17 + last_response.cookies['_remote_user'] == nil
19 18 end
  19 + end
  20 +
  21 + context 'Without REMOTE_USER and logged in' do
  22 + #Logout current user
  23 +
  24 +
  25 + end
20 26  
21   - context 'Request phase' do
22   - before(:each) { get '/auth/remote_user',{},{'HTTP_COOKIE' => '_gitlab_session=user@myuser','HTTP_REMOTE_USER' => "user@myuser" }}
23   - it 'check my env request' do
24   - expect(last_request.env['HTTP_COOKIE']).to eq("_gitlab_session=user@myuser")
25   - expect(last_request.env['HTTP_REMOTE_USER']).to eq("user@myuser")
26   - expect(last_request.request_method).to eq("GET")
27   - expect(last_request.path_info).to eq("/auth/remote_user")
28   - end
  27 + context 'With REMOTE_USER and not logged in' do
  28 + #Login REMOTE_USER
  29 + it 'logs user in' do
  30 + get '/', {}, { 'HTTP_REMOTE_USER' => 'foobar' }
29 31 end
30 32 end
31 33  
  34 + context 'With REMOTE_USER, logged in and current user equals REMOTE_USER' do
  35 + #do nothing
32 36  
  37 + end
  38 +
  39 + context 'With REMOTE_USER, logged in and current user not equals REMOTE_USER' do
  40 + #Logout current user and login REMOTE_USER
  41 +
  42 + end
33 43 end
  44 +
... ...
spec/spec_helper.rb
... ... @@ -22,4 +22,5 @@ require 'omniauth/remote_user'
22 22  
23 23 RSpec.configure do |config|
24 24 config.include Rack::Test::Methods
  25 + config.extend OmniAuth::Test::StrategyMacros, :type => :strategy
25 26 end
... ...