diff options
author | James Edwards-Jones <jedwardsjones@gitlab.com> | 2018-06-14 09:02:32 +1000 |
---|---|---|
committer | James Edwards-Jones <jedwardsjones@gitlab.com> | 2018-06-14 09:02:32 +1000 |
commit | 202bd2da16942ca8c9b667b10c75025a0c95980d (patch) | |
tree | 36d1fce86be64e8e0d1748932028b6b3dedf203a /spec/controllers/concerns | |
parent | adb069881ae0253c5bf3718aded02976f13fc859 (diff) | |
download | gitlab-ce-202bd2da16942ca8c9b667b10c75025a0c95980d.tar.gz |
Backport InternalRedirect#sanitize_redirectce-jej/sanitize-group-saml-relay-state
Diffstat (limited to 'spec/controllers/concerns')
-rw-r--r-- | spec/controllers/concerns/internal_redirect_spec.rb | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/spec/controllers/concerns/internal_redirect_spec.rb b/spec/controllers/concerns/internal_redirect_spec.rb index a0ee13b2352..7e23b56356e 100644 --- a/spec/controllers/concerns/internal_redirect_spec.rb +++ b/spec/controllers/concerns/internal_redirect_spec.rb @@ -54,6 +54,31 @@ describe InternalRedirect do end end + describe '#sanitize_redirect' do + let(:valid_path) { '/hello/world?hello=world' } + let(:valid_url) { "http://test.host#{valid_path}" } + + it 'returns `nil` for invalid paths' do + invalid_path = '//not/valid' + + expect(controller.sanitize_redirect(invalid_path)).to eq nil + end + + it 'returns `nil` for invalid urls' do + input = 'http://test.host:3000/invalid' + + expect(controller.sanitize_redirect(input)).to eq nil + end + + it 'returns input for valid paths' do + expect(controller.sanitize_redirect(valid_path)).to eq valid_path + end + + it 'returns path for valid urls' do + expect(controller.sanitize_redirect(valid_url)).to eq valid_path + end + end + describe '#host_allowed?' do it 'allows uris with the same host and port' do expect(controller.host_allowed?(URI('http://test.host/test'))).to be(true) |