Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-03-19 18:09:41 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-03-19 18:09:41 +0300
commit78d8830cec030ff12afed3c8ae1dddec454d0a24 (patch)
treeb5494f60c7d28be787eee7872fd3d99dcbf9f8c8 /spec/controllers/import
parent652bd073731b0028641672a75355c7918b5ac116 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/controllers/import')
-rw-r--r--spec/controllers/import/gitlab_projects_controller_spec.rb100
1 files changed, 0 insertions, 100 deletions
diff --git a/spec/controllers/import/gitlab_projects_controller_spec.rb b/spec/controllers/import/gitlab_projects_controller_spec.rb
deleted file mode 100644
index 0b74e2bbcbf..00000000000
--- a/spec/controllers/import/gitlab_projects_controller_spec.rb
+++ /dev/null
@@ -1,100 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-describe Import::GitlabProjectsController do
- let_it_be(:namespace) { create(:namespace) }
- let_it_be(:user) { namespace.owner }
- let(:file) { fixture_file_upload('spec/fixtures/project_export.tar.gz', 'text/plain') }
-
- before do
- sign_in(user)
- end
-
- describe 'POST create' do
- context 'with an invalid path' do
- it 'redirects with an error' do
- post :create, params: { namespace_id: namespace.id, path: '/test', file: file }
-
- expect(flash[:alert]).to start_with('Project could not be imported')
- expect(response).to have_gitlab_http_status(:found)
- end
-
- it 'redirects with an error when a relative path is used' do
- post :create, params: { namespace_id: namespace.id, path: '../test', file: file }
-
- expect(flash[:alert]).to start_with('Project could not be imported')
- expect(response).to have_gitlab_http_status(:found)
- end
- end
-
- context 'with a valid path' do
- it 'redirects to the new project path' do
- post :create, params: { namespace_id: namespace.id, path: 'test', file: file }
-
- expect(flash[:notice]).to include('is being imported')
- expect(response).to have_gitlab_http_status(:found)
- end
- end
-
- it_behaves_like 'project import rate limiter'
- end
-
- describe 'POST authorize' do
- let(:workhorse_token) { JWT.encode({ 'iss' => 'gitlab-workhorse' }, Gitlab::Workhorse.secret, 'HS256') }
-
- before do
- request.headers['GitLab-Workhorse'] = '1.0'
- request.headers[Gitlab::Workhorse::INTERNAL_API_REQUEST_HEADER] = workhorse_token
- end
-
- it 'authorizes importing project with workhorse header' do
- post :authorize, format: :json
-
- expect(response).to have_gitlab_http_status(:ok)
- expect(response.content_type.to_s).to eq(Gitlab::Workhorse::INTERNAL_API_CONTENT_TYPE)
- end
-
- it 'rejects requests that bypassed gitlab-workhorse or have invalid header' do
- request.headers[Gitlab::Workhorse::INTERNAL_API_REQUEST_HEADER] = 'INVALID_HEADER'
-
- expect { post :authorize, format: :json }.to raise_error(JWT::DecodeError)
- end
-
- context 'when using remote storage' do
- context 'when direct upload is enabled' do
- before do
- stub_uploads_object_storage(ImportExportUploader, enabled: true, direct_upload: true)
- end
-
- it 'responds with status 200, location of file remote store and object details' do
- post :authorize, format: :json
-
- expect(response).to have_gitlab_http_status(:ok)
- expect(response.content_type.to_s).to eq(Gitlab::Workhorse::INTERNAL_API_CONTENT_TYPE)
- expect(json_response).not_to have_key('TempPath')
- expect(json_response['RemoteObject']).to have_key('ID')
- expect(json_response['RemoteObject']).to have_key('GetURL')
- expect(json_response['RemoteObject']).to have_key('StoreURL')
- expect(json_response['RemoteObject']).to have_key('DeleteURL')
- expect(json_response['RemoteObject']).to have_key('MultipartUpload')
- end
- end
-
- context 'when direct upload is disabled' do
- before do
- stub_uploads_object_storage(ImportExportUploader, enabled: true, direct_upload: false)
- end
-
- it 'handles as a local file' do
- post :authorize, format: :json
-
- expect(response).to have_gitlab_http_status(:ok)
- expect(response.content_type.to_s).to eq(Gitlab::Workhorse::INTERNAL_API_CONTENT_TYPE)
- expect(json_response['TempPath']).to eq(ImportExportUploader.workhorse_local_upload_path)
- expect(json_response['RemoteObject']).to be_nil
- end
- end
- end
- end
-end