function ProjectInfoTest::testGetInstallableReleases
@covers ::getInstallableReleases
@dataProvider providerGetInstallableReleases
Parameters
string $fixture: The fixture file name.
string $installed_version: The installed version core version to set.
string[] $expected_versions: The expected versions.
File
-
core/
modules/ package_manager/ tests/ src/ Kernel/ ProjectInfoTest.php, line 29
Class
- ProjectInfoTest
- @coversDefaultClass \Drupal\package_manager\ProjectInfo @group auto_updates @internal
Namespace
Drupal\Tests\package_manager\KernelCode
public function testGetInstallableReleases(string $fixture, string $installed_version, array $expected_versions) : void {
[
$project,
] = explode('.', $fixture);
$fixtures_directory = __DIR__ . '/../../fixtures/release-history/';
if ($project === 'drupal') {
$this->setCoreVersion($installed_version);
}
else {
// Update the version and the project of the project.
$this->enableModules([
'package_manager_test_update',
]);
$extension_info_update = [
'version' => $installed_version,
'project' => 'package_manager_test_update',
];
// @todo Replace with use of the trait from the Update module in https://drupal.org/i/3348234.
$this->config('update_test.settings')
->set("system_info.{$project}", $extension_info_update)
->save();
// The Update module will always request Drupal core's update XML.
$metadata_fixtures['drupal'] = $fixtures_directory . 'drupal.9.8.2.xml';
}
$metadata_fixtures[$project] = "{$fixtures_directory}{$fixture}";
$this->setReleaseMetadata($metadata_fixtures);
$project_info = new ProjectInfo($project);
$actual_releases = $project_info->getInstallableReleases();
// Assert that we returned the correct releases in the expected order.
$this->assertSame($expected_versions, array_keys($actual_releases));
// Assert that we version keys match the actual releases.
foreach ($actual_releases as $version => $release) {
$this->assertSame($version, $release->getVersion());
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.