fix #3686 make tarball download url to end with extension
This commit is contained in:
parent
29f1fa8250
commit
4974f1ef86
4 changed files with 13 additions and 5 deletions
4
changelogs/unreleased/3686_make_tarball_download_url.yml
Normal file
4
changelogs/unreleased/3686_make_tarball_download_url.yml
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
---
|
||||||
|
title: repository archive download url now ends with selected file extension
|
||||||
|
merge_request: 13178
|
||||||
|
author: haseebeqx
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
resource :repository, only: [:create] do
|
resource :repository, only: [:create] do
|
||||||
member do
|
member do
|
||||||
get 'archive', constraints: { format: Gitlab::PathRegex.archive_formats_regex }
|
get ':ref/archive', constraints: { format: Gitlab::PathRegex.archive_formats_regex, ref: /.+/ }, action: 'archive', as: 'archive'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ describe Projects::RepositoriesController do
|
||||||
describe "GET archive" do
|
describe "GET archive" do
|
||||||
context 'as a guest' do
|
context 'as a guest' do
|
||||||
it 'responds with redirect in correct format' do
|
it 'responds with redirect in correct format' do
|
||||||
get :archive, namespace_id: project.namespace, project_id: project, format: "zip"
|
get :archive, namespace_id: project.namespace, project_id: project, format: "zip", ref: 'master'
|
||||||
|
|
||||||
expect(response.header["Content-Type"]).to start_with('text/html')
|
expect(response.header["Content-Type"]).to start_with('text/html')
|
||||||
expect(response).to be_redirect
|
expect(response).to be_redirect
|
||||||
|
|
|
@ -165,15 +165,19 @@ describe 'project routing' do
|
||||||
# edit_project_repository GET /:project_id/repository/edit(.:format) projects/repositories#edit
|
# edit_project_repository GET /:project_id/repository/edit(.:format) projects/repositories#edit
|
||||||
describe Projects::RepositoriesController, 'routing' do
|
describe Projects::RepositoriesController, 'routing' do
|
||||||
it 'to #archive' do
|
it 'to #archive' do
|
||||||
expect(get('/gitlab/gitlabhq/repository/archive')).to route_to('projects/repositories#archive', namespace_id: 'gitlab', project_id: 'gitlabhq')
|
expect(get('/gitlab/gitlabhq/repository/master/archive')).to route_to('projects/repositories#archive', namespace_id: 'gitlab', project_id: 'gitlabhq', ref: 'master')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'to #archive format:zip' do
|
it 'to #archive format:zip' do
|
||||||
expect(get('/gitlab/gitlabhq/repository/archive.zip')).to route_to('projects/repositories#archive', namespace_id: 'gitlab', project_id: 'gitlabhq', format: 'zip')
|
expect(get('/gitlab/gitlabhq/repository/master/archive.zip')).to route_to('projects/repositories#archive', namespace_id: 'gitlab', project_id: 'gitlabhq', format: 'zip', ref: 'master')
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'to #archive format:tar.bz2' do
|
it 'to #archive format:tar.bz2' do
|
||||||
expect(get('/gitlab/gitlabhq/repository/archive.tar.bz2')).to route_to('projects/repositories#archive', namespace_id: 'gitlab', project_id: 'gitlabhq', format: 'tar.bz2')
|
expect(get('/gitlab/gitlabhq/repository/master/archive.tar.bz2')).to route_to('projects/repositories#archive', namespace_id: 'gitlab', project_id: 'gitlabhq', format: 'tar.bz2', ref: 'master')
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'to #archive with "/" in route' do
|
||||||
|
expect(get('/gitlab/gitlabhq/repository/improve/awesome/archive')).to route_to('projects/repositories#archive', namespace_id: 'gitlab', project_id: 'gitlabhq', ref: 'improve/awesome')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue