function NodeLanguageTest::setUp
Same name in other branches
- 8.9.x core/modules/node/tests/src/Functional/Views/NodeLanguageTest.php \Drupal\Tests\node\Functional\Views\NodeLanguageTest::setUp()
- 10 core/modules/node/tests/src/Functional/Views/NodeLanguageTest.php \Drupal\Tests\node\Functional\Views\NodeLanguageTest::setUp()
- 11.x core/modules/node/tests/src/Functional/Views/NodeLanguageTest.php \Drupal\Tests\node\Functional\Views\NodeLanguageTest::setUp()
Overrides NodeTestBase::setUp
File
-
core/
modules/ node/ tests/ src/ Functional/ Views/ NodeLanguageTest.php, line 46
Class
- NodeLanguageTest
- Tests node language fields, filters, and sorting.
Namespace
Drupal\Tests\node\Functional\ViewsCode
protected function setUp($import_test_views = TRUE, $modules = []) : void {
parent::setUp(FALSE, $modules);
// Create Page content type.
if ($this->profile != 'standard') {
$this->drupalCreateContentType([
'type' => 'page',
'name' => 'Basic page',
]);
ViewTestData::createTestViews(static::class, [
'node_test_views',
]);
}
// Add two new languages.
ConfigurableLanguage::createFromLangcode('fr')->save();
ConfigurableLanguage::createFromLangcode('es')->save();
// Make the body field translatable. The title is already translatable by
// definition.
$field_storage = FieldStorageConfig::loadByName('node', 'body');
$field_storage->setTranslatable(TRUE);
$field_storage->save();
// Set up node titles. They should not include the words "French",
// "English", or "Spanish", as there is a language field in the view
// that prints out those words.
$this->nodeTitles = [
LanguageInterface::LANGCODE_NOT_SPECIFIED => [
'First node und',
],
'es' => [
'Primero nodo es',
'Segundo nodo es',
'Tercera nodo es',
],
'en' => [
'First node en',
'Second node en',
],
'fr' => [
'Premier nœud fr',
],
];
// Create nodes with translations.
foreach ($this->nodeTitles['es'] as $index => $title) {
$node = $this->drupalCreateNode([
'title' => $title,
'langcode' => 'es',
'type' => 'page',
'promote' => 1,
]);
foreach ([
'en',
'fr',
] as $langcode) {
if (isset($this->nodeTitles[$langcode][$index])) {
$translation = $node->addTranslation($langcode, [
'title' => $this->nodeTitles[$langcode][$index],
]);
$translation->body->value = $this->randomMachineName(32);
}
}
$node->save();
}
// Create non-translatable nodes.
foreach ($this->nodeTitles[LanguageInterface::LANGCODE_NOT_SPECIFIED] as $index => $title) {
$node = $this->drupalCreateNode([
'title' => $title,
'langcode' => LanguageInterface::LANGCODE_NOT_SPECIFIED,
'type' => 'page',
'promote' => 1,
]);
$node->body->value = $this->randomMachineName(32);
$node->save();
}
$user = $this->drupalCreateUser([
'access content overview',
'access content',
]);
$this->drupalLogin($user);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.