summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/url_sanitizer_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/url_sanitizer_spec.rb')
-rw-r--r--spec/lib/gitlab/url_sanitizer_spec.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/spec/lib/gitlab/url_sanitizer_spec.rb b/spec/lib/gitlab/url_sanitizer_spec.rb
index aba4ca109a9..0ffbf5f81e7 100644
--- a/spec/lib/gitlab/url_sanitizer_spec.rb
+++ b/spec/lib/gitlab/url_sanitizer_spec.rb
@@ -139,6 +139,23 @@ RSpec.describe Gitlab::UrlSanitizer do
it { is_expected.to eq(credentials) }
end
end
+
+ context 'with mixed credentials' do
+ where(:url, :credentials, :result) do
+ 'http://a@example.com' | { password: 'd' } | { user: 'a', password: 'd' }
+ 'http://a:b@example.com' | { password: 'd' } | { user: 'a', password: 'd' }
+ 'http://:b@example.com' | { password: 'd' } | { user: nil, password: 'd' }
+ 'http://a@example.com' | { user: 'c' } | { user: 'c', password: nil }
+ 'http://a:b@example.com' | { user: 'c' } | { user: 'c', password: 'b' }
+ 'http://a:b@example.com' | { user: '' } | { user: 'a', password: 'b' }
+ end
+
+ with_them do
+ subject { described_class.new(url, credentials: credentials).credentials }
+
+ it { is_expected.to eq(result) }
+ end
+ end
end
describe '#user' do