Test: Kickstart self-extracting archives #5

Open
opened 2026-06-02 20:29:21 +00:00 by jmiller · 1 comment
Owner

Verify the Kickstart standalone restore script works on a blank server.

Scope

  • Archive wrapping (restore.php + site-backup.zip)
  • Pre-flight checks in restore UI
  • File extraction step
  • Database import step
  • Configuration update step
  • Cleanup step
  • CSRF protection

Acceptance Criteria

  • Wrapped archive contains restore.php + site-backup.zip
  • restore.php loads in browser with step-by-step UI
  • All 5 steps complete successfully on a blank server
  • Site is functional after restore
  • CSRF token prevents unauthorized actions
Verify the Kickstart standalone restore script works on a blank server. ## Scope - Archive wrapping (restore.php + site-backup.zip) - Pre-flight checks in restore UI - File extraction step - Database import step - Configuration update step - Cleanup step - CSRF protection ## Acceptance Criteria - [ ] Wrapped archive contains restore.php + site-backup.zip - [ ] restore.php loads in browser with step-by-step UI - [ ] All 5 steps complete successfully on a blank server - [ ] Site is functional after restore - [ ] CSRF token prevents unauthorized actions
jmiller added the type: testingpriority: highcomponent: enginestatus: ready labels 2026-06-02 20:29:21 +00:00
Author
Owner

Testing Plan

Pre-requisites

  • Profile with "Include Restore Script" enabled
  • A blank server/vhost with PHP 8.1+ and MySQL
  • No Joomla installed on the target

TC-5.1: Archive structure

  1. Run backup with include_kickstart=1
  2. Download the archive
  3. Verify ZIP contains exactly: restore.php + site-backup.zip
  4. Verify site-backup.zip contains the actual backup

TC-5.2: Pre-flight checks

  1. Upload restore.php + site-backup.zip to blank server
  2. Open restore.php in browser
  3. Click "Run Checks"
  4. Verify all checks pass (PHP version, zip ext, file exists, writable)

TC-5.3: Full restore flow

  1. Step 2: Click Extract — verify files extracted
  2. Step 3: Enter DB credentials, click Import — verify tables created
  3. Step 4: Enter site name, click Update Config — verify configuration.php updated
  4. Step 5: Click Cleanup — verify database.sql and site-backup.zip removed
  5. Navigate to site — verify Joomla loads correctly

TC-5.4: CSRF protection

  1. Open browser dev tools
  2. Attempt POST to restore.php with wrong/missing token
  3. Verify request is rejected

TC-5.5: Error handling

  1. Remove site-backup.zip before extraction step
  2. Verify pre-flight check fails
  3. Enter wrong DB credentials
  4. Verify database step returns error message
## Testing Plan ### Pre-requisites - Profile with "Include Restore Script" enabled - A blank server/vhost with PHP 8.1+ and MySQL - No Joomla installed on the target **TC-5.1: Archive structure** 1. Run backup with include_kickstart=1 2. Download the archive 3. Verify ZIP contains exactly: restore.php + site-backup.zip 4. Verify site-backup.zip contains the actual backup **TC-5.2: Pre-flight checks** 1. Upload restore.php + site-backup.zip to blank server 2. Open restore.php in browser 3. Click "Run Checks" 4. Verify all checks pass (PHP version, zip ext, file exists, writable) **TC-5.3: Full restore flow** 1. Step 2: Click Extract — verify files extracted 2. Step 3: Enter DB credentials, click Import — verify tables created 3. Step 4: Enter site name, click Update Config — verify configuration.php updated 4. Step 5: Click Cleanup — verify database.sql and site-backup.zip removed 5. Navigate to site — verify Joomla loads correctly **TC-5.4: CSRF protection** 1. Open browser dev tools 2. Attempt POST to restore.php with wrong/missing token 3. Verify request is rejected **TC-5.5: Error handling** 1. Remove site-backup.zip before extraction step 2. Verify pre-flight check fails 3. Enter wrong DB credentials 4. Verify database step returns error message
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MokoConsulting/MokoJoomBackup#5