Test: PHP extension dependencies and composer platform checks #22

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

Verify all required PHP extensions are declared in composer.json and validated at install time.

Scope

  • ext-zip (ZipArchive for backup/restore)
  • ext-pdo + ext-pdo_mysql (database operations in Kickstart)
  • ext-curl (Google Drive uploader)
  • ext-ftp (FTP uploader)
  • ext-mbstring (binary-safe string handling)

Acceptance Criteria

  • composer install fails if any required extension is missing
  • Package install script checks PHP version and key extensions
  • CI validates extension requirements
  • Kickstart restore.php checks ext-zip and ext-pdo in preflight
  • Clear error messages when extensions are missing
Verify all required PHP extensions are declared in composer.json and validated at install time. ## Scope - ext-zip (ZipArchive for backup/restore) - ext-pdo + ext-pdo_mysql (database operations in Kickstart) - ext-curl (Google Drive uploader) - ext-ftp (FTP uploader) - ext-mbstring (binary-safe string handling) ## Acceptance Criteria - [ ] `composer install` fails if any required extension is missing - [ ] Package install script checks PHP version and key extensions - [ ] CI validates extension requirements - [ ] Kickstart restore.php checks ext-zip and ext-pdo in preflight - [ ] Clear error messages when extensions are missing
jmiller added the type: testingpriority: mediumcomponent: enginestatus: ready labels 2026-06-02 20:31:21 +00:00
Author
Owner

Testing Plan

TC-22.1: Composer platform check

  1. Run composer check-platform-reqs
  2. Verify all 6 extensions listed as required
  3. Verify all pass on a standard Joomla hosting environment

TC-22.2: Missing ext-zip

  1. Disable ext-zip in php.ini
  2. Run composer install
  3. Verify clear error about missing ext-zip
  4. Attempt package install in Joomla
  5. Verify script.php preflight blocks install

TC-22.3: Missing ext-curl (optional for Google Drive)

  1. Disable ext-curl
  2. Run backup with local-only profile — should succeed
  3. Run backup with Google Drive profile — should fail with clear message

TC-22.4: Missing ext-ftp (optional for FTP)

  1. Disable ext-ftp
  2. Run backup with local-only profile — should succeed
  3. Run backup with FTP profile — should fail with clear message

TC-22.5: Kickstart preflight

  1. Open restore.php in browser
  2. Click Run Checks
  3. Verify ext-zip check appears and passes
  4. Disable ext-zip, reload
  5. Verify check fails with clear message

TC-22.6: CI validation

  1. Push to dev branch
  2. Verify ci-joomla.yml runs composer install
  3. Verify platform requirements checked
## Testing Plan **TC-22.1: Composer platform check** 1. Run `composer check-platform-reqs` 2. Verify all 6 extensions listed as required 3. Verify all pass on a standard Joomla hosting environment **TC-22.2: Missing ext-zip** 1. Disable ext-zip in php.ini 2. Run `composer install` 3. Verify clear error about missing ext-zip 4. Attempt package install in Joomla 5. Verify script.php preflight blocks install **TC-22.3: Missing ext-curl (optional for Google Drive)** 1. Disable ext-curl 2. Run backup with local-only profile — should succeed 3. Run backup with Google Drive profile — should fail with clear message **TC-22.4: Missing ext-ftp (optional for FTP)** 1. Disable ext-ftp 2. Run backup with local-only profile — should succeed 3. Run backup with FTP profile — should fail with clear message **TC-22.5: Kickstart preflight** 1. Open restore.php in browser 2. Click Run Checks 3. Verify ext-zip check appears and passes 4. Disable ext-zip, reload 5. Verify check fails with clear message **TC-22.6: CI validation** 1. Push to dev branch 2. Verify ci-joomla.yml runs composer install 3. Verify platform requirements checked
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MokoConsulting/MokoJoomBackup#22