function YamlDiscoveryTest::testGetDefinitionsWithTranslatableDefinitions

Same name and namespace in other branches
  1. 9 core/tests/Drupal/Tests/Core/Plugin/Discovery/YamlDiscoveryTest.php \Drupal\Tests\Core\Plugin\Discovery\YamlDiscoveryTest::testGetDefinitionsWithTranslatableDefinitions()
  2. 10 core/tests/Drupal/Tests/Core/Plugin/Discovery/YamlDiscoveryTest.php \Drupal\Tests\Core\Plugin\Discovery\YamlDiscoveryTest::testGetDefinitionsWithTranslatableDefinitions()
  3. 11.x core/tests/Drupal/Tests/Core/Plugin/Discovery/YamlDiscoveryTest.php \Drupal\Tests\Core\Plugin\Discovery\YamlDiscoveryTest::testGetDefinitionsWithTranslatableDefinitions()

@covers ::getDefinitions

File

core/tests/Drupal/Tests/Core/Plugin/Discovery/YamlDiscoveryTest.php, line 73

Class

YamlDiscoveryTest
@coversDefaultClass <a href="/api/drupal/core%21lib%21Drupal%21Core%21Plugin%21Discovery%21YamlDiscovery.php/class/YamlDiscovery/8.9.x" title="Allows YAML files to define plugin definitions." class="local">\Drupal\Core\Plugin\Discovery\YamlDiscovery</a> @group Plugin

Namespace

Drupal\Tests\Core\Plugin\Discovery

Code

public function testGetDefinitionsWithTranslatableDefinitions() {
    vfsStream::setup('root');
    $file_1 = <<<'EOS'
test_plugin:
  title: test title
EOS;
    $file_2 = <<<'EOS'
test_plugin2:
  title: test title2
  title_context: 'test-context'
EOS;
    vfsStream::create([
        'test_1' => [
            'test_1.test.yml' => $file_1,
        ],
        'test_2' => [
            'test_2.test.yml' => $file_2,
        ],
    ]);
    $discovery = new YamlDiscovery('test', [
        'test_1' => vfsStream::url('root/test_1'),
        'test_2' => vfsStream::url('root/test_2'),
    ]);
    $discovery->addTranslatableProperty('title', 'title_context');
    $definitions = $discovery->getDefinitions();
    $this->assertCount(2, $definitions);
    $plugin_1 = $definitions['test_plugin'];
    $plugin_2 = $definitions['test_plugin2'];
    $this->assertInstanceOf(TranslatableMarkup::class, $plugin_1['title']);
    $this->assertEquals([], $plugin_1['title']->getOptions());
    $this->assertInstanceOf(TranslatableMarkup::class, $plugin_2['title']);
    $this->assertEquals([
        'context' => 'test-context',
    ], $plugin_2['title']->getOptions());
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.