| 1 | <?php |
| 2 | |
| 3 | /** |
| 4 | * Class CRM_Upgrade_FormTest |
| 5 | * @group headless |
| 6 | */ |
| 7 | class CRM_Upgrade_FormTest extends CiviUnitTestCase { |
| 8 | |
| 9 | /** |
| 10 | * "php" requirement (composer.json) should match |
| 11 | * CRM_Upgrade_Incremental_General::MIN_INSTALL_PHP_VER. |
| 12 | */ |
| 13 | public function testComposerRequirementMatch() { |
| 14 | global $civicrm_root; |
| 15 | $composerJsonPath = "{$civicrm_root}/composer.json"; |
| 16 | $this->assertFileExists($composerJsonPath); |
| 17 | $composerJson = json_decode(file_get_contents($composerJsonPath), 1); |
| 18 | $composerJsonRequirePhp = preg_replace(';[~^];', '', $composerJson['require']['php']); |
| 19 | $actualMajorMinor = preg_replace(';^[\^]*(\d+\.\d+)\..*$;', '\1', $composerJsonRequirePhp); |
| 20 | $expectMajorMinor = preg_replace(';^(\d+\.\d+)\..*$;', '\1', \CRM_Upgrade_Incremental_General::MIN_INSTALL_PHP_VER); |
| 21 | $this->assertStringContainsString($expectMajorMinor, $actualMajorMinor, "The PHP version requirements in CRM_Upgrade_Form ($expectMajorMinor) and composer.json ($actualMajorMinor) should specify same major+minor versions."); |
| 22 | } |
| 23 | |
| 24 | } |