diff --git a/core/tests/Drupal/FunctionalTests/SetupDrupalTestScript.php b/core/tests/Drupal/FunctionalTests/SetupDrupalTestScript.php new file mode 100644 index 0000000000..badf721745 --- /dev/null +++ b/core/tests/Drupal/FunctionalTests/SetupDrupalTestScript.php @@ -0,0 +1,21 @@ +install(['test_page_test']); + } + +} diff --git a/core/tests/Drupal/FunctionalTests/SetupDrupalTestScriptTest.php b/core/tests/Drupal/FunctionalTests/SetupDrupalTestScriptTest.php index 3a0487092c..4c5adf5a4e 100644 --- a/core/tests/Drupal/FunctionalTests/SetupDrupalTestScriptTest.php +++ b/core/tests/Drupal/FunctionalTests/SetupDrupalTestScriptTest.php @@ -2,28 +2,29 @@ namespace Drupal\FunctionalTests; -use Drupal\Tests\UnitTestCase; -use Symfony\Component\Process\PhpExecutableFinder; -use Symfony\Component\Process\Process; +use Drupal\Setup\Commands\TestInstallationSetupApplication; +use Drupal\Tests\BrowserTestBase; +use Symfony\Component\Console\Tester\ApplicationTester; /** * Tests setup-drupal-test.php. * * @group core */ -class SetupDrupalTestScriptTest extends UnitTestCase { +class SetupDrupalTestScriptTest extends BrowserTestBase { public function testInstallScript() { - $php_executable_finder = new PhpExecutableFinder(); - $php = $php_executable_finder->find(); + $app = new TestInstallationSetupApplication(); - $db_url = getenv('SIMPLETEST_DB'); - $base_url = getenv('SIMPLETEST_BASE_URL'); - $process = new Process("$php {$this->root}/core/scripts/setup-drupal-test.php --db_url={$db_url} --base_url={$base_url}"); - $process->run(function ($type, $data) { - // @todo How does one test an async API? - // This code might happen after the test function is done. - }); + $options = [ + 'setup_file' => __DIR__ . '/SetupDrupalTestScript.php', + ]; + $app_tester = new ApplicationTester($app); + $output = $app_tester->run([ + 'command' => 'run', + ], $options); + $a = 123; + $this->assertTrue(FALSE); } } diff --git a/core/tests/Drupal/Setup/TestInstallationSetup.php b/core/tests/Drupal/Setup/TestInstallationSetup.php index c0bde3851f..714b2815e4 100644 --- a/core/tests/Drupal/Setup/TestInstallationSetup.php +++ b/core/tests/Drupal/Setup/TestInstallationSetup.php @@ -99,12 +99,13 @@ protected function executeSetupFile($setup_file) { if (count($classes) > 1) { throw new \InvalidArgumentException(sprintf('You need to define a single class implementing \Drupal\Setup\TestSetupInterface')); } + + require_once $setup_file; + if (!is_subclass_of($classes[0], TestSetupInterface::class)) { throw new \InvalidArgumentException(sprintf('You need to define a class implementing \Drupal\Setup\TestSetupInterface')); } - require_once $setup_file; - /** @var \Drupal\Setup\TestSetupInterface $instance */ $instance = new $classes[0]; $instance->setup();