1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?php
- namespace Drupal\KernelTests\Core\Plugin\Condition;
- use Drupal\Core\Plugin\Context\Context;
- use Drupal\Core\Plugin\Context\ContextDefinition;
- use Drupal\KernelTests\KernelTestBase;
- use Drupal\node\Entity\Node;
- use Drupal\node\Entity\NodeType;
- /**
- * Tests a condition with optional context.
- *
- * @group condition_test
- */
- class OptionalContextConditionTest extends KernelTestBase {
- /**
- * {@inheritdoc}
- */
- public static $modules = ['system', 'user', 'condition_test', 'node'];
- /**
- * Tests with both contexts mapped to the same user.
- */
- public function testContextMissing() {
- /** @var \Drupal\Core\Condition\ConditionPluginBase $condition */
- $condition = \Drupal::service('plugin.manager.condition')
- ->createInstance('condition_test_optional_context')
- ->setContextMapping([
- 'node' => 'node',
- ]);
- \Drupal::service('context.handler')->applyContextMapping($condition, []);
- $this->assertTrue($condition->execute());
- }
- /**
- * Tests with both contexts mapped to the same user.
- */
- public function testContextNoValue() {
- /** @var \Drupal\Core\Condition\ConditionPluginBase $condition */
- $condition = \Drupal::service('plugin.manager.condition')
- ->createInstance('condition_test_optional_context')
- ->setContextMapping([
- 'node' => 'node',
- ]);
- $definition = new ContextDefinition('entity:node');
- $contexts['node'] = (new Context($definition));
- \Drupal::service('context.handler')->applyContextMapping($condition, $contexts);
- $this->assertTrue($condition->execute());
- }
- /**
- * Tests with both contexts mapped to the same user.
- */
- public function testContextAvailable() {
- NodeType::create(['type' => 'example', 'name' => 'Example'])->save();
- /** @var \Drupal\Core\Condition\ConditionPluginBase $condition */
- $condition = \Drupal::service('plugin.manager.condition')
- ->createInstance('condition_test_optional_context')
- ->setContextMapping([
- 'node' => 'node',
- ]);
- $definition = new ContextDefinition('entity:node');
- $node = Node::create(['type' => 'example']);
- $contexts['node'] = new Context($definition, $node);
- \Drupal::service('context.handler')->applyContextMapping($condition, $contexts);
- $this->assertFalse($condition->execute());
- }
- }
|