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
0
Merge Requests
0
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
Boxiang Sun
gitlab-ce
Commits
335736f6
Commit
335736f6
authored
Mar 10, 2018
by
Semyon Pupkov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Replace project redirects spinach tests with RSpec analog
https://gitlab.com/gitlab-org/gitlab-ce/issues/23036
parent
afd2d381
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
74 additions
and
105 deletions
+74
-105
features/project/redirects.feature
features/project/redirects.feature
+0
-38
features/steps/project/redirects.rb
features/steps/project/redirects.rb
+0
-67
spec/features/projects/redirects_spec.rb
spec/features/projects/redirects_spec.rb
+74
-0
No files found.
features/project/redirects.feature
deleted
100644 → 0
View file @
afd2d381
Feature
:
Project Redirects
Background
:
Given
public project
"Community"
And
private project
"Enterprise"
Scenario
:
I
visit public project page
When
I visit project
"Community"
page
Then
I should see project
"Community"
home page
Scenario
:
I
visit private project page
When
I visit project
"Enterprise"
page
Then
I should be redirected to sign in page
Scenario
:
I
visit a non-existent project page
When
I visit project
"CommunityDoesNotExist"
page
Then
I should be redirected to sign in page
Scenario
:
I
visit a non-existent project page as user
Given
I sign in as a user
When
I visit project
"CommunityDoesNotExist"
page
Then
page status code should be 404
Scenario
:
I
visit unauthorized project page as user
Given
I sign in as a user
When
I visit project
"Enterprise"
page
Then
page status code should be 404
Scenario
:
I
visit a public project without signing in
When
I visit project
"Community"
page
And
I should see project
"Community"
home page
And
I click on
"Sign In"
And
Authenticate
Then
I should be redirected to
"Community"
page
Scenario
:
I
visit private project page without signing in
When
I visit project
"Enterprise"
page
And
I get redirected to signin page where I sign in
Then
I should be redirected to
"Enterprise"
page
features/steps/project/redirects.rb
deleted
100644 → 0
View file @
afd2d381
class
Spinach::Features::ProjectRedirects
<
Spinach
::
FeatureSteps
include
SharedAuthentication
include
SharedPaths
include
SharedProject
step
'public project "Community"'
do
create
(
:project
,
:public
,
name:
'Community'
)
end
step
'private project "Enterprise"'
do
create
(
:project
,
:private
,
name:
'Enterprise'
)
end
step
'I visit project "Community" page'
do
project
=
Project
.
find_by
(
name:
'Community'
)
visit
project_path
(
project
)
end
step
'I should see project "Community" home page'
do
Gitlab
.
config
.
gitlab
.
should_receive
(
:host
).
and_return
(
"www.example.com"
)
page
.
within
'.breadcrumbs .breadcrumb-item-text'
do
expect
(
page
).
to
have_content
'Community'
end
end
step
'I visit project "Enterprise" page'
do
project
=
Project
.
find_by
(
name:
'Enterprise'
)
visit
project_path
(
project
)
end
step
'I visit project "CommunityDoesNotExist" page'
do
project
=
Project
.
find_by
(
name:
'Community'
)
visit
project_path
(
project
)
+
'DoesNotExist'
end
step
'I click on "Sign In"'
do
first
(
:link
,
"Sign in"
).
click
end
step
'Authenticate'
do
admin
=
create
(
:admin
)
fill_in
"user_login"
,
with:
admin
.
email
fill_in
"user_password"
,
with:
admin
.
password
click_button
"Sign in"
Thread
.
current
[
:current_user
]
=
admin
end
step
'I should be redirected to "Community" page'
do
project
=
Project
.
find_by
(
name:
'Community'
)
expect
(
current_path
).
to
eq
"/
#{
project
.
full_path
}
"
expect
(
status_code
).
to
eq
200
end
step
'I get redirected to signin page where I sign in'
do
admin
=
create
(
:admin
)
fill_in
"user_login"
,
with:
admin
.
email
fill_in
"user_password"
,
with:
admin
.
password
click_button
"Sign in"
Thread
.
current
[
:current_user
]
=
admin
end
step
'I should be redirected to "Enterprise" page'
do
project
=
Project
.
find_by
(
name:
'Enterprise'
)
expect
(
current_path
).
to
eq
"/
#{
project
.
full_path
}
"
expect
(
status_code
).
to
eq
200
end
end
spec/features/projects/redirects_spec.rb
0 → 100644
View file @
335736f6
require
'spec_helper'
describe
'Project redirects'
do
let
(
:user
)
{
create
:user
}
let
(
:public_project
)
{
create
:project
,
:public
}
let
(
:private_project
)
{
create
:project
,
:private
}
before
do
allow
(
Gitlab
.
config
.
gitlab
).
to
receive
(
:host
).
and_return
(
'www.example.com'
)
end
it
'shows public project page'
do
visit
project_path
(
public_project
)
page
.
within
'.breadcrumbs .breadcrumb-item-text'
do
expect
(
page
).
to
have_content
(
public_project
.
name
)
end
end
it
'redirects to sign in page when project is private'
do
visit
project_path
(
private_project
)
expect
(
current_path
).
to
eq
(
new_user_session_path
)
end
it
'redirects to sign in page when project does not exist'
do
visit
project_path
(
build
(
:project
,
:public
))
expect
(
current_path
).
to
eq
(
new_user_session_path
)
end
it
'redirects to public project page after signing in'
do
visit
project_path
(
public_project
)
first
(
:link
,
'Sign in'
).
click
fill_in
'user_login'
,
with:
user
.
email
fill_in
'user_password'
,
with:
user
.
password
click_button
'Sign in'
expect
(
status_code
).
to
eq
(
200
)
expect
(
current_path
).
to
eq
(
"/
#{
public_project
.
full_path
}
"
)
end
it
'redirects to private project page after sign in'
do
visit
project_path
(
private_project
)
owner
=
private_project
.
owner
fill_in
'user_login'
,
with:
owner
.
email
fill_in
'user_password'
,
with:
owner
.
password
click_button
'Sign in'
expect
(
status_code
).
to
eq
(
200
)
expect
(
current_path
).
to
eq
(
"/
#{
private_project
.
full_path
}
"
)
end
context
'when signed in'
do
before
do
sign_in
(
user
)
end
it
'returns 404 status when project does not exist'
do
visit
project_path
(
build
(
:project
,
:public
))
expect
(
status_code
).
to
eq
(
404
)
end
it
'returns 404 when project is private'
do
visit
project_path
(
private_project
)
expect
(
status_code
).
to
eq
(
404
)
end
end
end
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