3 namespace Drupal\Tests\Core\Annotation;
5 use Drupal\Core\Annotation\Translation;
6 use Drupal\Core\DependencyInjection\ContainerBuilder;
7 use Drupal\Tests\UnitTestCase;
10 * @coversDefaultClass \Drupal\Core\Annotation\Translation
13 class TranslationTest extends UnitTestCase {
16 * The translation manager used for testing.
18 * @var \Drupal\Core\StringTranslation\TranslationInterface|\PHPUnit_Framework_MockObject_MockObject
20 protected $translationManager;
25 protected function setUp() {
26 $this->translationManager = $this->getStringTranslationStub();
32 * @dataProvider providerTestGet
34 public function testGet(array $values, $expected) {
35 $container = new ContainerBuilder();
36 $container->set('string_translation', $this->translationManager);
37 \Drupal::setContainer($container);
39 $arguments = isset($values['arguments']) ? $values['arguments'] : [];
40 $options = isset($values['context']) ? [
41 'context' => $values['context'],
44 $annotation = new Translation($values);
46 $this->assertSame($expected, (string) $annotation->get());
50 * Provides data to self::testGet().
52 public function providerTestGet() {
60 $random = $this->randomMachineName();
61 $random_html_entity = '&' . $random;
64 'value' => 'Foo @bar @baz %qux',
67 '@baz' => $random_html_entity,
68 '%qux' => $random_html_entity,
70 'context' => $this->randomMachineName(),
72 'Foo ' . $random . ' &' . $random . ' <em class="placeholder">&' . $random . '</em>',