4 * Class CRM_Upgrade_FormTest
7 class CRM_Upgrade_FormTest
extends CiviUnitTestCase
{
10 * "php" requirement (composer.json) should match MINIMUM_PHP_VERSION (CRM/Upgrade/Form.php).
12 public function testComposerRequirementMatch() {
14 $composerJsonPath = "{$civicrm_root}/composer.json";
15 $this->assertFileExists($composerJsonPath);
16 $composerJson = json_decode(file_get_contents($composerJsonPath), 1);
17 $composerJsonRequirePhp = preg_replace(';[~^];', '', $composerJson['require']['php']);
18 $actualMajorMinor = preg_replace(';^[\^]*(\d+\.\d+)\..*$;', '\1', $composerJsonRequirePhp);
19 $expectMajorMinor = preg_replace(';^[\^]*(\d+\.\d+)\..*$;', '\1', \CRM_Upgrade_Form
::MINIMUM_PHP_VERSION
);
20 $this->assertEquals($expectMajorMinor, $actualMajorMinor, "The PHP version requirements in CRM_Upgrade_Form ($expectMajorMinor) and composer.json ($actualMajorMinor) should specify same major+minor versions.");