Refactor & Complete E2E tests for auth, nav and the password component

This commit is contained in:
Bubka 2023-08-04 14:06:23 +02:00
parent d00093a85a
commit afd020019b
45 changed files with 937 additions and 239 deletions

View File

@ -0,0 +1,15 @@
*** Settings ***
Documentation A page object to use in 404 page tests.
...
Library SeleniumLibrary
Resource ../common.resource
*** Variables ***
${404 PAGE URL} ${ROOT URL}/404
*** Keywords ***
404 Page Should Be Open
Location Should Be ${404 PAGE URL}
Go To 404 Page
Go To ${404 PAGE URL}

View File

@ -0,0 +1,15 @@
*** Settings ***
Documentation A page object to use in About page tests.
...
Library SeleniumLibrary
Resource ../common.resource
*** Variables ***
${ABOUT PAGE URL} ${ROOT URL}/about
*** Keywords ***
About Page Should Be Open
Location Should Be ${ABOUT PAGE URL}
Go To About Page
Go To ${ABOUT PAGE URL}

View File

@ -5,6 +5,7 @@ Library SeleniumLibrary
Resource ../common.resource
*** Variables ***
${EDIT ACCOUNT PAGE URL} ${ROOT URL}/account/1/edit
*** Keywords ***
Edit Page Should Be Open For Account

View File

@ -0,0 +1,15 @@
*** Settings ***
Documentation A page object to use in Accounts import tests.
...
Library SeleniumLibrary
Resource ../common.resource
*** Variables ***
${IMPORT ACCOUNTS PAGE URL} ${ROOT URL}/account/import
*** Keywords ***
Import Accounts Page Should Be Open
Location Should Be ${IMPORT ACCOUNTS PAGE URL}
Go To Import Accounts Page
Go Authenticated To ${IMPORT ACCOUNTS PAGE URL}

View File

@ -0,0 +1,15 @@
*** Settings ***
Documentation A page object to use in Accounts QR code tests.
...
Library SeleniumLibrary
Resource ../common.resource
*** Variables ***
${SHOW ACCOUNT QRCODE PAGE URL} ${ROOT URL}/account/1/qrcode
*** Keywords ***
Show Account Qrcode Page Should Be Open
Location Should Be ${SHOW ACCOUNT QRCODE PAGE URL}
Go To Show Account Qrcode Page
Go Authenticated To ${SHOW ACCOUNT QRCODE PAGE URL}

View File

@ -9,4 +9,7 @@ ${ACCOUNTS PAGE URL} ${ROOT URL}/accounts
*** Keywords ***
Accounts Page Should Be Open
Location Should Be ${ACCOUNTS PAGE URL}
Location Should Be ${ACCOUNTS PAGE URL}
Go To Accounts Page
Go Authenticated To ${ACCOUNTS PAGE URL}

View File

@ -0,0 +1,15 @@
*** Settings ***
Documentation A page object to use in autolock tests.
...
Library SeleniumLibrary
Resource ../common.resource
*** Variables ***
${AUTOLOCK PAGE URL} ${ROOT URL}/autolock
*** Keywords ***
Autolock Page Should Be Open
Location Should Be ${AUTOLOCK PAGE URL}
Go To Autolock Page
Go To ${AUTOLOCK PAGE URL}

View File

@ -0,0 +1,14 @@
*** Settings ***
Documentation A page object to use in Capture tests.
Library SeleniumLibrary
Resource ../common.resource
*** Variables ***
${CAPTURE PAGE URL} ${ROOT URL}/capture
*** Keywords ***
Capture Page Should Be Open
Location Should Be ${CAPTURE PAGE URL}
Go To Capture Page
Go Authenticated To ${CAPTURE PAGE URL}

View File

@ -0,0 +1,15 @@
*** Settings ***
Documentation A page object to use in About page tests.
...
Library SeleniumLibrary
Resource ../common.resource
*** Variables ***
${ERROR PAGE URL} ${ROOT URL}/error
*** Keywords ***
Error Page Should Be Open
Location Should Be ${ERROR PAGE URL}
Go To Error Page
Go To ${ERROR PAGE URL}

View File

@ -0,0 +1,14 @@
*** Settings ***
Documentation A page object to use in Group creation tests.
Library SeleniumLibrary
Resource ../common.resource
*** Variables ***
${CREATE GROUP PAGE URL} ${ROOT URL}/group/create
*** Keywords ***
Create Group Page Should Be Open
Location Should Be ${CREATE GROUP PAGE URL}
Go To Create Group Page
Go Authenticated To ${CREATE GROUP PAGE URL}

View File

@ -0,0 +1,16 @@
*** Settings ***
Documentation A page object to use in Group edition tests.
Library SeleniumLibrary
Resource ../common.resource
*** Variables ***
${EDIT GROUP PAGE URL} ${ROOT URL}/group/1/edit
*** Keywords ***
Edit Page Should Be Open For Group
[Arguments] ${group id}
Location Should Be ${ROOT URL}/group/${group id}/edit
Go To Edit Page For Group
[Arguments] ${group id}
Go Authenticated To ${ROOT URL}/group/${group id}/edit

View File

@ -0,0 +1,14 @@
*** Settings ***
Documentation A page object to use in Groups tests.
Library SeleniumLibrary
Resource ../common.resource
*** Variables ***
${GROUPS PAGE URL} ${ROOT URL}/groups
*** Keywords ***
Groups Page Should Be Open
Location Should Be ${GROUPS PAGE URL}
Go To Groups Page
Go Authenticated To ${GROUPS PAGE URL}

View File

@ -1,6 +1,5 @@
*** Settings ***
Documentation A page object to use in Login tests.
...
Library SeleniumLibrary
Resource ../common.resource
@ -12,11 +11,13 @@ ${PASSWORD FIELD} pwdPassword
${PASSWORD FIELD ERROR} valErrorPassword
${LEGACY FORM} frmLegacyLogin
${SIGN IN BUTTON} btnSignIn
${WEBAUTHN SIGN IN BUTTON} btnContinue
${CONTINUE WITH WEBAUTHN BUTTON} btnContinue
${SIGN IN WITH WEBAUTHN LINK} lnkSignWithWebauthn
${SIGN IN WITH LOGIN PASSWORD LINK} lnkSignWithLegacy
${RECOVER YOUR ACCOUNT LINK} lnkRecoverAccount
${RESET PASSWORD LINK} lnkResetPwd
${REGISTER LINK} lnkRegister
${PUNCHLINE TEXT} punchline
*** Keywords ***
@ -39,6 +40,12 @@ Submit Credentials To Legacy Form Login
Scroll To Bottom
Click Button ${SIGN IN BUTTON}
Submit Credentials To Webauthn Form Login
[Arguments] ${email}
Input Text ${EMAIL FIELD} ${email}
Scroll To Bottom
Click Button ${WEBAUTHN SIGN IN BUTTON}
Email Field Should Show An Error
Field Should Show An Error ${EMAIL FIELD ERROR}
@ -60,4 +67,4 @@ Webauthn Form Should Be Visible
Element Should Not Be Visible ${LEGACY FORM}
User Should Be Welcomed
Element Should Contain ${PUNCHLINE TEXT} ${USERNAME}
Element Should Be Visible ${PUNCHLINE TEXT}

View File

@ -0,0 +1,27 @@
*** Settings ***
Documentation A page object to use in password recovery tests.
...
Library SeleniumLibrary
Resource ../common.resource
*** Variables ***
${PASSWORD REQUEST PAGE URL} ${ROOT URL}/password/request
${EMAIL FIELD} emlEmail
${EMAIL FIELD ERROR} valErrorEmail
${SUBMIT BUTTON} btnSendResetPwd
${CANCEL BUTTON} btnCancel
*** Keywords ***
Password Request Page Should Be Open
Location Should Be ${PASSWORD REQUEST PAGE URL}
Go To Password Request Page
Go To ${PASSWORD REQUEST PAGE URL}
Submit Data To Password Request Form
[Arguments] ${email}
Input Text ${EMAIL FIELD} ${email}
Click Button ${SUBMIT BUTTON}
Email Field Should Show An Error
Field Should Show An Error ${EMAIL FIELD ERROR}

View File

@ -0,0 +1,39 @@
*** Settings ***
Documentation A page object to use in password recovery tests.
...
Library SeleniumLibrary
Resource ../common.resource
*** Variables ***
${PASSWORD RESET PAGE URL} ${ROOT URL}/user/password/reset
${EMAIL FIELD} emlEmail
${EMAIL FIELD ERROR} valErrorEmail
${PASSWORD FIELD} pwdPassword
${PASSWORD FIELD ERROR} valErrorPassword
${TOKEN FIELD ERROR} valErrorToken
${SUBMIT BUTTON} btnSubmit
${CONTINUE BUTTON} btnContinue
${CANCEL BUTTON} btnCancel
${TOGGLE PASSWORD VISIBILITY BUTTON} btnTogglePassword
*** Keywords ***
Password Reset Page Should Be Open
Location Should Be ${PASSWORD RESET PAGE URL}
Go To Password Reset Page
[Arguments] ${email} ${token}
Go To ${PASSWORD RESET PAGE URL}?email=${email}&token=${token}
Submit Data To Password Reset Form
[Arguments] ${new password}
Input Text ${PASSWORD FIELD} ${new password}
Click Button ${SUBMIT BUTTON}
Email Field Should Show An Error
Field Should Show An Error ${EMAIL FIELD ERROR}
New Password Field Should Show An Error
Field Should Show An Error ${PASSWORD FIELD ERROR}
Token Field Should Show An Error
Field Should Show An Error ${TOKEN FIELD ERROR}

View File

@ -12,11 +12,11 @@ ${EMAIL FIELD} emlEmail
${EMAIL FIELD ERROR} valErrorEmail
${PASSWORD FIELD} pwdPassword
${PASSWORD FIELD ERROR} valErrorPassword
${PASSWORD CONFIRMATION FIELD} pwdPassword_confirmation
${REGISTER BUTTON} btnRegister
${REGISTER NEW DEVICE BUTTON} btnRegisterNewDevice
${MAYBE LATER BUTTON} btnMaybeLater
${SIGN IN LINK} lnkSignIn
${TOGGLE PASSWORD VISIBILITY BUTTON} btnTogglePassword
*** Keywords ***
Go To Register Page
@ -26,11 +26,10 @@ Register Page Should Be Open
Location Should Be ${REGISTER PAGE URL}
Submit User Data To Registration Form
[Arguments] ${username} ${email} ${password} ${password confirmation}
[Arguments] ${username} ${email} ${password}
Input Text ${USERNAME FIELD} ${username}
Input Text ${EMAIL FIELD} ${email}
Input Text ${PASSWORD FIELD} ${password}
Input Text ${PASSWORD CONFIRMATION FIELD} ${password confirmation}
Scroll To Bottom
Click Button ${REGISTER BUTTON}
@ -44,4 +43,4 @@ Password Field Should Show An Error
Field Should Show An Error ${PASSWORD FIELD ERROR}
Postpone Webauthn Registration
Click Element ${MAYBE LATER BUTTON}
Click Link ${MAYBE LATER BUTTON}

View File

@ -23,3 +23,4 @@ Delete User Account
Input Text ${PASSWORD FIELD FOR DELETE} ${PASSWORD}
Click Button ${DELETE YOUR ACCOUNT BUTTON}
Handle Alert
Wait Until Location Is Not ${ROOT URL}/settings/account

View File

@ -0,0 +1,15 @@
*** Settings ***
Documentation A page object to use in OAuth settings tests.
...
Library SeleniumLibrary
Resource ../common.resource
*** Variables ***
${CREATE OAUTH PAT SETTINGS PAGE URL} ${ROOT URL}/settings/oauth/pat/create
*** Keywords ***
Create OAuth Pat Settings Page Should Be Open
Location Should Be ${CREATE OAUTH PAT SETTINGS PAGE URL}
Go To Create OAuth Pat Settings Page
Go Authenticated To ${CREATE OAUTH PAT SETTINGS PAGE URL}

View File

@ -0,0 +1,15 @@
*** Settings ***
Documentation A page object to use in WebAuthn rename device tests.
...
Library SeleniumLibrary
Resource ../common.resource
*** Variables ***
${RENAME WEBAUTHN DEVICE SETTINGS PAGE URL} ${ROOT URL}/settings/webauthn/1/edit
*** Keywords ***
Rename Webauthn Device Settings Page Should Be Open
Location Should Be ${RENAME WEBAUTHN DEVICE SETTINGS PAGE URL}
Go To Rename Webauthn Device Settings Page
Go Authenticated To ${RENAME WEBAUTHN DEVICE SETTINGS PAGE URL}

View File

@ -0,0 +1,27 @@
*** Settings ***
Documentation A page object to use in webauthn recovery tests.
...
Library SeleniumLibrary
Resource ../common.resource
*** Variables ***
${WEBAUTHN LOST PAGE URL} ${ROOT URL}/webauthn/lost
${EMAIL FIELD} emlEmail
${EMAIL FIELD ERROR} valErrorEmail
${SUBMIT BUTTON} btnSubmit
${CANCEL BUTTON} btnCancel
*** Keywords ***
Webauthn Device Lost Page Should Be Open
Location Should Be ${WEBAUTHN LOST PAGE URL}
Go To Webauthn Device Lost Page
Go To ${WEBAUTHN LOST PAGE URL}
Submit Data To Webauthn Lost Form
[Arguments] ${email}
Input Text ${EMAIL FIELD} ${email}
Click Button ${SUBMIT BUTTON}
Email Field Should Show An Error
Field Should Show An Error ${EMAIL FIELD ERROR}

View File

@ -0,0 +1,30 @@
*** Settings ***
Documentation A page object to use in webauthn recovery tests.
...
Library SeleniumLibrary
Resource ../common.resource
*** Variables ***
${WEBAUTHN RECOVER PAGE URL} ${ROOT URL}/webauthn/recover
${PASSWORD FIELD} pwdPassword
${PASSWORD FIELD ERROR} valErrorPassword
${REVOKE ALL CHECKBOX} revokeAll
${SUBMIT BUTTON} btnRecover
${CANCEL BUTTON} btnCancel
${RESET PASSWORD LINK} lnkResetPwd
*** Keywords ***
Webauthn Recover Page Should Be Open
Location Should Be ${WEBAUTHN RECOVER PAGE URL}
Go To Webauthn Recover Page
[Arguments] ${email} ${token}
Go To ${WEBAUTHN RECOVER PAGE URL}?email=${email}&token=${token}
Submit Data To Webauthn Recover Form
[Arguments] ${password}
Input Text ${PASSWORD FIELD} ${password}
Click Button ${SUBMIT BUTTON}
Password Field Should Show An Error
Field Should Show An Error ${PASSWORD FIELD ERROR}

View File

@ -3,8 +3,10 @@ Documentation A resource file for authentication tests.
Resource ../../common.resource
*** Variables ***
${VALID EMAIL CASED} TESTING@2fauth.app
${VALID PASSWORD CONFIRMATION} password
${NEW USER NAME} bob
${UNREGISTERED EMAIL} unregistered@2fauth.app
${VALID ADMIN EMAIL CASED} TESTINGADMIN@2fauth.app
${VALID USER EMAIL CASED} TESTINGUSER@2fauth.app
${INVALID USERNAME TOO LONG} veryLongUsernameeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
${INVALID EMAIL MALFORMED} emailWithNoAt

View File

@ -1,28 +0,0 @@
*** Settings ***
Documentation A test suite to check available links on the login page.
Suite Setup Available Links Suite Setup
Suite Teardown Close All Browsers
Resource ../../Pages/login_page.robot
*** Test Cases ***
Reset Link Is Visible
Element Should Be Visible ${RESET PASSWORD LINK}
Webauthn login Link Is Visible
Element Should Be Visible ${SIGN IN WITH WEBAUTHN LINK}
Legacy login Link Is Visible
Show Webauthn Form
Webauthn Form Should Be Visible
Element Should Be Visible ${SIGN IN WITH LOGIN PASSWORD LINK}
Recover Account Link Is Visible
Show Webauthn Form
Webauthn Form Should Be Visible
Element Should Be Visible ${RECOVER YOUR ACCOUNT LINK}
*** Keywords ***
Available Links Suite Setup
Open Blank Browser
Go To Legacy Login Page
Legacy Form Should Be Visible

View File

@ -1,37 +0,0 @@
*** Settings ***
Documentation A test suite containing tests related to invalid login.
Suite Setup Open Blank Browser
Suite Teardown Close All Browsers
Test Setup Run keywords
... Go To Legacy Login Page
... AND Login Page Should Be Open
... AND Legacy Form Should Be Visible
Resource ../../Pages/login_page.robot
Resource authentication.resource
*** Test Cases ***
Invalid Email
[Template] Login With Invalid Email Should Fail
${EMPTY} ${PASSWORD}
${INVALID EMAIL MALFORMED} ${PASSWORD}
${INVALID EMAIL DOES NOT EXIST} ${PASSWORD}
Missing Password
Submit Credentials To Legacy Form Login ${EMAIL} ${EMPTY}
Page Should Remain Login Page
login_page.Password Field Should Show An Error
Invalid Password
Submit Credentials To Legacy Form Login ${EMAIL} ${INVALID PASSWORD}
Page Should Remain Login Page
An Error Notification Should Appear
*** Keywords ***
Login With Invalid Email Should Fail
[Arguments] ${email} ${password}
Submit Credentials To Legacy Form Login ${email} ${password}
Location Should Be ${LOGIN PAGE URL}
login_page.Email Field Should Show An Error
Page Should Remain Login Page
Location Should Be ${LOGIN PAGE URL}

View File

@ -1,59 +0,0 @@
*** Settings ***
Documentation A test suite containing tests related to invalid registration.
Suite Setup Register Suite Setup
Suite Teardown Register Suite Teardown
Test Setup Register Test Setup
Resource ../../Pages/register_page.robot
Resource ../../Pages/accounts_page.robot
Resource authentication.resource
*** Test Cases ***
Invalid Email
[Template] Registering With Invalid Email Should Fail
${EMPTY}
${INVALID EMAIL MALFORMED}
${INVALID EMAIL TOO LONG}
Invalid Username
[Template] Registering With Invalid Username Should Fail
${EMPTY}
${INVALID USERNAME TOO LONG}
Invalid Password
[Template] Registering With Invalid Passwords Should Fail
${EMPTY} ${EMPTY}
${PASSWORD} ${EMPTY}
${PASSWORD} ${INVALID PASSWORD}
${INVALID PASSWORD TOO SHORT} ${INVALID PASSWORD TOO SHORT}
*** Keywords ***
Registering With Invalid Username Should Fail
[Arguments] ${bad username}
Submit User Data To Registration Form ${bad username} ${EMAIL} ${PASSWORD} ${PASSWORD}
register_page.Username Field Should Show An Error
Registering With Invalid Email Should Fail
[Arguments] ${bad email}
Submit User Data To Registration Form ${USERNAME} ${bad email} ${PASSWORD} ${PASSWORD}
register_page.Email Field Should Show An Error
Registering With Invalid Passwords Should Fail
[Arguments] ${bad password} ${bad password confirmation}
Submit User Data To Registration Form ${USERNAME} ${EMAIL} ${bad password} ${bad password confirmation}
register_page.Password Field Should Show An Error
User should be asked To Register A Webauthn Device
Page Should Contain Element ${REGISTER NEW DEVICE BUTTON}
Page Should Contain Element ${MAYBE LATER BUTTON}
Register Suite Setup
Open Blank Browser
Play Delete User Account Workflow
Register Suite Teardown
Close All Browsers
Play Register New User Workflow
Register Test Setup
Go To Register Page
Location Should Be ${REGISTER PAGE URL}

View File

@ -0,0 +1,48 @@
*** Settings ***
Documentation A test suite containing tests related to legacy login.
Suite Setup Run Keywords
... Open Custom Browser
... AND Play Logout Workflow
Suite Teardown Close All Browsers
Test Setup Go To Legacy Login Page
Resource ../../Pages/login_page.robot
Resource authentication.resource
*** Test Cases ***
Invalid Email Should Be Rejected
[Template] Email Submit Should Fail
${EMPTY} ${PASSWORD}
${INVALID EMAIL MALFORMED} ${PASSWORD}
${INVALID EMAIL DOES NOT EXIST} ${PASSWORD}
Missing Password Should Be Rejected
Submit Credentials To Legacy Form Login ${ADMIN EMAIL} ${EMPTY}
Login Page Should Be Open
login_page.Password Field Should Show An Error
Invalid Password Should Be Rejected
Submit Credentials To Legacy Form Login ${ADMIN EMAIL} ${INVALID PASSWORD}
Login Page Should Be Open
An Error Notification Should Appear
Password Should Not Be Readable
Input Text ${PASSWORD FIELD} ${PASSWORD}
Element Attribute Value Should Be ${PASSWORD FIELD} type password
Password Should Be Readable
Input Text ${PASSWORD FIELD} ${PASSWORD}
Click Element ${TOGGLE PASSWORD VISIBILITY BUTTON}
Element Attribute Value Should Be ${PASSWORD FIELD} type text
Valid Login
Login Page Should Be Open
User Should Be Welcomed
Submit Credentials To Legacy Form Login ${ADMIN EMAIL} ${PASSWORD}
Wait Until Location Is ${ACCOUNTS PAGE URL} 2s
*** Keywords ***
Email Submit Should Fail
[Arguments] ${email} ${password}
Submit Credentials To Legacy Form Login ${email} ${password}
Location Should Be ${LOGIN PAGE URL}
login_page.Email Field Should Show An Error

View File

@ -1,14 +0,0 @@
*** Settings ***
Documentation A test suite containing tests related to maximum user registration.
Suite Setup Open Blank Browser
Suite Teardown Close All Browsers
Resource ../../Pages/register_page.robot
Resource ../../Pages/accounts_page.robot
Resource authentication.resource
*** Test Cases ***
A User Already Exists
Go To Register Page
Location Should Be ${REGISTER PAGE URL}
Submit User Data To Registration Form ${USERNAME} ${EMAIL} ${PASSWORD} ${PASSWORD}
An Error Notification Should Appear

View File

@ -0,0 +1,35 @@
*** Settings ***
Documentation A test suite containing tests related to password request.
Suite Setup run Keywords
... Open Custom Browser
... AND Play Logout Workflow
Test Setup Go To Password Request Page
Suite Teardown Close All Browsers
Resource ../../Pages/password_request_page.robot
Resource authentication.resource
*** Test Cases ***
Invalid Email Is Rejected
[Template] Email Submit Should Fail
${EMPTY}
${UNREGISTERED EMAIL}
${INVALID EMAIL MALFORMED}
Password Request Is Submitted Sucessfully
Submit Data To Password Request Form ${ADMIN EMAIL}
Wait Until Element Is Visible css:#vueNotification .is-success 30s
Password Request Page Should Be Open
New Request While Pending One Is Rejected
Email Submit Should Fail ${ADMIN EMAIL}
Request Form Can Be Quit
Click Link ${CANCEL BUTTON}
Login Page Should Be Open
*** Keywords ***
Email Submit Should Fail
[Arguments] ${bad email}
Submit Data To Password Request Form ${bad email}
password_request_page.Email Field Should Show An Error
Password Request Page Should Be Open

View File

@ -0,0 +1,65 @@
*** Settings ***
Documentation A test suite containing tests related to password reset.
Suite Setup run Keywords
... Open Custom Browser
... AND Play Logout Workflow
Suite Teardown Close All Browsers
Resource ../../Pages/password_reset_page.robot
Resource ../../Pages/accounts_page.robot
Resource ../../Pages/login_page.robot
Resource authentication.resource
*** Variables ***
${NEW PASSWORD} new_password
${INVALID NEW PASSWORD} new
${TOKEN} token
${INVALID TOKEN} token
*** Test Cases ***
Invalid Email Is Rejected
[Template] Email Submit Should Fail
${EMPTY}
${UNREGISTERED EMAIL}
${INVALID EMAIL MALFORMED}
Invalid Password Is Rejected
[Template] Password Submit Should Fail
${EMPTY}
${INVALID NEW PASSWORD}
No Token Is Rejected
Go To Password Reset Page ${ADMIN EMAIL} ${EMPTY}
Submit Data To Password Reset Form ${NEW PASSWORD}
Token Field Should Show An Error
Invalid Token Is Rejected
Go To Password Reset Page ${ADMIN EMAIL} ${INVALID TOKEN}
Submit Data To Password Reset Form ${NEW PASSWORD}
password_reset_page.Email Field Should Show An Error
Password Reset Is Submitted Sucessfully
Go To Password Reset Page ${ADMIN EMAIL} ${TOKEN}
Element Attribute Value Should Be emlEmail value ${ADMIN EMAIL}
# Submit Data To Password Reset Form ${NEW PASSWORD}
# Wait Until Element Is Visible css:#vueNotification .is-success 30s
# Wait Until Element Is Visible ${CONTINUE BUTTON}
# Click Link ${CONTINUE BUTTON}
# Accounts Page Should Be Open
Reset Form Can Be Quit
Go To Password Reset Page ${ADMIN EMAIL} ${TOKEN}
Click Link ${CANCEL BUTTON}
Login Page Should Be Open
*** Keywords ***
Email Submit Should Fail
[Arguments] ${bad email}
Go To Password Reset Page ${bad email} ${TOKEN}
Submit Data To Password Reset Form ${NEW PASSWORD}
password_reset_page.Email Field Should Show An Error
Password Submit Should Fail
[Arguments] ${bad password}
Go To Password Reset Page ${ADMIN EMAIL} ${TOKEN}
Submit Data To Password Reset Form ${bad password}
password_reset_page.New Password Field Should Show An Error

View File

@ -0,0 +1,58 @@
*** Settings ***
Documentation A test suite containing tests related to invalid registration.
Suite Setup run Keywords
... Open Custom Browser
... AND Play Logout Workflow
# We force the register page to reload at every test to prevent fields set with
# ${EMPTY} to fail
Test Setup Go To Register Page
Suite Teardown run Keywords
... Play Delete Current User Account Workflow
... AND Close All Browsers
Resource ../../Pages/register_page.robot
Resource ../../Pages/start_page.robot
Resource authentication.resource
*** Test Cases ***
Invalid Username Should Be Rejected
[Template] Username Submit Should Fail
${EMPTY}
${INVALID USERNAME TOO LONG}
Invalid Email Should Be Rejected
[Template] Email Submit Should Fail
${EMPTY}
${INVALID EMAIL MALFORMED}
${INVALID EMAIL TOO LONG}
Invalid Password Should Be Rejected
[Template] Password Submit Should Fail
${EMPTY}
${INVALID PASSWORD TOO SHORT}
Registration Without Webauthn Device Should Succeed
Register Page Should Be Open
Submit User Data To Registration Form ${NEW USER NAME} ${UNREGISTERED EMAIL} ${PASSWORD}
User Should Be Asked To Register A Webauthn Device Or Postpone
Postpone Webauthn Registration
Wait Until Location Is ${START PAGE URL}
*** Keywords ***
Username Submit Should Fail
[Arguments] ${bad username}
Submit User Data To Registration Form ${bad username} ${UNREGISTERED EMAIL} ${PASSWORD}
register_page.Username Field Should Show An Error
Email Submit Should Fail
[Arguments] ${bad email}
Submit User Data To Registration Form ${NEW USER NAME} ${bad email} ${PASSWORD}
register_page.Email Field Should Show An Error
Password Submit Should Fail
[Arguments] ${bad password}
Submit User Data To Registration Form ${NEW USER NAME} ${UNREGISTERED EMAIL} ${bad password}
register_page.Password Field Should Show An Error
User Should Be Asked To Register A Webauthn Device Or Postpone
Wait Until Page Contains Element ${REGISTER NEW DEVICE BUTTON}
Wait Until Page Contains Element ${MAYBE LATER BUTTON}

View File

@ -1,15 +0,0 @@
*** Settings ***
Documentation A test suite containing tests related to valid login.
Suite Setup Open Blank Browser
Suite Teardown Close All Browsers
Resource ../../Pages/login_page.robot
Resource authentication.resource
*** Test Cases ***
Valid Login
Delete All Cookies
Go To Legacy Login Page
Login Page Should Be Open
User Should Be Welcomed
Submit Credentials To Legacy Form Login ${EMAIL} ${PASSWORD}

View File

@ -1,21 +0,0 @@
*** Settings ***
Documentation A test suite containing tests related to valid registration.
Suite Setup Open Blank Browser
Suite Teardown Close All Browsers
Resource ../../Pages/register_page.robot
Resource ../../Pages/accounts_page.robot
Resource authentication.resource
*** Test Cases ***
Valid Registration Without Webauthn Device
Play Delete User Account Workflow
Go To Register Page
Register Page Should Be Open
Submit User Data To Registration Form ${USERNAME} ${EMAIL} ${PASSWORD} ${PASSWORD}
User Should Be Asked To Register A Webauthn Device Or Postpone
Postpone Webauthn Registration
*** Keywords ***
User Should Be Asked To Register A Webauthn Device Or Postpone
Page Should Contain Element ${REGISTER NEW DEVICE BUTTON}
Page Should Contain Element ${MAYBE LATER BUTTON}

View File

@ -0,0 +1,23 @@
*** Settings ***
Documentation A test suite containing tests related to webauthn login.
Suite Setup Run Keywords
... Open Custom Browser
... AND Play Logout Workflow
Suite Teardown Close All Browsers
Test Setup Go To Webauthn Login Page
Resource ../../Pages/login_page.robot
Resource authentication.resource
*** Test Cases ***
Invalid Email Should Be Rejected
[Template] Email Submit Should Fail
${EMPTY}
${INVALID EMAIL MALFORMED}
${INVALID EMAIL DOES NOT EXIST}
*** Keywords ***
Email Submit Should Fail
[Arguments] ${email}
Submit Credentials To Webauthn Form Login ${email}
Location Should Be ${LOGIN PAGE URL}
login_page.Email Field Should Show An Error

View File

@ -0,0 +1,35 @@
*** Settings ***
Documentation A test suite containing tests related to webauthn device lost.
Suite Setup run Keywords
... Open Custom Browser
... AND Play Logout Workflow
Test Setup Go To Webauthn Device Lost Page
Suite Teardown Close All Browsers
Resource ../../Pages/webauthn_lost_page.robot
Resource authentication.resource
*** Test Cases ***
Invalid Email Should Be Rejected
[Template] Email Submit Should Fail
${EMPTY}
${UNREGISTERED EMAIL}
${INVALID EMAIL MALFORMED}
Webauthn Lost Is Submitted Sucessfully
Submit Data To Webauthn Lost Form ${ADMIN EMAIL}
Wait Until Element Is Visible css:#vueNotification .is-success 30s
Webauthn Device Lost Page Should Be Open
New Request While Pending One Is Rejected
Email Submit Should Fail ${ADMIN EMAIL}
Webauthn Lost Form Can Be Quit
Click Link ${CANCEL BUTTON}
Login Page Should Be Open
*** Keywords ***
Email Submit Should Fail
[Arguments] ${bad email}
Submit Data To Webauthn Lost Form ${bad email}
webauthn_lost_page.Email Field Should Show An Error
Webauthn Device Lost Page Should Be Open

View File

@ -0,0 +1,56 @@
*** Settings ***
Documentation A test suite containing tests related to webauthn account recover.
Suite Setup run Keywords
... Open Custom Browser
... AND Play Logout Workflow
# ... AND Declare Webauthn Device Lost And Come Back
Suite Teardown Close All Browsers
Resource ../../Pages/webauthn_recover_page.robot
Resource ../../Pages/webauthn_lost_page.robot
Resource ../../Pages/login_page.robot
Resource authentication.resource
Resource ../../Pages/password_request_page.robot
*** Variables ***
${TOKEN} token
${INVALID TOKEN} token
*** Test Cases ***
Invalid Token Should Be Rejected
[Template] Token Submit Should Fail
${EMPTY}
${INVALID TOKEN}
# Invalid Password Is Rejected
# [Template] Password Submit Should Fail
# ${EMPTY}
# ${INVALID PASSWORD}
Reset Passwork Link Should Be Visible
Go To Webauthn Recover Page \ \
Element Should Be Visible ${RESET PASSWORD LINK}
Click Link ${RESET PASSWORD LINK}
Password Request Page Should Be Open
Webauthn Recover Form Can Be Quit
Go To Webauthn Recover Page \ \
Click Link ${CANCEL BUTTON}
Login Page Should Be Open
*** Keywords ***
Token Submit Should Fail
[Arguments] ${bad token}
Go To Webauthn Recover Page ${ADMIN EMAIL} ${bad token}
Submit Data To Webauthn Recover Form ${PASSWORD}
An Error Notification Should Appear
Password Submit Should Fail
[Arguments] ${bad password}
Go To Webauthn Recover Page ${ADMIN EMAIL} ${TOKEN}
Submit Data To Webauthn Recover Form ${bad password}
webauthn_recover_page.Password Field Should Show An Error
Declare Webauthn Device Lost And Come Back
Go To Webauthn Device Lost Page
Submit Data To Webauthn Lost Form ${ADMIN EMAIL}
Go To Webauthn Recover Page ${ADMIN EMAIL} ${TOKEN}

View File

@ -0,0 +1,78 @@
*** Settings ***
Documentation A test suite containing tests related to password field component.
Suite Setup run Keywords
... Open Custom Browser
... AND Go To Register Page
Suite Teardown Close All Browsers
Resource ../../Pages/register_page.robot
*** Variables ***
${VALIDATION CSS CLASS} is-dot
*** Test Cases ***
Password Field Min Length Is Validated
Input Text ${PASSWORD FIELD} longEnough
Validation Mark Is On valPwdIsLongEnough
Password Field Min Length Is Not Validated
Input Text ${PASSWORD FIELD} short
Validation Mark Is Off valPwdIsLongEnough
Password Field Has Lower Case Is Validated
Input Text ${PASSWORD FIELD} lowercase
Validation Mark Is On valPwdHasLowerCase
Password Field Has Lower Case Is Not Validated
Input Text ${PASSWORD FIELD} NOTLOWERCASE
Validation Mark Is Off valPwdHasLowerCase
Password Field Has Upper Case Is Validated
Input Text ${PASSWORD FIELD} UPPERCASE
Validation Mark Is On valPwdHasUpperCase
Password Field Has Upper Case Is Not Validated
Input Text ${PASSWORD FIELD} lowercase
Validation Mark Is Off valPwdHasUpperCase
Password Field Has Special Char Is Validated
Input Text ${PASSWORD FIELD} $p€ci@1ch@r
Validation Mark Is On valPwdHasSpecialChar
Password Field Has Special Char Is Not Validated
Input Text ${PASSWORD FIELD} nospecialchar
Validation Mark Is Off valPwdHasSpecialChar
Password Field Has Number Is Validated
Input Text ${PASSWORD FIELD} p4ssw0rd
Validation Mark Is On valPwdHasNumber
Password Field Has Number Is Not Validated
Input Text ${PASSWORD FIELD} password
Validation Mark Is Off valPwdHasNumber
Password Field Validates All Rules
Input Text ${PASSWORD FIELD} Pa$$w0rD
Validation Mark Is On valPwdIsLongEnough
Validation Mark Is On valPwdHasLowerCase
Validation Mark Is On valPwdHasUpperCase
Validation Mark Is On valPwdHasSpecialChar
Validation Mark Is On valPwdHasNumber
Password Should Not Be Readable
Input Text ${PASSWORD FIELD} Pa$$w0rD
Element Attribute Value Should Be ${PASSWORD FIELD} type password
Password Should Be Readable
Input Text ${PASSWORD FIELD} Pa$$w0rD
Click Element ${TOGGLE PASSWORD VISIBILITY BUTTON}
Element Attribute Value Should Be ${PASSWORD FIELD} type text
*** Keywords ***
Validation Mark Is On
[Arguments] ${element}
Element Should Have Class ${element} ${VALIDATION CSS CLASS}
Validation Mark Is Off
[Arguments] ${element}
Element Should Not Have Class ${element} ${VALIDATION CSS CLASS}

View File

@ -0,0 +1,46 @@
*** Settings ***
Documentation A test suite to check links availability.
Suite Setup Run keywords
... Open Custom Browser
... AND Go To Legacy Login Page
... AND Legacy Form Should Be Visible
Suite Teardown Close All Browsers
Resource ../../Pages/login_page.robot
Resource ../../Pages/register_page.robot
*** Test Cases ***
### LEGACY LOGIN PAGE LINKS ###
Reset Link Is Visible
Element Should Be Visible ${RESET PASSWORD LINK}
Webauthn login Link Is Visible
Element Should Be Visible ${SIGN IN WITH WEBAUTHN LINK}
Register Link Is Visible
Element Should Be Visible ${REGISTER LINK}
### / LEGACY LOGIN PAGE LINKS ###
### WEBAUTHN PAGE LINKS ###
Legacy login Link Is Visible
Show Webauthn Form
Webauthn Form Should Be Visible
Element Should Be Visible ${SIGN IN WITH LOGIN PASSWORD LINK}
Webauthn Recover Account Link Is Visible
Show Webauthn Form
Webauthn Form Should Be Visible
Element Should Be Visible ${RECOVER YOUR ACCOUNT LINK}
### / WEBAUTHN PAGE LINKS ###
### REGISTER PAGE LINKS ###
Sign In Link Is Visible
Go To Register Page
Element Should Be Visible ${SIGN IN LINK}
### / REGISTER PAGE LINKS ###

View File

@ -0,0 +1,72 @@
*** Settings ***
Documentation A test suite containing tests related to browsing pages.
Suite Setup Run Keywords
... Open Custom Browser
... AND Play Admin Sign In Workflow
Suite Teardown Close All Browsers
Resource ../../Pages/404_page.robot
Resource ../../Pages/about_page.robot
Resource ../../Pages/account_create_page.robot
Resource ../../Pages/account_edit_page.robot
Resource ../../Pages/account_import_page.robot
Resource ../../Pages/account_show_qrcode_page.robot
Resource ../../Pages/accounts_page.robot
Resource ../../Pages/autolock_page.robot
Resource ../../Pages/capture_page.robot
Resource ../../Pages/error_page.robot
Resource ../../Pages/group_create_page.robot
Resource ../../Pages/group_edit_page.robot
Resource ../../Pages/groups_page.robot
Resource ../../Pages/login_page.robot
Resource ../../Pages/password_request_page.robot
Resource ../../Pages/password_reset_page.robot
Resource ../../Pages/register_page.robot
Resource ../../Pages/settings_account_page.robot
Resource ../../Pages/settings_oauth_page.robot
Resource ../../Pages/settings_oauth_pat_create_page.robot
Resource ../../Pages/settings_options_page.robot
Resource ../../Pages/settings_webauthn_page.robot
Resource ../../Pages/settings_webauthn_edit_page.robot
Resource ../../Pages/start_page.robot
Resource ../../Pages/webauthn_lost_page.robot
Resource ../../Pages/webauthn_recover_page.robot
Resource ../../common.resource
*** Test Cases ***
Page exists
[Template] Page Should Be Reachable
${ABOUT PAGE URL}
${CREATE ACCOUNT PAGE URL}
${EDIT ACCOUNT PAGE URL}
${IMPORT ACCOUNTS PAGE URL}
${SHOW ACCOUNT QRCODE PAGE URL}
${ACCOUNTS PAGE URL}
${CAPTURE PAGE URL}
${CREATE GROUP PAGE URL}
${EDIT GROUP PAGE URL}
${GROUPS PAGE URL}
${LOGIN PAGE URL}
${PASSWORD REQUEST PAGE URL}
${PASSWORD RESET PAGE URL}
${REGISTER PAGE URL}
${ACCOUNT SETTINGS PAGE URL}
${OAUTH SETTINGS PAGE URL}
${CREATE OAUTH PAT SETTINGS PAGE URL}
${OPTIONS SETTINGS PAGE URL}
${WEBAUTHN SETTINGS PAGE URL}
${RENAME WEBAUTHN DEVICE SETTINGS PAGE URL}
${START PAGE URL}
${WEBAUTHN LOST PAGE URL}
${WEBAUTHN RECOVER PAGE URL}
# autolock page must be test lastly because it logs the user out automatically
${AUTOLOCK PAGE URL}
Unknown Page
Go To ${ROOT URL}/_UNKNOWN_PAGE_
Wait Until Location Is ${404 PAGE URL}
*** Keywords ***
Page Should Be Reachable
[Arguments] ${url}
Go To ${url}
Wait Until Location Is ${url}

View File

@ -0,0 +1,50 @@
*** Settings ***
Documentation A test suite containing tests related to browsing redirections.
Suite Setup Run Keywords
... Open Custom Browser
... AND Delete All Cookies
... AND Play Logout Workflow
Suite Teardown Close All Browsers
Resource ../../Pages/account_create_page.robot
Resource ../../Pages/account_edit_page.robot
Resource ../../Pages/account_import_page.robot
Resource ../../Pages/account_show_qrcode_page.robot
Resource ../../Pages/accounts_page.robot
Resource ../../Pages/capture_page.robot
Resource ../../Pages/group_create_page.robot
Resource ../../Pages/group_edit_page.robot
Resource ../../Pages/groups_page.robot
Resource ../../Pages/settings_account_page.robot
Resource ../../Pages/settings_oauth_page.robot
Resource ../../Pages/settings_oauth_pat_create_page.robot
Resource ../../Pages/settings_options_page.robot
Resource ../../Pages/settings_webauthn_page.robot
Resource ../../Pages/settings_webauthn_edit_page.robot
Resource ../../Pages/start_page.robot
Resource ../../common.resource
*** Test Cases ***
Protected Page
[Template] Anonymous Should Be Redirected To Login Page
${CREATE ACCOUNT PAGE URL}
${EDIT ACCOUNT PAGE URL}
${IMPORT ACCOUNTS PAGE URL}
${SHOW ACCOUNT QRCODE PAGE URL}
${ACCOUNTS PAGE URL}
${CAPTURE PAGE URL}
${CREATE GROUP PAGE URL}
${EDIT GROUP PAGE URL}
${GROUPS PAGE URL}
${ACCOUNT SETTINGS PAGE URL}
${OAUTH SETTINGS PAGE URL}
${CREATE OAUTH PAT SETTINGS PAGE URL}
${OPTIONS SETTINGS PAGE URL}
${WEBAUTHN SETTINGS PAGE URL}
${RENAME WEBAUTHN DEVICE SETTINGS PAGE URL}
${START PAGE URL}
*** Keywords ***
Anonymous Should Be Redirected To Login Page
[Arguments] ${url}
Go To ${url}
Wait Until Location Is ${LOGIN PAGE URL}

View File

@ -1,33 +0,0 @@
*** Settings ***
Documentation A test suite containing tests related to browsing redirections.
Suite Setup Open Blank Browser
Suite Teardown Close All Browsers
Resource ../../Pages/register_page.robot
Resource ../../Pages/accounts_page.robot
Resource ../../Pages/settings_account_page.robot
Resource ../../Pages/settings_oauth_page.robot
Resource ../../Pages/settings_options_page.robot
Resource ../../Pages/settings_webauthn_page.robot
Resource ../../Pages/start_page.robot
Resource ../../Pages/create_account_page.robot
Resource ../../Pages/edit_account_page.robot
Resource ../../common.resource
*** Test Cases ***
Protected Page
[Template] Anonymous Should Be Redirected To Login Page
${ACCOUNTS PAGE URL}
${ACCOUNT SETTINGS PAGE URL}
${OAUTH SETTINGS PAGE URL}
${OPTIONS SETTINGS PAGE URL}
${WEBAUTHN SETTINGS PAGE URL}
${CREATE ACCOUNT PAGE URL}
${EDIT ACCOUNT PAGE URL}
${START PAGE URL}
*** Keywords ***
Anonymous Should Be Redirected To Login Page
[Arguments] ${url}
Delete All Cookies
Go To ${url}
Location Should Be ${LOGIN PAGE URL}

View File

@ -0,0 +1 @@
# TODO

View File

@ -1,6 +1,6 @@
# *** Settings ***
# Documentation A test suite to check available links on the login page.
# Suite Setup Open Blank Browser
# Suite Setup Open Custom Browser
# Suite Teardown Close Browser
# Resource Pages/login_page.robot
# Resource workflows.resource
@ -10,4 +10,4 @@
# *** Test Cases ***
# My Test
# Play Delete User Account Workflow
# Play Delete Current User Account Workflow

View File

@ -4,26 +4,28 @@ Library SeleniumLibrary
Resource workflows.resource
*** Variables ***
${SERVER} 2fauth
${BROWSER} chrome
${DELAY} 0.5
${SERVER} localhost
${BROWSER} chrome
# ${DELAY} 1
${USERNAME} Tester
${EMAIL} testing@2fauth.app
${PASSWORD} password
${USERNAME} Tester
${ADMIN EMAIL} testingadmin@2fauth.app
${USER EMAIL} testingadmin@2fauth.app
${PASSWORD} password
${ROOT URL} https://${SERVER}
${LOGOUT LINK} lnkSignOut
${ROOT URL} http://${SERVER}
${LOGOUT LINK} lnkSignOut
*** Keywords ***
Open Blank Browser
Set Selenium Speed ${DELAY}
Open Custom Browser
[Arguments] ${url}=${ROOT URL}
# Set Selenium Speed ${DELAY}
${options}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys
Call Method ${options} add_argument --lang\=en,en-us
Call Method ${options} add_argument --disable-dev-shm-usage # See https://stackoverflow.com/questions/50642308/org-openqa-selenium-webdriverexception-unknown-error-devtoolsactiveport-file-d
${prefs}= Create Dictionary intl.accept_languages=en,en-us
Call Method ${options} add_experimental_option prefs ${prefs}
Open Browser url=${ROOT URL} browser=${BROWSER} options=${options}
Open Browser url=${url} browser=${BROWSER} options=${options}
Maximize Browser Window
Go Authenticated To
@ -31,17 +33,31 @@ Go Authenticated To
Go To ${url}
${is_authenticated}= Run Keyword And Return Status Location Should Be ${url}
IF ${is_authenticated} == False
Play sign In Workflow
Play Admin Sign In Workflow
Go To ${url}
END
Wait Until Location Is ${url}
A Success Notification Should Appear
Wait Until Element Is Visible css:#vueNotification .is-success
An Error Notification Should Appear
Wait Until Element Is Visible css:#vueNotification .is-danger
Field Should Show An Error
[Arguments] ${field error}
Element Should Be Visible ${field error}
Wait Until Element Is Visible ${field error}
Should Not Be Empty ${field error}
Scroll To Bottom
Execute Javascript window.scrollTo(0,document.body.scrollHeight)
Element Should Have Class
[Arguments] ${element} ${className}
${class}= Get Element Attribute ${element} class
Should Contain ${class} ${className}
Element Should Not Have Class
[Arguments] ${element} ${className}
${class}= Get Element Attribute ${element} class
Should Not Contain ${class} ${className}

View File

@ -8,28 +8,36 @@ Resource Pages/login_page.robot
Resource Pages/register_page.robot
Resource Pages/accounts_page.robot
Resource Pages/settings_account_page.robot
Resource Pages/autolock_page.robot
*** Variables ***
*** Keywords ***
Play Delete User Account Workflow
Play Delete Current User Account Workflow
Go To Account Settings Page
Delete User Account
Wait Until Location Is ${REGISTER PAGE URL}
Play sign In Workflow
Play Admin Sign In Workflow
Play Logout Workflow
Delete All Cookies
Go To Legacy Login Page
Submit Credentials To Legacy Form Login ${EMAIL} ${PASSWORD}
Submit Credentials To Legacy Form Login ${ADMIN EMAIL} ${PASSWORD}
Wait Until Location Is ${ACCOUNTS PAGE URL}
Play Register New User Workflow
Go To Register Page
Submit User Data To Registration Form ${USERNAME} ${EMAIL} ${PASSWORD} ${PASSWORD}
Play User Sign In Workflow
Play Logout Workflow
Delete All Cookies
Go To Legacy Login Page
Submit Credentials To Legacy Form Login ${USER EMAIL} ${PASSWORD}
Wait Until Location Is ${ACCOUNTS PAGE URL}
Play Logout Workflow
Go To ${ROOT URL}/accounts
Go To ${ACCOUNTS PAGE URL}
${is_authenticated}= Run Keyword And Return Status Page Should Contain Element ${LOGOUT LINK}
IF ${is_authenticated} == True
Click Element ${LOGOUT LINK}
Handle Alert
END
END
Wait Until Location Is ${LOGIN PAGE URL}