diff options
| author | Stan Hu <stanhu@gmail.com> | 2018-03-12 15:00:50 +0000 |
|---|---|---|
| committer | Stan Hu <stanhu@gmail.com> | 2018-03-12 15:00:50 +0000 |
| commit | 30bebe049ddf9ecbf6f7b3dbd0b53209e616823c (patch) | |
| tree | d169e4fcf0112bbe312fd5fd7e0084d08833dd60 /spec/lib | |
| parent | 4bc58ca210d8c984c20e88c19e74b53e9505905b (diff) | |
| parent | 3802006436d6834ee0a8052b22773cb65c4447b5 (diff) | |
| download | gitlab-ce-30bebe049ddf9ecbf6f7b3dbd0b53209e616823c.tar.gz | |
Merge branch 'tc-api-fix-expose_url' into 'master'
Respect the protocol in `expose_url`
Closes gitlab-ee#5217
See merge request gitlab-org/gitlab-ce!17681
Diffstat (limited to 'spec/lib')
| -rw-r--r-- | spec/lib/api/helpers/related_resources_helpers_spec.rb | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/spec/lib/api/helpers/related_resources_helpers_spec.rb b/spec/lib/api/helpers/related_resources_helpers_spec.rb new file mode 100644 index 00000000000..b918301f1cb --- /dev/null +++ b/spec/lib/api/helpers/related_resources_helpers_spec.rb @@ -0,0 +1,41 @@ +require 'spec_helper' + +describe API::Helpers::RelatedResourcesHelpers do + subject(:helpers) do + Class.new.include(described_class).new + end + + describe '#expose_url' do + let(:path) { '/api/v4/awesome_endpoint' } + subject(:url) { helpers.expose_url(path) } + + def stub_default_url_options(protocol: 'http', host: 'example.com', port: nil) + expect(Gitlab::Application.routes).to receive(:default_url_options) + .and_return(protocol: protocol, host: host, port: port) + end + + it 'respects the protocol if it is HTTP' do + stub_default_url_options(protocol: 'http') + + is_expected.to start_with('http://') + end + + it 'respects the protocol if it is HTTPS' do + stub_default_url_options(protocol: 'https') + + is_expected.to start_with('https://') + end + + it 'accepts port to be nil' do + stub_default_url_options(port: nil) + + is_expected.to start_with('http://example.com/') + end + + it 'includes port if provided' do + stub_default_url_options(port: 8080) + + is_expected.to start_with('http://example.com:8080/') + end + end +end |
