diff options
author | Douwe Maan <douwe@gitlab.com> | 2015-08-06 08:29:18 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2015-08-06 08:29:18 +0000 |
commit | 863f61343a5a51b3b6a1c596353ecdfd6c20d523 (patch) | |
tree | 5151ab79f956ffc18cd21e55fcec11e764add69a /spec | |
parent | ce47dd4bb0c686aee13b309b07eb8f976aa5d547 (diff) | |
parent | ecbe119af13dfef707694fc7a271d60f3af8f779 (diff) | |
download | gitlab-ce-863f61343a5a51b3b6a1c596353ecdfd6c20d523.tar.gz |
Merge branch 'fix-branch-errors-with-encoded-slashes' into 'master'
Fix errors deleting, creating, and viewing graphs using branches with encoded slashes
* Closes #1804
* Closes #1359
See merge request !1084
Diffstat (limited to 'spec')
-rw-r--r-- | spec/controllers/branches_controller_spec.rb | 20 | ||||
-rw-r--r-- | spec/lib/extracts_path_spec.rb | 10 |
2 files changed, 30 insertions, 0 deletions
diff --git a/spec/controllers/branches_controller_spec.rb b/spec/controllers/branches_controller_spec.rb index bd4c946b64b..8e06d4bdc77 100644 --- a/spec/controllers/branches_controller_spec.rb +++ b/spec/controllers/branches_controller_spec.rb @@ -54,6 +54,13 @@ describe Projects::BranchesController do let(:ref) { "<script>alert('ref');</script>" } it { is_expected.to render_template('new') } end + + context "valid branch name with encoded slashes" do + let(:branch) { "feature%2Ftest" } + let(:ref) { "<script>alert('ref');</script>" } + it { is_expected.to render_template('new') } + it { project.repository.branch_names.include?('feature/test')} + end end describe "POST destroy" do @@ -74,6 +81,19 @@ describe Projects::BranchesController do it { expect(subject).to render_template('destroy') } end + context "valid branch name with unencoded slashes" do + let(:branch) { "improve/awesome" } + + it { expect(response.status).to eq(200) } + it { expect(subject).to render_template('destroy') } + end + + context "valid branch name with encoded slashes" do + let(:branch) { "improve%2Fawesome" } + + it { expect(response.status).to eq(200) } + it { expect(subject).to render_template('destroy') } + end context "invalid branch name, valid ref" do let(:branch) { "no-branch" } diff --git a/spec/lib/extracts_path_spec.rb b/spec/lib/extracts_path_spec.rb index 4439775f612..9c115bbfc6a 100644 --- a/spec/lib/extracts_path_spec.rb +++ b/spec/lib/extracts_path_spec.rb @@ -29,6 +29,16 @@ describe ExtractsPath do assign_ref_vars expect(@logs_path).to eq("/#{@project.path_with_namespace}/refs/#{ref}/logs_tree/files/ruby/popen.rb") end + + context 'escaped sequences in ref' do + let(:ref) { "improve%2Fawesome" } + + it "id should have no escape sequences" do + assign_ref_vars + expect(@ref).to eq('improve/awesome') + expect(@logs_path).to eq("/#{@project.path_with_namespace}/refs/#{ref}/logs_tree/files/ruby/popen.rb") + end + end end describe '#extract_ref' do |