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
Léo-Paul Géneau
gitlab-ce
Commits
b7f5205a
Commit
b7f5205a
authored
Feb 13, 2018
by
Semyon Pupkov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Move spinach profile tests to RSpec
https://gitlab.com/gitlab-org/gitlab-ce/issues/23036
parent
522a79ad
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
231 additions
and
330 deletions
+231
-330
features/profile/profile.feature
features/profile/profile.feature
+0
-85
features/steps/profile/profile.rb
features/steps/profile/profile.rb
+0
-226
spec/features/profiles/password_spec.rb
spec/features/profiles/password_spec.rb
+69
-7
spec/features/profiles/user_edit_profile_spec.rb
spec/features/profiles/user_edit_profile_spec.rb
+58
-0
spec/features/profiles/user_manages_applications_spec.rb
spec/features/profiles/user_manages_applications_spec.rb
+39
-0
spec/features/profiles/user_visits_profile_authentication_log_spec.rb
...s/profiles/user_visits_profile_authentication_log_spec.rb
+20
-5
spec/features/profiles/user_visits_profile_spec.rb
spec/features/profiles/user_visits_profile_spec.rb
+45
-7
No files found.
features/profile/profile.feature
deleted
100644 → 0
View file @
522a79ad
@profile
Feature
:
Profile
Background
:
Given
I sign in as a user
Scenario
:
I
look at my profile
Given
I visit profile page
Then
I should see my profile info
@javascript
Scenario
:
I
can see groups I belong to
Given
I have group with projects
When
I visit profile page
And
I click on my profile picture
Then
I should see my user page
And
I should see groups I belong to
Scenario
:
I
edit profile
Given
I visit profile page
Then
I change my profile info
And
I should see new profile info
Scenario
:
I
change my password without old one
Given
I visit profile password page
When
I try change my password w/o old one
Then
I should see a missing password error message
And
I should be redirected to password page
Scenario
:
I
change my password
Given
I visit profile password page
Then
I change my password
And
I should be redirected to sign in page
Scenario
:
I
edit my avatar
Given
I visit profile page
Then
I change my avatar
And
I should see new avatar
And
I should see the
"Remove avatar"
button
And
I should see the gravatar host link
Scenario
:
I
remove my avatar
Given
I visit profile page
And
I have an avatar
When
I remove my avatar
Then
I should see my gravatar
And
I should not see the
"Remove avatar"
button
And
I should see the gravatar host link
Scenario
:
My password is expired
Given
my password is expired
And
I am not an ldap user
Given
I visit profile password page
Then
I redirected to expired password page
And
I submit new password
And
I redirected to sign in page
Scenario
:
I
unsuccessfully change my password
Given
I visit profile password page
When
I unsuccessfully change my password
Then
I should see a password error message
Scenario
:
I
visit history tab
Given
I logout
And
I sign in via the UI
And
I have activity
When
I visit Authentication log page
Then
I should see my activity
Scenario
:
I
visit my user page
When
I visit profile page
And
I click on my profile picture
Then
I should see my user page
Scenario
:
I
can manage application
Given
I visit profile applications page
Then
I should see application form
Then
I fill application form out and submit
And
I see application
Then
I click edit
And
I see edit application form
Then
I change name of application and submit
And
I see that application was changed
Then
I visit profile applications page
And
I click to remove application
Then
I see that application is removed
features/steps/profile/profile.rb
deleted
100644 → 0
View file @
522a79ad
class
Spinach::Features::Profile
<
Spinach
::
FeatureSteps
include
SharedAuthentication
include
SharedPaths
step
'I should see my profile info'
do
expect
(
page
).
to
have_content
"This information will appear on your profile"
end
step
'I change my profile info'
do
fill_in
'user_skype'
,
with:
'testskype'
fill_in
'user_linkedin'
,
with:
'testlinkedin'
fill_in
'user_twitter'
,
with:
'testtwitter'
fill_in
'user_website_url'
,
with:
'testurl'
fill_in
'user_location'
,
with:
'Ukraine'
fill_in
'user_bio'
,
with:
'I <3 GitLab'
fill_in
'user_organization'
,
with:
'GitLab'
click_button
'Update profile settings'
@user
.
reload
end
step
'I should see new profile info'
do
expect
(
@user
.
skype
).
to
eq
'testskype'
expect
(
@user
.
linkedin
).
to
eq
'testlinkedin'
expect
(
@user
.
twitter
).
to
eq
'testtwitter'
expect
(
@user
.
website_url
).
to
eq
'testurl'
expect
(
@user
.
bio
).
to
eq
'I <3 GitLab'
expect
(
@user
.
organization
).
to
eq
'GitLab'
expect
(
find
(
'#user_location'
).
value
).
to
eq
'Ukraine'
end
step
'I change my avatar'
do
attach_file
(
:user_avatar
,
File
.
join
(
Rails
.
root
,
'spec'
,
'fixtures'
,
'banana_sample.gif'
))
click_button
"Update profile settings"
@user
.
reload
end
step
'I should see new avatar'
do
expect
(
@user
.
avatar
).
to
be_instance_of
AvatarUploader
expect
(
@user
.
avatar
.
url
).
to
eq
"/uploads/-/system/user/avatar/
#{
@user
.
id
}
/banana_sample.gif"
end
step
'I should see the "Remove avatar" button'
do
expect
(
page
).
to
have_link
(
"Remove avatar"
)
end
step
'I have an avatar'
do
attach_file
(
:user_avatar
,
File
.
join
(
Rails
.
root
,
'spec'
,
'fixtures'
,
'banana_sample.gif'
))
click_button
"Update profile settings"
@user
.
reload
end
step
'I remove my avatar'
do
click_link
"Remove avatar"
@user
.
reload
end
step
'I should see my gravatar'
do
expect
(
@user
.
avatar?
).
to
eq
false
end
step
'I should not see the "Remove avatar" button'
do
expect
(
page
).
not_to
have_link
(
"Remove avatar"
)
end
step
'I should see the gravatar host link'
do
expect
(
page
).
to
have_link
(
"gravatar.com"
)
end
step
'I try change my password w/o old one'
do
page
.
within
'.update-password'
do
fill_in
"user_password"
,
with:
"22233344"
fill_in
"user_password_confirmation"
,
with:
"22233344"
click_button
"Save password"
end
end
step
'I change my password'
do
page
.
within
'.update-password'
do
fill_in
"user_current_password"
,
with:
"12345678"
fill_in
"user_password"
,
with:
"22233344"
fill_in
"user_password_confirmation"
,
with:
"22233344"
click_button
"Save password"
end
end
step
'I unsuccessfully change my password'
do
page
.
within
'.update-password'
do
fill_in
"user_current_password"
,
with:
"12345678"
fill_in
"user_password"
,
with:
"password"
fill_in
"user_password_confirmation"
,
with:
"confirmation"
click_button
"Save password"
end
end
step
"I should see a missing password error message"
do
page
.
within
".flash-container"
do
expect
(
page
).
to
have_content
"You must provide a valid current password"
end
end
step
"I should see a password error message"
do
page
.
within
'.alert-danger'
do
expect
(
page
).
to
have_content
"Password confirmation doesn't match"
end
end
step
'I have activity'
do
create
(
:closed_issue_event
,
author:
current_user
)
end
step
'I should see my activity'
do
expect
(
page
).
to
have_content
"Signed in with standard authentication"
end
step
'my password is expired'
do
current_user
.
update_attributes
(
password_expires_at:
Time
.
now
-
1
.
hour
)
end
step
"I am not an ldap user"
do
current_user
.
identities
.
delete
expect
(
current_user
.
ldap_user?
).
to
eq
false
end
step
'I redirected to expired password page'
do
expect
(
current_path
).
to
eq
new_profile_password_path
end
step
'I submit new password'
do
fill_in
:user_current_password
,
with:
'12345678'
fill_in
:user_password
,
with:
'12345678'
fill_in
:user_password_confirmation
,
with:
'12345678'
click_button
"Set new password"
end
step
'I redirected to sign in page'
do
expect
(
current_path
).
to
eq
new_user_session_path
end
step
'I should be redirected to password page'
do
expect
(
current_path
).
to
eq
edit_profile_password_path
end
step
'I should be redirected to account page'
do
expect
(
current_path
).
to
eq
profile_account_path
end
step
'I click on my profile picture'
do
find
(
:css
,
'.header-user-dropdown-toggle'
).
click
page
.
within
".header-user"
do
click_link
"Profile"
end
end
step
'I should see my user page'
do
page
.
within
".cover-block"
do
expect
(
page
).
to
have_content
current_user
.
name
expect
(
page
).
to
have_content
current_user
.
username
end
end
step
'I have group with projects'
do
@group
=
create
(
:group
)
@group
.
add_owner
(
current_user
)
@project
=
create
(
:project
,
:repository
,
namespace:
@group
)
@event
=
create
(
:closed_issue_event
,
project:
@project
)
@project
.
add_master
(
current_user
)
end
step
'I should see groups I belong to'
do
page
.
within
".content"
do
click_link
"Groups"
end
page
.
within
"#groups"
do
expect
(
page
).
to
have_content
@group
.
name
end
end
step
'I should see application form'
do
expect
(
page
).
to
have_content
"Add new application"
end
step
'I fill application form out and submit'
do
fill_in
:doorkeeper_application_name
,
with:
'test'
fill_in
:doorkeeper_application_redirect_uri
,
with:
'https://test.com'
click_on
"Save application"
end
step
'I see application'
do
expect
(
page
).
to
have_content
"Application: test"
expect
(
page
).
to
have_content
"Application Id"
expect
(
page
).
to
have_content
"Secret"
end
step
'I click edit'
do
click_on
"Edit"
end
step
'I see edit application form'
do
expect
(
page
).
to
have_content
"Edit application"
end
step
'I change name of application and submit'
do
expect
(
page
).
to
have_content
"Edit application"
fill_in
:doorkeeper_application_name
,
with:
'test_changed'
click_on
"Save application"
end
step
'I see that application was changed'
do
expect
(
page
).
to
have_content
"test_changed"
expect
(
page
).
to
have_content
"Application Id"
expect
(
page
).
to
have_content
"Secret"
end
step
'I click to remove application'
do
page
.
within
'.oauth-applications'
do
click_on
"Destroy"
end
end
step
"I see that application is removed"
do
expect
(
page
.
find
(
".oauth-applications"
)).
not_to
have_content
"test_changed"
end
end
spec/features/profiles/password_spec.rb
View file @
b7f5205a
require
'spec_helper'
require
'spec_helper'
describe
'Profile > Password'
do
describe
'Profile > Password'
do
context
'Password authentication enabled'
do
let
(
:user
)
{
create
(
:user
)
}
let
(
:user
)
{
create
(
:user
,
password_automatically_set:
true
)
}
before
do
sign_in
(
user
)
visit
edit_profile_password_path
end
def
fill_passwords
(
password
,
confirmation
)
def
fill_passwords
(
password
,
confirmation
)
fill_in
'New password'
,
with:
password
fill_in
'New password'
,
with:
password
...
@@ -16,6 +10,14 @@ describe 'Profile > Password' do
...
@@ -16,6 +10,14 @@ describe 'Profile > Password' do
click_button
'Save password'
click_button
'Save password'
end
end
context
'Password authentication enabled'
do
let
(
:user
)
{
create
(
:user
,
password_automatically_set:
true
)
}
before
do
sign_in
(
user
)
visit
edit_profile_password_path
end
context
'User with password automatically set'
do
context
'User with password automatically set'
do
describe
'User puts different passwords in the field and in the confirmation'
do
describe
'User puts different passwords in the field and in the confirmation'
do
it
'shows an error message'
do
it
'shows an error message'
do
...
@@ -73,4 +75,64 @@ describe 'Profile > Password' do
...
@@ -73,4 +75,64 @@ describe 'Profile > Password' do
end
end
end
end
end
end
context
'Change passowrd'
do
before
do
sign_in
(
user
)
visit
(
edit_profile_password_path
)
end
it
'does not change user passowrd without old one'
do
page
.
within
'.update-password'
do
fill_passwords
(
'22233344'
,
'22233344'
)
end
page
.
within
'.flash-container'
do
expect
(
page
).
to
have_content
'You must provide a valid current password'
end
end
it
'does not change password with invalid old password'
do
page
.
within
'.update-password'
do
fill_in
'user_current_password'
,
with:
'invalid'
fill_passwords
(
'password'
,
'confirmation'
)
end
page
.
within
'.flash-container'
do
expect
(
page
).
to
have_content
'You must provide a valid current password'
end
end
it
'changes user password'
do
page
.
within
'.update-password'
do
fill_in
"user_current_password"
,
with:
user
.
password
fill_passwords
(
'22233344'
,
'22233344'
)
end
expect
(
current_path
).
to
eq
new_user_session_path
end
end
context
'when password is expired'
do
before
do
sign_in
(
user
)
user
.
update_attributes
(
password_expires_at:
1
.
hour
.
ago
)
user
.
identities
.
delete
expect
(
user
.
ldap_user?
).
to
eq
false
end
it
'needs change user password'
do
visit
edit_profile_password_path
expect
(
current_path
).
to
eq
new_profile_password_path
fill_in
:user_current_password
,
with:
user
.
password
fill_in
:user_password
,
with:
'12345678'
fill_in
:user_password_confirmation
,
with:
'12345678'
click_button
'Set new password'
expect
(
current_path
).
to
eq
new_user_session_path
end
end
end
end
spec/features/profiles/user_edit_profile_spec.rb
0 → 100644
View file @
b7f5205a
require
'spec_helper'
describe
'User edit profile'
do
let
(
:user
)
{
create
(
:user
)
}
before
do
sign_in
(
user
)
visit
(
profile_path
)
end
it
'changes user profile'
do
fill_in
'user_skype'
,
with:
'testskype'
fill_in
'user_linkedin'
,
with:
'testlinkedin'
fill_in
'user_twitter'
,
with:
'testtwitter'
fill_in
'user_website_url'
,
with:
'testurl'
fill_in
'user_location'
,
with:
'Ukraine'
fill_in
'user_bio'
,
with:
'I <3 GitLab'
fill_in
'user_organization'
,
with:
'GitLab'
click_button
'Update profile settings'
expect
(
user
.
reload
).
to
have_attributes
(
skype:
'testskype'
,
linkedin:
'testlinkedin'
,
twitter:
'testtwitter'
,
website_url:
'testurl'
,
bio:
'I <3 GitLab'
,
organization:
'GitLab'
)
expect
(
find
(
'#user_location'
).
value
).
to
eq
'Ukraine'
expect
(
page
).
to
have_content
(
'Profile was successfully updated'
)
end
context
'user avatar'
do
before
do
attach_file
(
:user_avatar
,
Rails
.
root
.
join
(
'spec'
,
'fixtures'
,
'banana_sample.gif'
))
click_button
'Update profile settings'
end
it
'changes user avatar'
do
expect
(
page
).
to
have_link
(
'Remove avatar'
)
user
.
reload
expect
(
user
.
avatar
).
to
be_instance_of
AvatarUploader
expect
(
user
.
avatar
.
url
).
to
eq
"/uploads/-/system/user/avatar/
#{
user
.
id
}
/banana_sample.gif"
end
it
'removes user avatar'
do
click_link
'Remove avatar'
user
.
reload
expect
(
user
.
avatar?
).
to
eq
false
expect
(
page
).
not_to
have_link
(
'Remove avatar'
)
expect
(
page
).
to
have_link
(
'gravatar.com'
)
end
end
end
spec/features/profiles/user_manages_applications_spec.rb
0 → 100644
View file @
b7f5205a
require
'spec_helper'
describe
'User manages applications'
do
let
(
:user
)
{
create
(
:user
)
}
before
do
sign_in
(
user
)
visit
applications_profile_path
end
it
'manages applications'
do
expect
(
page
).
to
have_content
'Add new application'
fill_in
:doorkeeper_application_name
,
with:
'test'
fill_in
:doorkeeper_application_redirect_uri
,
with:
'https://test.com'
click_on
'Save application'
expect
(
page
).
to
have_content
'Application: test'
expect
(
page
).
to
have_content
'Application Id'
expect
(
page
).
to
have_content
'Secret'
click_on
'Edit'
expect
(
page
).
to
have_content
'Edit application'
fill_in
:doorkeeper_application_name
,
with:
'test_changed'
click_on
'Save application'
expect
(
page
).
to
have_content
'test_changed'
expect
(
page
).
to
have_content
'Application Id'
expect
(
page
).
to
have_content
'Secret'
visit
applications_profile_path
page
.
within
'.oauth-applications'
do
click_on
'Destroy'
end
expect
(
page
.
find
(
'.oauth-applications'
)).
not_to
have_content
'test_changed'
end
end
spec/features/profiles/user_visits_profile_authentication_log_spec.rb
View file @
b7f5205a
...
@@ -3,13 +3,28 @@ require 'spec_helper'
...
@@ -3,13 +3,28 @@ require 'spec_helper'
describe
'User visits the authentication log'
do
describe
'User visits the authentication log'
do
let
(
:user
)
{
create
(
:user
)
}
let
(
:user
)
{
create
(
:user
)
}
context
'when user signed in'
do
before
do
before
do
sign_in
(
user
)
sign_in
(
user
)
visit
(
audit_log_profile_path
)
end
end
it
'shows correct menu item'
do
it
'shows correct menu item'
do
visit
(
audit_log_profile_path
)
expect
(
page
).
to
have_active_navigation
(
'Authentication log'
)
expect
(
page
).
to
have_active_navigation
(
'Authentication log'
)
end
end
end
context
'when user has activity'
do
before
do
create
(
:closed_issue_event
,
author:
user
)
gitlab_sign_in
(
user
)
end
it
'shows user activity'
do
visit
(
audit_log_profile_path
)
expect
(
page
).
to
have_content
'Signed in with standard authentication'
end
end
end
end
spec/features/profiles/user_visits_profile_spec.rb
View file @
b7f5205a
...
@@ -5,20 +5,58 @@ describe 'User visits their profile' do
...
@@ -5,20 +5,58 @@ describe 'User visits their profile' do
before
do
before
do
sign_in
(
user
)
sign_in
(
user
)
visit
(
profile_path
)
end
end
it
'shows correct menu item'
do
it
'shows correct menu item'
do
visit
(
profile_path
)
expect
(
page
).
to
have_active_navigation
(
'Profile'
)
expect
(
page
).
to
have_active_navigation
(
'Profile'
)
end
end
describe
'profile settings'
,
:js
do
it
'shows profile info'
do
it
'saves updates'
do
visit
(
profile_path
)
fill_in
'user_bio'
,
with:
'bio'
click_button
'Update profile settings'
expect
(
page
).
to
have_content
"This information will appear on your profile"
end
context
'when user has groups'
do
let
(
:group
)
do
create
:group
do
|
group
|
group
.
add_owner
(
user
)
end
end
let!
(
:project
)
do
create
(
:project
,
:repository
,
namespace:
group
)
do
|
project
|
create
(
:closed_issue_event
,
project:
project
)
project
.
add_master
(
user
)
end
end
def
click_on_profile_picture
find
(
:css
,
'.header-user-dropdown-toggle'
).
click
page
.
within
".header-user"
do
click_link
"Profile"
end
end
it
'shows user groups'
,
:js
do
visit
(
profile_path
)
click_on_profile_picture
page
.
within
".cover-block"
do
expect
(
page
).
to
have_content
user
.
name
expect
(
page
).
to
have_content
user
.
username
end
expect
(
page
).
to
have_content
(
'Profile was successfully updated'
)
page
.
within
".content"
do
click_link
"Groups"
end
page
.
within
"#groups"
do
expect
(
page
).
to
have_content
group
.
name
end
end
end
end
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