More updates to stop using dev or alpha or beta versions.
[yaffs-website] / web / core / tests / Drupal / Tests / Core / Annotation / TranslationTest.php
1 <?php
2
3 namespace Drupal\Tests\Core\Annotation;
4
5 use Drupal\Core\Annotation\Translation;
6 use Drupal\Core\DependencyInjection\ContainerBuilder;
7 use Drupal\Tests\UnitTestCase;
8
9 /**
10  * @coversDefaultClass \Drupal\Core\Annotation\Translation
11  * @group Annotation
12  */
13 class TranslationTest extends UnitTestCase {
14
15   /**
16    * The translation manager used for testing.
17    *
18    * @var \Drupal\Core\StringTranslation\TranslationInterface|\PHPUnit_Framework_MockObject_MockObject
19    */
20   protected $translationManager;
21
22   /**
23    * {@inheritdoc}
24    */
25   protected function setUp() {
26     $this->translationManager = $this->getStringTranslationStub();
27   }
28
29   /**
30    * @covers ::get
31    *
32    * @dataProvider providerTestGet
33    */
34   public function testGet(array $values, $expected) {
35     $container = new ContainerBuilder();
36     $container->set('string_translation', $this->translationManager);
37     \Drupal::setContainer($container);
38
39     $arguments = isset($values['arguments']) ? $values['arguments'] : [];
40     $options = isset($values['context']) ? [
41       'context' => $values['context'],
42     ] : [];
43
44     $annotation = new Translation($values);
45
46     $this->assertSame($expected, (string) $annotation->get());
47   }
48
49   /**
50    * Provides data to self::testGet().
51    */
52   public function providerTestGet() {
53     $data = [];
54     $data[] = [
55       [
56         'value' => 'Foo',
57       ],
58       'Foo'
59     ];
60     $random = $this->randomMachineName();
61     $random_html_entity = '&' . $random;
62     $data[] = [
63       [
64         'value' => 'Foo @bar @baz %qux',
65         'arguments' => [
66           '@bar' => $random,
67           '@baz' => $random_html_entity,
68           '%qux' => $random_html_entity,
69         ],
70         'context' => $this->randomMachineName(),
71       ],
72       'Foo ' . $random . ' &amp;' . $random . ' <em class="placeholder">&amp;' . $random . '</em>',
73     ];
74
75     return $data;
76   }
77
78 }