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
961e86bf
Commit
961e86bf
authored
Aug 17, 2016
by
Timothy Andrew
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add feature specs to cover naming and deleting U2F devices.
parent
16c44a5d
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
32 additions
and
9 deletions
+32
-9
spec/features/u2f_spec.rb
spec/features/u2f_spec.rb
+28
-8
spec/support/fake_u2f_device.rb
spec/support/fake_u2f_device.rb
+4
-1
No files found.
spec/features/u2f_spec.rb
View file @
961e86bf
...
@@ -12,10 +12,12 @@ feature 'Using U2F (Universal 2nd Factor) Devices for Authentication', feature:
...
@@ -12,10 +12,12 @@ feature 'Using U2F (Universal 2nd Factor) Devices for Authentication', feature:
end
end
def
register_u2f_device
(
u2f_device
=
nil
)
def
register_u2f_device
(
u2f_device
=
nil
)
u2f_device
||=
FakeU2fDevice
.
new
(
page
)
name
=
FFaker
::
Name
.
first_name
u2f_device
||=
FakeU2fDevice
.
new
(
page
,
name
)
u2f_device
.
respond_to_u2f_registration
u2f_device
.
respond_to_u2f_registration
click_on
'Setup New U2F Device'
click_on
'Setup New U2F Device'
expect
(
page
).
to
have_content
(
'Your device was successfully set up'
)
expect
(
page
).
to
have_content
(
'Your device was successfully set up'
)
fill_in
"Pick a name"
,
with:
name
click_on
'Register U2F Device'
click_on
'Register U2F Device'
u2f_device
u2f_device
end
end
...
@@ -40,13 +42,14 @@ feature 'Using U2F (Universal 2nd Factor) Devices for Authentication', feature:
...
@@ -40,13 +42,14 @@ feature 'Using U2F (Universal 2nd Factor) Devices for Authentication', feature:
end
end
describe
'when 2FA via OTP is enabled'
do
describe
'when 2FA via OTP is enabled'
do
it
'allows registering a new device'
do
it
'allows registering a new device
with a name
'
do
visit
profile_account_path
visit
profile_account_path
manage_two_factor_authentication
manage_two_factor_authentication
expect
(
page
.
body
).
to
match
(
"You've already enabled two-factor authentication using mobile"
)
expect
(
page
.
body
).
to
match
(
"You've already enabled two-factor authentication using mobile"
)
register_u2f_device
u2f_device
=
register_u2f_device
expect
(
page
.
body
).
to
match
(
u2f_device
.
name
)
expect
(
page
.
body
).
to
match
(
'Your U2F device was registered'
)
expect
(
page
.
body
).
to
match
(
'Your U2F device was registered'
)
end
end
...
@@ -55,15 +58,31 @@ feature 'Using U2F (Universal 2nd Factor) Devices for Authentication', feature:
...
@@ -55,15 +58,31 @@ feature 'Using U2F (Universal 2nd Factor) Devices for Authentication', feature:
# First device
# First device
manage_two_factor_authentication
manage_two_factor_authentication
register_u2f_device
first_device
=
register_u2f_device
expect
(
page
.
body
).
to
match
(
'Your U2F device was registered'
)
expect
(
page
.
body
).
to
match
(
'Your U2F device was registered'
)
# Second device
# Second device
manage_two_factor_authentication
second_device
=
register_u2f_device
register_u2f_device
expect
(
page
.
body
).
to
match
(
'Your U2F device was registered'
)
expect
(
page
.
body
).
to
match
(
'Your U2F device was registered'
)
expect
(
page
.
body
).
to
match
(
first_device
.
name
)
expect
(
page
.
body
).
to
match
(
second_device
.
name
)
expect
(
U2fRegistration
.
count
).
to
eq
(
2
)
end
it
'allows deleting a device'
do
visit
profile_account_path
manage_two_factor_authentication
manage_two_factor_authentication
expect
(
page
.
body
).
to
match
(
'You have 2 U2F devices registered'
)
expect
(
page
.
body
).
to
match
(
"You've already enabled two-factor authentication using mobile"
)
first_u2f_device
=
register_u2f_device
second_u2f_device
=
register_u2f_device
click_on
"Delete"
,
match: :first
expect
(
page
.
body
).
to
match
(
'Successfully deleted'
)
expect
(
page
.
body
).
not_to
match
(
first_u2f_device
.
name
)
expect
(
page
.
body
).
to
match
(
second_u2f_device
.
name
)
end
end
end
end
...
@@ -208,7 +227,7 @@ feature 'Using U2F (Universal 2nd Factor) Devices for Authentication', feature:
...
@@ -208,7 +227,7 @@ feature 'Using U2F (Universal 2nd Factor) Devices for Authentication', feature:
describe
"when a given U2F device has not been registered"
do
describe
"when a given U2F device has not been registered"
do
it
"does not allow logging in with that particular device"
do
it
"does not allow logging in with that particular device"
do
unregistered_device
=
FakeU2fDevice
.
new
(
page
)
unregistered_device
=
FakeU2fDevice
.
new
(
page
,
FFaker
::
Name
.
first_name
)
login_as
(
user
)
login_as
(
user
)
unregistered_device
.
respond_to_u2f_authentication
unregistered_device
.
respond_to_u2f_authentication
click_on
"Login Via U2F Device"
click_on
"Login Via U2F Device"
...
@@ -262,6 +281,7 @@ feature 'Using U2F (Universal 2nd Factor) Devices for Authentication', feature:
...
@@ -262,6 +281,7 @@ feature 'Using U2F (Universal 2nd Factor) Devices for Authentication', feature:
end
end
it
"deletes u2f registrations"
do
it
"deletes u2f registrations"
do
visit
profile_account_path
expect
{
click_on
"Disable"
}.
to
change
{
U2fRegistration
.
count
}.
by
(
-
1
)
expect
{
click_on
"Disable"
}.
to
change
{
U2fRegistration
.
count
}.
by
(
-
1
)
end
end
end
end
...
...
spec/support/fake_u2f_device.rb
View file @
961e86bf
class
FakeU2fDevice
class
FakeU2fDevice
def
initialize
(
page
)
attr_reader
:name
def
initialize
(
page
,
name
)
@page
=
page
@page
=
page
@name
=
name
end
end
def
respond_to_u2f_registration
def
respond_to_u2f_registration
...
...
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