interdiff impossible; taking evasive action reverted: --- b/core/lib/Drupal/Core/CoreBundle.php +++ a/core/lib/Drupal/Core/CoreBundle.php @@ -302,16 +302,6 @@ $container->register('plugin.manager.condition', 'Drupal\Core\Condition\ConditionManager'); - // Register image toolkit manager. - $container - ->register('image.toolkit.manager', 'Drupal\system\Plugin\ImageToolkitManager') - ->addArgument('%container.namespaces%'); - // Register image toolkit. - $container - ->register('image.toolkit', 'Drupal\system\Plugin\ImageToolkitInterface') - ->setFactoryService('image.toolkit.manager') - ->setFactoryMethod('getDefaultToolkit'); - $container->register('kernel_destruct_subscriber', 'Drupal\Core\EventSubscriber\KernelDestructionSubscriber') ->addMethodCall('setContainer', array(new Reference('service_container'))) ->addTag('event_subscriber'); unchanged: --- a/core/lib/Drupal/Core/CoreBundle.php +++ b/core/lib/Drupal/Core/CoreBundle.php @@ -309,6 +309,16 @@ public function build(ContainerBuilder $container) { $container->register('ajax.subscriber', 'Drupal\Core\Ajax\AjaxSubscriber') ->addTag('event_subscriber'); + // Register image toolkit manager. + $container + ->register('image.toolkit.manager', 'Drupal\system\Plugin\ImageToolkitManager') + ->addArgument('%container.namespaces%'); + // Register image toolkit. + $container + ->register('image.toolkit', 'Drupal\system\Plugin\ImageToolkitInterface') + ->setFactoryService('image.toolkit.manager') + ->setFactoryMethod('getDefaultToolkit'); + $container->addCompilerPass(new RegisterMatchersPass()); $container->addCompilerPass(new RegisterRouteFiltersPass()); // Add a compiler pass for registering event subscribers. diff -u b/core/modules/system/lib/Drupal/system/Tests/Image/ToolkitGdTest.php b/core/modules/system/lib/Drupal/system/Tests/Image/ToolkitGdTest.php --- b/core/modules/system/lib/Drupal/system/Tests/Image/ToolkitGdTest.php +++ b/core/modules/system/lib/Drupal/system/Tests/Image/ToolkitGdTest.php @@ -7,13 +7,13 @@ namespace Drupal\system\Tests\Image; -use Drupal\simpletest\WebTestBase; +use Drupal\simpletest\DrupalUnitTestBase; use Drupal\system\Plugin\ImageToolkitManager; /** * Test the core GD image manipulation functions. */ -class ToolkitGdTest extends WebTestBase { +class ToolkitGdTest extends DrupalUnitTestBase { // Colors that are used in testing. protected $black = array(0, 0, 0, 0); protected $red = array(255, 0, 0, 0); @@ -27,6 +27,13 @@ protected $width = 40; protected $height = 20; + /** + * Modules to enable. + * + * @var array + */ + public static $modules = array('system', 'simpletest'); + public static function getInfo() { return array( 'name' => 'Image GD manipulation tests', @@ -36,9 +43,14 @@ } protected function checkRequirements() { - $manager = new ImageToolkitManager($this->container->getParameter('container.namespaces')); - $definition = $manager->getDefinition('gd'); - if (!call_user_func($definition['class'] . '::isAvailable')) { + $gd_available = FALSE; + if ($check = get_extension_funcs('gd')) { + if (in_array('imagegd2', $check)) { + // GD2 support is available. + $gd_available = TRUE; + } + } + if (!$gd_available) { return array( 'Image manipulations for the GD toolkit cannot run because the GD toolkit is not available.', ); @@ -247,7 +259,7 @@ $correct_dimensions_object = FALSE; } - $directory = file_default_scheme() . '://imagetests'; + $directory = $this->public_files_directory .'/imagetest'; file_prepare_directory($directory, FILE_CREATE_DIRECTORY); image_save($image, $directory . '/' . $op . '.' . $image->info['extension']);