container->get('theme_installer')->install(static::$themes); $this->installConfig('system'); $system_theme_config = $this->container->get('config.factory')->getEditable('system.theme'); $theme_name = reset(static::$themes); $system_theme_config ->set('default', $theme_name) ->save(); $theme_manager = \Drupal::service('theme.manager'); $active_theme = \Drupal::service('theme.initialization')->initTheme($theme_name); $theme_manager->setActiveTheme($active_theme); $this->negotiator = new ComponentNegotiator($theme_manager); $this->manager = \Drupal::service('plugin.manager.sdc'); } /** * Renders a component for testing sake. * * @param array $component * Component render array. * @param \Drupal\Core\Render\BubbleableMetadata|null $metadata * Bubble metadata. * * @return \Symfony\Component\DomCrawler\Crawler * Crawler for introspecting the rendered component. */ protected function renderComponentRenderArray(array $component, ?BubbleableMetadata $metadata = NULL): Crawler { $component = [ '#type' => 'container', '#attributes' => [ 'id' => 'sdc-wrapper', ], 'component' => $component, ]; $metadata = $metadata ?: new BubbleableMetadata(); $context = new RenderContext(); $renderer = \Drupal::service('renderer'); $output = $renderer->executeInRenderContext($context, fn () => $renderer->render($component)); if (!$context->isEmpty()) { $metadata->addCacheableDependency($context->pop()); } return new Crawler((string) $output); } }