public function testContribStarterkitDevSnapshot(): void
{ // Change the version to a development snapshot version number, to simulate
// using a contrib theme as the starterkit.
$starterkit_info_yml =
$this->
getWorkspaceDirectory() . '/core/themes/starterkit_theme/starterkit_theme.info.yml';
$info = Yaml::
decode(file_get_contents($starterkit_info_yml));
$info['core_version_requirement'
] = '*';
$info['version'
] = '7.x-dev';
file_put_contents($starterkit_info_yml, Yaml::
encode($info));
// Avoid the core git commit from being considered the source theme's: move
// it out of core.
Process::
fromShellCommandline('mv core/themes/starterkit_theme themes/',
$this->
getWorkspaceDirectory())->
run();
$process =
$this->
generateThemeFromStarterkit();
$result =
$process->
run();
$this->
assertEquals("The source theme starterkit_theme has a development version number (7.x-dev). Because it is not a git checkout, a specific commit could not be identified. This makes tracking changes in the source theme difficult. Are you sure you want to continue? (yes/no) [yes]:\n > Theme generated successfully to themes/test_custom_theme",
trim($process->
getOutput()),
$process->
getErrorOutput());
$this->
assertSame(0,
$result);
$info =
$this->
assertThemeExists('themes/test_custom_theme'
);
self::
assertArrayNotHasKey('hidden',
$info);
self::
assertArrayHasKey('generator',
$info);
self::
assertEquals('starterkit_theme:7.x-dev#unknown-commit',
$info['generator'
]);
}