diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/lib/Drupal/Core/Plugin/Context/ContextDefinition.php | 3 | ||||
-rw-r--r-- | core/tests/Drupal/KernelTests/Core/Plugin/ContextDefinitionTest.php | 8 |
2 files changed, 11 insertions, 0 deletions
diff --git a/core/lib/Drupal/Core/Plugin/Context/ContextDefinition.php b/core/lib/Drupal/Core/Plugin/Context/ContextDefinition.php index 8bb52772ec30..05887d3da1f0 100644 --- a/core/lib/Drupal/Core/Plugin/Context/ContextDefinition.php +++ b/core/lib/Drupal/Core/Plugin/Context/ContextDefinition.php @@ -80,6 +80,9 @@ class ContextDefinition implements ContextDefinitionInterface { * The created context definition object. */ public static function create($data_type = 'any') { + if (strpos($data_type, 'entity:') === 0) { + return new EntityContextDefinition($data_type); + } return new static( $data_type ); diff --git a/core/tests/Drupal/KernelTests/Core/Plugin/ContextDefinitionTest.php b/core/tests/Drupal/KernelTests/Core/Plugin/ContextDefinitionTest.php index 7e10996b5bb9..bb9fd968ca25 100644 --- a/core/tests/Drupal/KernelTests/Core/Plugin/ContextDefinitionTest.php +++ b/core/tests/Drupal/KernelTests/Core/Plugin/ContextDefinitionTest.php @@ -4,6 +4,7 @@ namespace Drupal\KernelTests\Core\Plugin; use Drupal\Core\Plugin\Context\ContextDefinition; use Drupal\Core\Plugin\Context\EntityContext; +use Drupal\Core\Plugin\Context\EntityContextDefinition; use Drupal\entity_test\Entity\EntityTest; use Drupal\KernelTests\KernelTestBase; @@ -43,4 +44,11 @@ class ContextDefinitionTest extends KernelTestBase { new ContextDefinition('entity:entity_test'); } + /** + * @covers ::create + */ + public function testCreateWithEntityDataType() { + $this->assertInstanceOf(EntityContextDefinition::class, ContextDefinition::create('entity:user')); + } + } |