debian-mirror-gitlab/spec/controllers/oauth/applications_controller_spec.rb

78 lines
1.8 KiB
Ruby
Raw Normal View History

2019-07-31 22:56:46 +05:30
# frozen_string_literal: true
require 'spec_helper'
describe Oauth::ApplicationsController do
let(:user) { create(:user) }
context 'project members' do
before do
sign_in(user)
end
describe 'GET #index' do
it 'shows list of applications' do
get :index
2018-03-17 18:26:18 +05:30
expect(response).to have_gitlab_http_status(200)
end
2019-10-12 21:52:04 +05:30
it 'redirects back to profile page if OAuth applications are disabled' do
2018-12-05 23:21:45 +05:30
disable_user_oauth
get :index
2018-12-05 23:21:45 +05:30
expect(response).to have_gitlab_http_status(200)
end
end
describe 'POST #create' do
it 'creates an application' do
2019-02-15 15:39:39 +05:30
post :create, params: oauth_params
2018-12-05 23:21:45 +05:30
expect(response).to have_gitlab_http_status(302)
expect(response).to redirect_to(oauth_application_path(Doorkeeper::Application.last))
end
it 'redirects back to profile page if OAuth applications are disabled' do
disable_user_oauth
2019-02-15 15:39:39 +05:30
post :create, params: oauth_params
2018-12-05 23:21:45 +05:30
2018-03-17 18:26:18 +05:30
expect(response).to have_gitlab_http_status(302)
expect(response).to redirect_to(profile_path)
end
2018-11-29 20:51:05 +05:30
context 'redirect_uri' do
render_views
it 'shows an error for a forbidden URI' do
invalid_uri_params = {
doorkeeper_application: {
name: 'foo',
redirect_uri: 'javascript://alert()'
}
}
2019-02-15 15:39:39 +05:30
post :create, params: invalid_uri_params
2018-11-29 20:51:05 +05:30
expect(response.body).to include 'Redirect URI is forbidden by the server'
end
end
end
end
2018-12-05 23:21:45 +05:30
def disable_user_oauth
allow(Gitlab::CurrentSettings.current_application_settings).to receive(:user_oauth_applications?).and_return(false)
end
def oauth_params
{
doorkeeper_application: {
name: 'foo',
redirect_uri: 'http://example.org'
}
}
end
end