summaryrefslogtreecommitdiffstatshomepage
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/lib/Drupal/Core/Plugin/Context/ContextDefinition.php3
-rw-r--r--core/tests/Drupal/KernelTests/Core/Plugin/ContextDefinitionTest.php8
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'));
+ }
+
}