Merge pull request #15850 from civicrm/5.20
[civicrm-core.git] / tests / phpunit / CRM / Upgrade / FormTest.php
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 MINIMUM_PHP_VERSION (CRM/Upgrade/Form.php).
11 */
12 public function testComposerRequirementMatch() {
13 global $civicrm_root;
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.");
21 }
22
23 }