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
path: root/spec
diff options
context:
space:
mode:
authorTimothy Andrew <mail@timothyandrew.net>2017-06-19 07:40:24 +0300
committerTimothy Andrew <mail@timothyandrew.net>2017-07-03 19:25:10 +0300
commitde0dcfe577f7e5a849e081734eb4a396bc70d3dc (patch)
tree14ae5b1b03184493d09b29785267de46ed550a39 /spec
parent26295001407caf3e6ccdc71d05662ecdb49de5f3 (diff)
Add more providers to the OAuth login integration tests.
- Added saml, authentiq, cas3, and auth0 - Crowd seems to be a special case that will be handled separately.
Diffstat (limited to 'spec')
-rw-r--r--spec/features/oauth_login_spec.rb43
1 files changed, 41 insertions, 2 deletions
diff --git a/spec/features/oauth_login_spec.rb b/spec/features/oauth_login_spec.rb
index 2d51abd0e97..b37c14bd638 100644
--- a/spec/features/oauth_login_spec.rb
+++ b/spec/features/oauth_login_spec.rb
@@ -7,7 +7,20 @@ feature 'OAuth Login', feature: true, js: true do
end
def provider_config(provider)
- OpenStruct.new(name: provider.to_s, app_id: 'app_id', app_secret: 'app_secret')
+ if provider == :saml
+ OpenStruct.new(
+ name: 'saml', label: 'saml',
+ args: {
+ assertion_consumer_service_url: 'https://localhost:3443/users/auth/saml/callback',
+ idp_cert_fingerprint: '26:43:2C:47:AF:F0:6B:D0:07:9C:AD:A3:74:FE:5D:94:5F:4E:9E:52',
+ idp_sso_target_url: 'https://idp.example.com/sso/saml',
+ issuer: 'https://localhost:3443/',
+ name_identifier_format: 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient'
+ }
+ )
+ else
+ OpenStruct.new(name: provider.to_s, app_id: 'app_id', app_secret: 'app_secret')
+ end
end
def stub_omniauth_config(provider)
@@ -16,7 +29,8 @@ feature 'OAuth Login', feature: true, js: true do
Rails.application.env_config["omniauth.auth"] = OmniAuth.config.mock_auth[provider]
end
- providers = [:github, :twitter, :bitbucket, :gitlab, :google_oauth2, :facebook]
+ providers = [:github, :twitter, :bitbucket, :gitlab, :google_oauth2,
+ :facebook, :authentiq, :cas3, :auth0]
before do
OmniAuth.config.full_host = ->(request) { request['REQUEST_URI'].sub(/#{request['REQUEST_PATH']}.*/, '') }
@@ -24,12 +38,37 @@ feature 'OAuth Login', feature: true, js: true do
messages = {
enabled: true,
allow_single_sign_on: providers.map(&:to_s),
+ auto_link_saml_user: true,
providers: providers.map { |provider| provider_config(provider) }
}
allow(Gitlab.config.omniauth).to receive_messages(messages)
end
+ # context 'logging in via OAuth' do
+ # def saml_config
+
+ # end
+ # def stub_omniauth_config(messages)
+ # Rails.application.env_config['devise.mapping'] = Devise.mappings[:user]
+ # Rails.application.routes.disable_clear_and_finalize = true
+ # Rails.application.routes.draw do
+ # post '/users/auth/saml' => 'omniauth_callbacks#saml'
+ # end
+ # allow(Gitlab::OAuth::Provider).to receive_messages(providers: [:saml], config_for: saml_config)
+ # allow(Gitlab.config.omniauth).to receive_messages(messages)
+ # expect_any_instance_of(Object).to receive(:omniauth_authorize_path).with(:user, "saml").and_return('/users/auth/saml')
+ # end
+ # it 'shows 2FA prompt after OAuth login' do
+ # stub_omniauth_config(enabled: true, auto_link_saml_user: true, allow_single_sign_on: ['saml'], providers: [saml_config])
+ # user = create(:omniauth_user, :two_factor, extern_uid: 'my-uid', provider: 'saml')
+ # login_via('saml', user, 'my-uid')
+ # expect(page).to have_content('Two-Factor Authentication')
+ # enter_code(user.current_otp)
+ # expect(current_path).to eq root_path
+ # end
+ # end
+
providers.each do |provider|
context "when the user logs in using the #{provider} provider" do
context "when two-factor authentication is disabled" do