remote_user_spec.rb 1.22 KB
require 'spec_helper'

describe 'Test Strategy Remote_User' do
	let(:app) do
		Rack::Builder.new do |b|
			b.use Rack::Session::Cookie, :secret => 'abc123'
			b.use OmniAuth::Strategies::RemoteUser, :fields => [:name, :email], :uid_field => :name
			b.run  lambda { |_env| [200, {'HTTP_REMOTE_USER' => 'myuser'}, ['My body']] }
		end.to_app
	end

	context 'Response phase' do
		before(:each) { get '/auth/remote_user',{},{'HTTP_COOKIE' => '_gitlab_session=user@myuser','HTTP_REMOTE_USER' => "user@myuser" }}
		it 'check my rack response' do
			expect(last_response.body).to eq('My body')
			expect(last_response.status).to eq(200)
			expect(last_response.original_headers).to eq({'HTTP_REMOTE_USER' => 'myuser' })
			expect(last_response.errors).to eq('')
		end

		context 'Request phase' do
			before(:each) { get '/auth/remote_user',{},{'HTTP_COOKIE' => '_gitlab_session=user@myuser','HTTP_REMOTE_USER' => "user@myuser" }}
			it 'check my env request' do
				expect(last_request.env['HTTP_COOKIE']).to eq("_gitlab_session=user@myuser")
				expect(last_request.env['HTTP_REMOTE_USER']).to eq("user@myuser")
				expect(last_request.request_method).to eq("GET")
				expect(last_request.path_info).to eq("/auth/remote_user")
			end
		end
	end


end