96 lines
4.4 KiB
Plaintext
96 lines
4.4 KiB
Plaintext
*** Settings ***
|
|
Documentation Setup flow UI tests for Aniworld.
|
|
... Covers setup page load, password strength, form validation, and complete setup submission.
|
|
|
|
Resource ${CURDIR}/../resources/common.resource
|
|
Resource ${CURDIR}/../resources/ui_keywords.resource
|
|
|
|
Test Setup Run Keywords
|
|
... Open Browser To Page /setup
|
|
... AND Wait For Elements State id=setup-form visible timeout=5s
|
|
|
|
Test Teardown Close Browser
|
|
|
|
*** Test Cases ***
|
|
# ---------------------------------------------------------------------------
|
|
# Setup Page Load
|
|
# ---------------------------------------------------------------------------
|
|
Setup Page Loads
|
|
[Documentation] Verify the setup page loads with all expected sections.
|
|
Page Title Should Contain Setup
|
|
Element Should Be Visible id=setup-form
|
|
Element Should Be Visible id=general-section
|
|
Element Should Be Visible id=security-section
|
|
Element Should Be Visible id=scheduler-section
|
|
Element Should Be Visible id=logging-section
|
|
Element Should Be Visible id=backup-section
|
|
Element Should Be Visible id=nfo-section
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Password Strength Indicator
|
|
# ---------------------------------------------------------------------------
|
|
Password Strength Weak
|
|
[Documentation] Type a weak password and verify the strength indicator shows weak.
|
|
Fill Text id=master-password-input weak
|
|
${strength}= Get Text id=password-strength
|
|
Should Contain ${strength} weak
|
|
|
|
Password Strength Medium
|
|
[Documentation] Type a medium-strength password and verify the indicator updates.
|
|
Fill Text id=master-password-input Medium1!
|
|
${strength}= Get Text id=password-strength
|
|
Should Contain ${strength} medium
|
|
|
|
Password Strength Strong
|
|
[Documentation] Type a strong password and verify the indicator shows strong.
|
|
Fill Text id=master-password-input ${SETUP_PASSWORD}
|
|
${strength}= Get Text id=password-strength
|
|
Should Contain ${strength} strong
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Form Validation
|
|
# ---------------------------------------------------------------------------
|
|
Setup Form Validation Empty Password
|
|
[Documentation] Submit the form with an empty password and verify error message.
|
|
Fill Text id=app-name-input TestApp
|
|
Fill Text id=anime-directory-input /tmp/test
|
|
Click id=setup-submit-btn
|
|
Element Should Be Visible id=password-error
|
|
Element Text Should Contain id=password-error required
|
|
|
|
Setup Form Validation Mismatched Passwords
|
|
[Documentation] Submit with mismatched password and confirmation.
|
|
Fill Text id=master-password-input ${SETUP_PASSWORD}
|
|
Fill Text id=confirm-password-input DifferentPass123!
|
|
Click id=setup-submit-btn
|
|
Element Should Be Visible id=confirm-password-error
|
|
Element Text Should Contain id=confirm-password-error match
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Complete Setup Flow
|
|
# ---------------------------------------------------------------------------
|
|
Complete Setup Flow
|
|
[Documentation] Fill all setup sections and submit, verifying redirect to main page.
|
|
Fill Text id=app-name-input AniworldTest
|
|
Fill Text id=data-dir-input data
|
|
Fill Text id=anime-directory-input /tmp/aniworld_test_anime
|
|
Fill Text id=master-password-input ${SETUP_PASSWORD}
|
|
Fill Text id=confirm-password-input ${SETUP_PASSWORD}
|
|
# Disable scheduler for tests
|
|
Uncheck Checkbox id=scheduler-enabled
|
|
# Submit
|
|
Click id=setup-submit-btn
|
|
Wait For Elements State id=search-input visible timeout=10s
|
|
Page Title Should Contain AniWorld
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Post-Setup Redirect
|
|
# ---------------------------------------------------------------------------
|
|
Setup Redirects When Already Configured
|
|
[Documentation] After setup is complete, visiting /setup should redirect to /.
|
|
Complete Setup Flow
|
|
Go To ${BASE_URL}/setup
|
|
Wait For Elements State id=search-input visible timeout=5s
|
|
${url}= Get Url
|
|
Should Not Contain ${url} /setup
|