Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/controllers/google_api/authorizations_controller_spec.rb')
-rw-r--r--spec/controllers/google_api/authorizations_controller_spec.rb21
1 files changed, 21 insertions, 0 deletions
diff --git a/spec/controllers/google_api/authorizations_controller_spec.rb b/spec/controllers/google_api/authorizations_controller_spec.rb
index 3dd2cc307d5..3bf50f98791 100644
--- a/spec/controllers/google_api/authorizations_controller_spec.rb
+++ b/spec/controllers/google_api/authorizations_controller_spec.rb
@@ -88,5 +88,26 @@ RSpec.describe GoogleApi::AuthorizationsController do
it_behaves_like 'access denied'
end
+
+ context 'user logs in but declines authorizations' do
+ subject { get :callback, params: { error: 'xxx', state: state } }
+
+ let(:session_key) { 'session-key' }
+ let(:redirect_uri) { 'example.com' }
+ let(:error_uri) { 'error.com' }
+ let(:state) { session_key }
+
+ before do
+ session[GoogleApi::CloudPlatform::Client.session_key_for_redirect_uri(session_key)] = redirect_uri
+ session[:error_uri] = error_uri
+ allow_next_instance_of(GoogleApi::CloudPlatform::Client) do |instance|
+ allow(instance).to receive(:get_token).and_return([token, expires_at])
+ end
+ end
+
+ it 'redirects to error uri' do
+ expect(subject).to redirect_to(error_uri)
+ end
+ end
end
end