JsonApiFunctionalMultilingualTest.php in JSON:API 8
File
tests/src/Functional/JsonApiFunctionalMultilingualTest.php
View source
<?php
namespace Drupal\Tests\jsonapi\Functional;
use Drupal\Component\Serialization\Json;
use Drupal\language\Entity\ConfigurableLanguage;
class JsonApiFunctionalMultilingualTest extends JsonApiFunctionalTestBase {
public static $modules = [
'basic_auth',
'jsonapi',
'serialization',
'node',
'image',
'taxonomy',
'link',
'language',
];
protected function setUp() {
parent::setUp();
$language = ConfigurableLanguage::createFromLangcode('ca');
$language
->save();
$this
->rebuildContainer();
\Drupal::configFactory()
->getEditable('language.negotiation')
->set('url.prefixes.ca', 'ca')
->save();
}
public function testReadMultilingual() {
$this
->createDefaultContent(5, 5, TRUE, TRUE, static::IS_MULTILINGUAL, FALSE);
$output = Json::decode($this
->drupalGet('/ca/jsonapi/node/article/' . $this->nodes[0]
->uuid(), [
'query' => [
'include' => 'field_tags,field_image',
],
]));
$this
->assertEquals($this->nodes[0]
->getTranslation('ca')
->getTitle(), $output['data']['attributes']['title']);
$included_tags = array_filter($output['included'], function ($entry) {
return $entry['type'] === 'taxonomy_term--tags';
});
$tag_name = $this->nodes[0]
->get('field_tags')->entity
->getTranslation('ca')
->getName();
$this
->assertEquals($tag_name, reset($included_tags)['attributes']['name']);
$output = Json::decode($this
->drupalGet('/ca/jsonapi/node/article/' . $this->nodes[0]
->uuid()));
$this
->assertEquals($this->nodes[0]
->getTranslation('ca')
->getTitle(), $output['data']['attributes']['title']);
$output = Json::decode($this
->drupalGet('/ca/jsonapi/node/article'));
$this
->assertEquals($this->nodes[0]
->getTranslation('ca')
->getTitle(), $output['data'][0]['attributes']['title']);
}
}