You are here

public function ProjectCoreCompatibilityTest::providerSetProjectCoreCompatibilityRanges in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/update/tests/src/Unit/ProjectCoreCompatibilityTest.php \Drupal\Tests\update\Unit\ProjectCoreCompatibilityTest::providerSetProjectCoreCompatibilityRanges()

Data provider for testSetProjectCoreCompatibilityRanges().

File

core/modules/update/tests/src/Unit/ProjectCoreCompatibilityTest.php, line 30

Class

ProjectCoreCompatibilityTest
@coversDefaultClass \Drupal\update\ProjectCoreCompatibility

Namespace

Drupal\Tests\update\Unit

Code

public function providerSetProjectCoreCompatibilityRanges() {
  $test_cases['no 9 releases'] = [
    'project_data' => [
      'recommended' => '1.0.1',
      'latest_version' => '1.2.3',
      'also' => [
        '1.2.4',
        '1.2.5',
        '1.2.6',
      ],
      'releases' => [
        '1.0.1' => [
          'core_compatibility' => '8.x',
        ],
        '1.2.3' => [
          'core_compatibility' => '^8.9 || ^9',
        ],
        '1.2.4' => [
          'core_compatibility' => '^8.9.2 || ^9',
        ],
        '1.2.6' => [],
      ],
      'security updates' => [
        '1.2.5' => [
          'core_compatibility' => '8.9.0 || 8.9.2 || ^9.0.1',
        ],
      ],
    ],
    'core_data' => [
      'existing_version' => '8.8.0',
    ],
    'core_releases' => [
      '8.8.0-alpha1' => [],
      '8.8.0-beta1' => [],
      '8.8.0-rc1' => [],
      '8.8.0' => [],
      '8.8.1' => [],
      '8.8.2' => [],
      '8.9.0' => [],
      '8.9.1' => [],
      '8.9.2' => [],
    ],
    'expected_releases' => [
      '1.0.1' => [
        'core_compatibility' => '8.x',
        'core_compatible' => TRUE,
        'core_compatibility_message' => 'Requires Drupal core: 8.8.0 to 8.9.2',
      ],
      '1.2.3' => [
        'core_compatibility' => '^8.9 || ^9',
        'core_compatible' => FALSE,
        'core_compatibility_message' => 'Requires Drupal core: 8.9.0 to 8.9.2',
      ],
      '1.2.4' => [
        'core_compatibility' => '^8.9.2 || ^9',
        'core_compatible' => FALSE,
        'core_compatibility_message' => 'Requires Drupal core: 8.9.2',
      ],
      '1.2.6' => [],
    ],
    'expected_security_updates' => [
      '1.2.5' => [
        'core_compatibility' => '8.9.0 || 8.9.2 || ^9.0.1',
        'core_compatible' => FALSE,
        'core_compatibility_message' => 'Requires Drupal core: 8.9.0, 8.9.2',
      ],
    ],
  ];

  // Ensure that when only Drupal 9 pre-releases none of the expected ranges
  // change.
  $test_cases['with 9 pre releases'] = $test_cases['no 9 releases'];
  $test_cases['with 9 pre releases']['core_releases'] += [
    '9.0.0-alpha1' => [],
    '9.0.0-beta1' => [],
    '9.0.0-rc1' => [],
  ];

  // Ensure that when the Drupal 9 full release are added the expected ranges
  // do change.
  $test_cases['with 9 full releases'] = $test_cases['with 9 pre releases'];
  $test_cases['with 9 full releases']['core_releases'] += [
    '9.0.0' => [],
    '9.0.1' => [],
    '9.0.2' => [],
  ];
  $test_cases['with 9 full releases']['expected_releases'] = [
    '1.0.1' => [
      'core_compatibility' => '8.x',
      'core_compatible' => TRUE,
      'core_compatibility_message' => 'Requires Drupal core: 8.8.0 to 8.9.2',
    ],
    '1.2.3' => [
      'core_compatibility' => '^8.9 || ^9',
      'core_compatible' => FALSE,
      'core_compatibility_message' => 'Requires Drupal core: 8.9.0 to 9.0.2',
    ],
    '1.2.4' => [
      'core_compatibility' => '^8.9.2 || ^9',
      'core_compatible' => FALSE,
      'core_compatibility_message' => 'Requires Drupal core: 8.9.2 to 9.0.2',
    ],
    '1.2.6' => [],
  ];
  $test_cases['with 9 full releases']['expected_security_updates'] = [
    '1.2.5' => [
      'core_compatibility' => '8.9.0 || 8.9.2 || ^9.0.1',
      'core_compatible' => FALSE,
      'core_compatibility_message' => 'Requires Drupal core: 8.9.0, 8.9.2, 9.0.1 to 9.0.2',
    ],
  ];
  return $test_cases;
}