ElementInfoIntegrationTest.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. namespace Drupal\KernelTests\Core\Render;
  3. use Drupal\KernelTests\KernelTestBase;
  4. /**
  5. * Tests the element info.
  6. *
  7. * @group Render
  8. */
  9. class ElementInfoIntegrationTest extends KernelTestBase {
  10. /**
  11. * {@inheritdoc}
  12. */
  13. protected function setUp() {
  14. parent::setUp();
  15. $this->container->get('theme_handler')->install(['test_theme', 'classy']);
  16. }
  17. /**
  18. * Ensures that the element info can be altered by themes.
  19. */
  20. public function testElementInfoByTheme() {
  21. /** @var \Drupal\Core\Theme\ThemeInitializationInterface $theme_initializer */
  22. $theme_initializer = $this->container->get('theme.initialization');
  23. /** @var \Drupal\Core\Theme\ThemeManagerInterface $theme_manager */
  24. $theme_manager = $this->container->get('theme.manager');
  25. /** @var \Drupal\Core\Render\ElementInfoManagerInterface $element_info */
  26. $element_info = $this->container->get('plugin.manager.element_info');
  27. $theme_manager->setActiveTheme($theme_initializer->getActiveThemeByName('classy'));
  28. $this->assertEqual(60, $element_info->getInfo('textfield')['#size']);
  29. $theme_manager->setActiveTheme($theme_initializer->getActiveThemeByName('test_theme'));
  30. $this->assertEqual(40, $element_info->getInfo('textfield')['#size']);
  31. }
  32. }