Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
7c6ff2fc
Commit
7c6ff2fc
authored
Oct 06, 2020
by
Igor Drozdov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix 2.7 warnings for api/files_spec
parent
b45adad7
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
30 additions
and
25 deletions
+30
-25
spec/requests/api/files_spec.rb
spec/requests/api/files_spec.rb
+30
-25
No files found.
spec/requests/api/files_spec.rb
View file @
7c6ff2fc
...
...
@@ -73,18 +73,20 @@ RSpec.describe API::Files do
describe
"HEAD /projects/:id/repository/files/:file_path"
do
shared_examples_for
'repository files'
do
let
(
:options
)
{
{}
}
it
'returns 400 when file path is invalid'
do
head
api
(
route
(
rouge_file_path
),
current_user
),
params:
params
head
api
(
route
(
rouge_file_path
),
current_user
,
**
options
),
params:
params
expect
(
response
).
to
have_gitlab_http_status
(
:bad_request
)
end
it_behaves_like
'when path is absolute'
do
subject
{
head
api
(
route
(
absolute_path
),
current_user
),
params:
params
}
subject
{
head
api
(
route
(
absolute_path
),
current_user
,
**
options
),
params:
params
}
end
it
'returns file attributes in headers'
do
head
api
(
route
(
file_path
),
current_user
),
params:
params
head
api
(
route
(
file_path
),
current_user
,
**
options
),
params:
params
expect
(
response
).
to
have_gitlab_http_status
(
:ok
)
expect
(
response
.
headers
[
'X-Gitlab-File-Path'
]).
to
eq
(
CGI
.
unescape
(
file_path
))
...
...
@@ -98,7 +100,7 @@ RSpec.describe API::Files do
file_path
=
"files%2Fjs%2Fcommit%2Ejs%2Ecoffee"
params
[
:ref
]
=
"6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9"
head
api
(
route
(
file_path
),
current_user
),
params:
params
head
api
(
route
(
file_path
),
current_user
,
**
options
),
params:
params
expect
(
response
).
to
have_gitlab_http_status
(
:ok
)
expect
(
response
.
headers
[
'X-Gitlab-File-Name'
]).
to
eq
(
'commit.js.coffee'
)
...
...
@@ -107,7 +109,7 @@ RSpec.describe API::Files do
context
'when mandatory params are not given'
do
it
"responds with a 400 status"
do
head
api
(
route
(
"any%2Ffile"
),
current_user
)
head
api
(
route
(
"any%2Ffile"
),
current_user
,
**
options
)
expect
(
response
).
to
have_gitlab_http_status
(
:bad_request
)
end
...
...
@@ -117,7 +119,7 @@ RSpec.describe API::Files do
it
"responds with a 404 status"
do
params
[
:ref
]
=
'master'
head
api
(
route
(
'app%2Fmodels%2Fapplication%2Erb'
),
current_user
),
params:
params
head
api
(
route
(
'app%2Fmodels%2Fapplication%2Erb'
),
current_user
,
**
options
),
params:
params
expect
(
response
).
to
have_gitlab_http_status
(
:not_found
)
end
...
...
@@ -127,7 +129,7 @@ RSpec.describe API::Files do
include_context
'disabled repository'
it
"responds with a 403 status"
do
head
api
(
route
(
file_path
),
current_user
),
params:
params
head
api
(
route
(
file_path
),
current_user
,
**
options
),
params:
params
expect
(
response
).
to
have_gitlab_http_status
(
:forbidden
)
end
...
...
@@ -154,8 +156,8 @@ RSpec.describe API::Files do
context
'when PATs are used'
do
it_behaves_like
'repository files'
do
let
(
:token
)
{
create
(
:personal_access_token
,
scopes:
[
'read_repository'
],
user:
user
)
}
let
(
:current_user
)
{
user
}
let
(
:
api_user
)
{
{
personal_access_token:
token
}
}
let
(
:current_user
)
{
nil
}
let
(
:
options
)
{
{
personal_access_token:
token
}
}
end
end
...
...
@@ -174,21 +176,21 @@ RSpec.describe API::Files do
describe
"GET /projects/:id/repository/files/:file_path"
do
shared_examples_for
'repository files'
do
let
(
:
api_user
)
{
current_user
}
let
(
:
options
)
{
{}
}
it
'returns 400 for invalid file path'
do
get
api
(
route
(
rouge_file_path
),
api_user
),
params:
params
get
api
(
route
(
rouge_file_path
),
api_user
,
**
options
),
params:
params
expect
(
response
).
to
have_gitlab_http_status
(
:bad_request
)
expect
(
json_response
[
'error'
]).
to
eq
(
invalid_file_message
)
end
it_behaves_like
'when path is absolute'
do
subject
{
get
api
(
route
(
absolute_path
),
api_user
),
params:
params
}
subject
{
get
api
(
route
(
absolute_path
),
api_user
,
**
options
),
params:
params
}
end
it
'returns file attributes as json'
do
get
api
(
route
(
file_path
),
api_user
),
params:
params
get
api
(
route
(
file_path
),
api_user
,
**
options
),
params:
params
expect
(
response
).
to
have_gitlab_http_status
(
:ok
)
expect
(
json_response
[
'file_path'
]).
to
eq
(
CGI
.
unescape
(
file_path
))
...
...
@@ -201,10 +203,10 @@ RSpec.describe API::Files do
it
'returns json when file has txt extension'
do
file_path
=
"bar%2Fbranch-test.txt"
get
api
(
route
(
file_path
),
api_user
),
params:
params
get
api
(
route
(
file_path
),
api_user
,
**
options
),
params:
params
expect
(
response
).
to
have_gitlab_http_status
(
:ok
)
expect
(
response
.
content
_type
).
to
eq
(
'application/json'
)
expect
(
response
.
media
_type
).
to
eq
(
'application/json'
)
end
context
'with filename with pathspec characters'
do
...
...
@@ -218,7 +220,7 @@ RSpec.describe API::Files do
it
'returns JSON wth commit SHA'
do
params
[
:ref
]
=
'master'
get
api
(
route
(
file_path
),
api_user
),
params:
params
get
api
(
route
(
file_path
),
api_user
,
**
options
),
params:
params
expect
(
response
).
to
have_gitlab_http_status
(
:ok
)
expect
(
json_response
[
'file_path'
]).
to
eq
(
file_path
)
...
...
@@ -232,7 +234,7 @@ RSpec.describe API::Files do
file_path
=
"files%2Fjs%2Fcommit%2Ejs%2Ecoffee"
params
[
:ref
]
=
"6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9"
get
api
(
route
(
file_path
),
api_user
),
params:
params
get
api
(
route
(
file_path
),
api_user
,
**
options
),
params:
params
expect
(
response
).
to
have_gitlab_http_status
(
:ok
)
expect
(
json_response
[
'file_name'
]).
to
eq
(
'commit.js.coffee'
)
...
...
@@ -244,7 +246,7 @@ RSpec.describe API::Files do
url
=
route
(
file_path
)
+
"/raw"
expect
(
Gitlab
::
Workhorse
).
to
receive
(
:send_git_blob
)
get
api
(
url
,
api_user
),
params:
params
get
api
(
url
,
api_user
,
**
options
),
params:
params
expect
(
response
).
to
have_gitlab_http_status
(
:ok
)
expect
(
headers
[
Gitlab
::
Workhorse
::
DETECT_HEADER
]).
to
eq
"true"
...
...
@@ -253,7 +255,7 @@ RSpec.describe API::Files do
it
'returns blame file info'
do
url
=
route
(
file_path
)
+
'/blame'
get
api
(
url
,
api_user
),
params:
params
get
api
(
url
,
api_user
,
**
options
),
params:
params
expect
(
response
).
to
have_gitlab_http_status
(
:ok
)
end
...
...
@@ -261,14 +263,14 @@ RSpec.describe API::Files do
it
'sets inline content disposition by default'
do
url
=
route
(
file_path
)
+
"/raw"
get
api
(
url
,
api_user
),
params:
params
get
api
(
url
,
api_user
,
**
options
),
params:
params
expect
(
headers
[
'Content-Disposition'
]).
to
eq
(
%q(inline; filename="popen.rb"; filename*=UTF-8''popen.rb)
)
end
context
'when mandatory params are not given'
do
it_behaves_like
'400 response'
do
let
(
:request
)
{
get
api
(
route
(
"any%2Ffile"
),
current_user
)
}
let
(
:request
)
{
get
api
(
route
(
"any%2Ffile"
),
current_user
,
**
options
)
}
end
end
...
...
@@ -276,7 +278,7 @@ RSpec.describe API::Files do
let
(
:params
)
{
{
ref:
'master'
}
}
it_behaves_like
'404 response'
do
let
(
:request
)
{
get
api
(
route
(
'app%2Fmodels%2Fapplication%2Erb'
),
api_user
),
params:
params
}
let
(
:request
)
{
get
api
(
route
(
'app%2Fmodels%2Fapplication%2Erb'
),
api_user
,
**
options
),
params:
params
}
let
(
:message
)
{
'404 File Not Found'
}
end
end
...
...
@@ -285,7 +287,7 @@ RSpec.describe API::Files do
include_context
'disabled repository'
it_behaves_like
'403 response'
do
let
(
:request
)
{
get
api
(
route
(
file_path
),
api_user
),
params:
params
}
let
(
:request
)
{
get
api
(
route
(
file_path
),
api_user
,
**
options
),
params:
params
}
end
end
end
...
...
@@ -294,6 +296,7 @@ RSpec.describe API::Files do
it_behaves_like
'repository files'
do
let
(
:project
)
{
create
(
:project
,
:public
,
:repository
)
}
let
(
:current_user
)
{
nil
}
let
(
:api_user
)
{
nil
}
end
end
...
...
@@ -301,7 +304,8 @@ RSpec.describe API::Files do
it_behaves_like
'repository files'
do
let
(
:token
)
{
create
(
:personal_access_token
,
scopes:
[
'read_repository'
],
user:
user
)
}
let
(
:current_user
)
{
user
}
let
(
:api_user
)
{
{
personal_access_token:
token
}
}
let
(
:api_user
)
{
nil
}
let
(
:options
)
{
{
personal_access_token:
token
}
}
end
end
...
...
@@ -315,6 +319,7 @@ RSpec.describe API::Files do
context
'when authenticated'
,
'as a developer'
do
it_behaves_like
'repository files'
do
let
(
:current_user
)
{
user
}
let
(
:api_user
)
{
user
}
end
end
...
...
@@ -687,7 +692,7 @@ RSpec.describe API::Files do
post
api
(
route
(
"new_file_with_author%2Etxt"
),
user
),
params:
params
expect
(
response
).
to
have_gitlab_http_status
(
:created
)
expect
(
response
.
content
_type
).
to
eq
(
'application/json'
)
expect
(
response
.
media
_type
).
to
eq
(
'application/json'
)
last_commit
=
project
.
repository
.
commit
.
raw
expect
(
last_commit
.
author_email
).
to
eq
(
author_email
)
expect
(
last_commit
.
author_name
).
to
eq
(
author_name
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment