function AnnotationProcessingTest::testTranslationSquelching

Make sure @ Translation annotations do not leak out into the wild.

File

tests/src/Unit/Integration/Engine/AnnotationProcessingTest.php, line 30

Class

AnnotationProcessingTest
Tests processing of the ContextDefinition annotation.

Namespace

Drupal\Tests\rules\Unit\Integration\Engine

Code

public function testTranslationSquelching() {
    // Get a sample Rules plugin.
    $plugin = $this->conditionManager
        ->createInstance('rules_list_contains');
    $context = $plugin->getContext('list');
    $definition = $context->getContextDefinition();
    // These can reasonably be either strings or TranslatableMarkup objects,
    // but never Translation objects.
    $label = $definition->getLabel();
    $description = $definition->getDescription();
    $this->assertNotInstanceOf(Translation::class, $label, 'Label is not a Translation object');
    $this->assertNotInstanceOf(Translation::class, $description, 'Description is not a Translation object');
    // Check also the toArray() path.
    $definition = $context->getContextDefinition();
    $values = $definition->toArray();
    $label = $values['label'];
    $description = $values['description'];
    $this->assertNotInstanceOf(Translation::class, $label, "\$values['label'] is not a Translation object");
    $this->assertNotInstanceOf(Translation::class, $description, "\$values['description'] is not a Translation object");
}