diff --git a/core/lib/Drupal/Core/Plugin/Context/ContextDefinition.php b/core/lib/Drupal/Core/Plugin/Context/ContextDefinition.php index 5c0e894abf..8bb52772ec 100644 --- a/core/lib/Drupal/Core/Plugin/Context/ContextDefinition.php +++ b/core/lib/Drupal/Core/Plugin/Context/ContextDefinition.php @@ -108,6 +108,8 @@ public function __construct($data_type = 'any', $label = NULL, $required = TRUE, $this->isMultiple = $multiple; $this->description = $description; $this->defaultValue = $default_value; + + assert(strpos($data_type, 'entity:') !== 0 || $this instanceof EntityContextDefinition); } /** diff --git a/core/tests/Drupal/KernelTests/Core/Plugin/ContextDefinitionTest.php b/core/tests/Drupal/KernelTests/Core/Plugin/ContextDefinitionTest.php index 842f76b456..c7fd4e1f6f 100644 --- a/core/tests/Drupal/KernelTests/Core/Plugin/ContextDefinitionTest.php +++ b/core/tests/Drupal/KernelTests/Core/Plugin/ContextDefinitionTest.php @@ -34,4 +34,15 @@ public function testIsSatisfiedBy() { $this->assertTrue($requirement->isSatisfiedBy($context)); } + + /** + * @covers ::__construct + */ + public function testEntityContextDefinitionAssert() { + $this->expectException(\AssertionError::class); + $this->expectExceptionMessage('assert(strpos($data_type, \'entity:\') !== 0 || $this instanceof EntityContextDefinition)'); + new ContextDefinition('entity:entity_test'); + } + + }