= Test Plan
== General Framework
- [x] Offline checks
- [x] HSTS
- ~~Router~~
== Account creation
- [x] Non-OAuth
-- [x] Required fields
-- [x] Password mismatch
-- [x] Duplicate username
-- [x] Duplicate email address
-- [x] Confirmation revision ID
-- [x] Onwiki username present
- [x] OAuth
- [x] Shouldn't be logged in after partial oauth
== Login
- [x] Basic login
- [x] Bad password
- [x] Bad username
- [x] Last active
- [ ] Force logout
- [x] Suspended
- [x] New
- [x] Declined
- [x] Enforce OAuth
- [x] Partial OAuth
- [x] Wiki-detached OAuth
- [x] Identification / enforce identification
- [x] SHouldn't be logged in after partial OAuth
== Forgot password
- [ ] Forgot password flow
== Main Page
- [ ] Last 5
- [ ] Request lists
- [ ] Miser mode
== Request creation
- [ ] Normal
- [ ] Antispoof
- [ ] Blacklisted
- [ ] Email confirmation
- [ ] No email confirmation
- [ ] With/without comment
== Request handling
- [ ] Private data display
- [ ] Checkuser data display
- [ ] Reserve/unreserve/breakreserve
- [ ] Defer to queue
- [ ] Blacklist scan
- [ ] XFF handling
- [ ] IP RDNS/Location
- [ ] Ban buttons visible?
== Commenting
- [ ] Request commenting
- [ ] Edit comment + log entries
- [ ] Private data blacklist
- [ ] Admin only comments
== Site notice
- [ ] Display
- [ ] Editing
== Welcome Templates
- [ ] Create
- [ ] Edit
- [ ] Delete
- [ ] Select
- [ ] View
- [ ] View deleted
- [ ] Select deleted
- [ ] Edit deleted
- [ ] Delete deleted
== Maintenance Scripts
- [ ] Clear old data
- [ ] Clear OAuth
- [ ] Recreate trusted IPs
- [ ] Backup
== User Management
- [x] Suspend
- [x] Decline
- [x] Approve
- [x] Promote
- [x] Demote
(with relevant status change and appropriate email sent)
- [x] Edit prefs
- [x] Rename
== Banning
- [ ] Ban
- [ ] Unban
- [ ] View Bans
- [ ] Ban from request
- [ ] Ban takes effect
== Upgrade + deployment
- [ ] Production database upgrade