Loading core/modules/views/src/Element/View.php +4 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ namespace Drupal\views\Element; use Drupal\Core\Render\Element\RenderElement; use Drupal\views\Exception\ViewRenderElementException; use Drupal\views\Views; /** Loading Loading @@ -41,6 +42,9 @@ public static function preRenderViewElement($element) { if (!isset($element['#view'])) { $view = Views::getView($element['#name']); if (!$view) { throw new ViewRenderElementException("Invalid View name ({$element['#name']}) given."); } } else { $view = $element['#view']; Loading core/modules/views/src/Exception/ViewRenderElementException.php 0 → 100644 +8 −0 Original line number Diff line number Diff line <?php namespace Drupal\views\Exception; /** * Defines an exception for an invalid View render element. */ class ViewRenderElementException extends \Exception {} core/modules/views/tests/src/Kernel/ViewElementTest.php +16 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ namespace Drupal\Tests\views\Kernel; use Drupal\views\Exception\ViewRenderElementException; use Drupal\views\Views; /** Loading Loading @@ -129,4 +130,19 @@ public function testViewElementEmbed() { $this->assertCount(1, $this->xpath('//form[@class="views-exposed-form"]')); } /** * Tests that an exception is thrown when an invalid View is passed. */ public function testInvalidView() { $renderer = $this->container->get('renderer'); $render_element = [ '#type' => 'view', '#name' => 'invalid_view_name', '#embed' => FALSE, ]; $this->expectException(ViewRenderElementException::class); $this->expectExceptionMessage("Invalid View name ({$render_element['#name']}) given."); $renderer->renderRoot($render_element); } } Loading
core/modules/views/src/Element/View.php +4 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ namespace Drupal\views\Element; use Drupal\Core\Render\Element\RenderElement; use Drupal\views\Exception\ViewRenderElementException; use Drupal\views\Views; /** Loading Loading @@ -41,6 +42,9 @@ public static function preRenderViewElement($element) { if (!isset($element['#view'])) { $view = Views::getView($element['#name']); if (!$view) { throw new ViewRenderElementException("Invalid View name ({$element['#name']}) given."); } } else { $view = $element['#view']; Loading
core/modules/views/src/Exception/ViewRenderElementException.php 0 → 100644 +8 −0 Original line number Diff line number Diff line <?php namespace Drupal\views\Exception; /** * Defines an exception for an invalid View render element. */ class ViewRenderElementException extends \Exception {}
core/modules/views/tests/src/Kernel/ViewElementTest.php +16 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ namespace Drupal\Tests\views\Kernel; use Drupal\views\Exception\ViewRenderElementException; use Drupal\views\Views; /** Loading Loading @@ -129,4 +130,19 @@ public function testViewElementEmbed() { $this->assertCount(1, $this->xpath('//form[@class="views-exposed-form"]')); } /** * Tests that an exception is thrown when an invalid View is passed. */ public function testInvalidView() { $renderer = $this->container->get('renderer'); $render_element = [ '#type' => 'view', '#name' => 'invalid_view_name', '#embed' => FALSE, ]; $this->expectException(ViewRenderElementException::class); $this->expectExceptionMessage("Invalid View name ({$render_element['#name']}) given."); $renderer->renderRoot($render_element); } }