63 lines
1.8 KiB
Ruby
63 lines
1.8 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
|
|
RSpec.describe 'Sessions', feature_category: :system_access do
|
|
include SessionHelpers
|
|
|
|
context 'authentication', :allow_forgery_protection do
|
|
let(:user) { create(:user) }
|
|
|
|
it 'logout does not require a csrf token' do
|
|
login_as(user)
|
|
|
|
post(destroy_user_session_path, headers: { 'X-CSRF-Token' => 'invalid' })
|
|
|
|
expect(response).to redirect_to(new_user_session_path)
|
|
end
|
|
end
|
|
|
|
describe 'about_gitlab_active_user' do
|
|
before do
|
|
allow(::Gitlab).to receive(:com?).and_return(true)
|
|
end
|
|
|
|
let(:user) { create(:user) }
|
|
|
|
context 'when user signs in' do
|
|
it 'sets marketing cookie' do
|
|
post user_session_path(user: { login: user.username, password: user.password })
|
|
expect(response.cookies['about_gitlab_active_user']).to be_present
|
|
end
|
|
end
|
|
|
|
context 'when user uses remember_me' do
|
|
it 'sets marketing cookie' do
|
|
post user_session_path(user: { login: user.username, password: user.password, remember_me: true })
|
|
expect(response.cookies['about_gitlab_active_user']).to be_present
|
|
end
|
|
end
|
|
|
|
context 'when user signs out' do
|
|
before do
|
|
post user_session_path(user: { login: user.username, password: user.password })
|
|
end
|
|
|
|
it 'deletes marketing cookie' do
|
|
post(destroy_user_session_path)
|
|
expect(response.cookies['about_gitlab_active_user']).to be_nil
|
|
end
|
|
end
|
|
|
|
context 'when user is not using GitLab SaaS' do
|
|
before do
|
|
allow(::Gitlab).to receive(:com?).and_return(false)
|
|
end
|
|
|
|
it 'does not set marketing cookie' do
|
|
post user_session_path(user: { login: user.username, password: user.password })
|
|
expect(response.cookies['about_gitlab_active_user']).to be_nil
|
|
end
|
|
end
|
|
end
|
|
end
|