2022-01-01 13:38:12 +00:00
|
|
|
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
2021-06-01 12:20:20 +00:00
|
|
|
|
2021-03-03 09:54:59 +00:00
|
|
|
require 'rails_helper'
|
|
|
|
|
2021-06-18 13:06:22 +00:00
|
|
|
RSpec.describe 'Manage > Settings > System > Network', type: :request, required_envs: %w[ZAMMAD_PROXY_USERNAME ZAMMAD_PROXY_PASSWORD] do
|
2021-03-03 09:54:59 +00:00
|
|
|
|
|
|
|
let(:group) { create(:group) }
|
|
|
|
let!(:admin) do
|
|
|
|
create(:admin, groups: [Group.lookup(name: 'Users'), group])
|
|
|
|
end
|
|
|
|
let(:proxy) { ENV['ZAMMAD_PROXY'] }
|
|
|
|
let(:proxy_username) { ENV['ZAMMAD_PROXY_USERNAME'] }
|
|
|
|
let(:proxy_password) { ENV['ZAMMAD_PROXY_PASSWORD'] }
|
|
|
|
let(:valid_params) do
|
|
|
|
{
|
|
|
|
proxy: proxy,
|
|
|
|
proxy_username: proxy_username,
|
|
|
|
proxy_password: proxy_password
|
|
|
|
}
|
|
|
|
end
|
|
|
|
|
|
|
|
describe 'request handling' do
|
|
|
|
|
|
|
|
it 'does proxy settings - valid params' do
|
|
|
|
authenticated_as(admin)
|
|
|
|
|
|
|
|
post '/api/v1/proxy', params: valid_params, as: :json
|
|
|
|
|
|
|
|
expect(json_response['result']).to eq('success')
|
|
|
|
end
|
|
|
|
|
|
|
|
context 'when proxy settings uses invalid config' do
|
|
|
|
|
|
|
|
it 'with invalid proxy' do
|
|
|
|
authenticated_as(admin)
|
|
|
|
params = valid_params.merge({ proxy: 'invalid_proxy' })
|
|
|
|
|
|
|
|
post '/api/v1/proxy', params: params, as: :json
|
|
|
|
|
|
|
|
expect(json_response['result']).to eq('failed')
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'with unknown proxy' do
|
|
|
|
authenticated_as(admin)
|
|
|
|
params = valid_params.merge({ proxy_password: 'proxy.example.com:3128' })
|
|
|
|
|
|
|
|
post '/api/v1/proxy', params: params, as: :json
|
|
|
|
|
|
|
|
expect(json_response['result']).to eq('failed')
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'with invalid proxy username' do
|
|
|
|
authenticated_as(admin)
|
|
|
|
params = valid_params.merge({ proxy_password: 'invalid_username' })
|
|
|
|
|
|
|
|
post '/api/v1/proxy', params: params, as: :json
|
|
|
|
|
|
|
|
expect(json_response['result']).to eq('failed')
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'with invalid proxy password' do
|
|
|
|
authenticated_as(admin)
|
|
|
|
params = valid_params.merge({ proxy_password: 'invalid_password' })
|
|
|
|
|
|
|
|
post '/api/v1/proxy', params: params, as: :json
|
|
|
|
|
|
|
|
expect(json_response['result']).to eq('failed')
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
end
|