ifthenelse-8.x-1.x-dev-no-core/modules/contrib/default_content/tests/src/Functional/DefaultContentTest.php
modules/contrib/default_content/tests/src/Functional/DefaultContentTest.php
<?php
namespace Drupal\Tests\default_content\Functional;
use Drupal\Core\Config\FileStorage;
use Drupal\simpletest\ContentTypeCreationTrait;
use Drupal\simpletest\NodeCreationTrait;
use Drupal\user\Entity\User;
use Drupal\Tests\BrowserTestBase;
/**
* Test import of default content.
*
* @group default_content
*/
class DefaultContentTest extends BrowserTestBase {
use ContentTypeCreationTrait;
use NodeCreationTrait;
/**
* Modules to enable.
*
* @var array
*/
public static $modules = ['taxonomy', 'hal', 'default_content'];
/**
* {@inheritdoc}
*/
protected function setUp() {
parent::setUp();
// Create user 2 with the correct UUID.
User::create([
'uid' => 2,
'uuid' => 'ab301be5-7017-4ff8-b2d3-09dc0a30bd43',
'name' => 'User 2',
'mail' => 'user2@example.com',
'status' => TRUE,
])->save();
$this->createContentType(['type' => 'page']);
}
/**
* Test importing default content.
*/
public function testImport() {
// Enable the module and import the content.
\Drupal::service('module_installer')->install(['default_content_test'], TRUE);
$this->rebuildContainer();
$this->doPostInstallTests();
}
/**
* Test importing default content via ConfigImporter.
*/
public function testImportViaConfigImporter() {
$sync = $this->container->get('config.storage.sync');
$this->copyConfig($this->container->get('config.storage'), $sync);
// Enable the module using the ConfigImporter.
$extensions = $sync->read('core.extension');
$extensions['module']['default_content_test'] = 0;
$extensions['module'] = module_config_sort($extensions['module']);
$sync->write('core.extension', $extensions);
// Slightly hacky but we need the config from the test module too.
$module_storage = new FileStorage(drupal_get_path('module', 'default_content_test') . '/config/install');
foreach ($module_storage->listAll() as $name) {
$sync->write($name, $module_storage->read($name));
}
$this->configImporter()->import();
$this->doPostInstallTests();
}
/**
* Makes assertions post the install of the default_content_test module.
*/
protected function doPostInstallTests() {
// Login as admin.
$this->drupalLogin($this->drupalCreateUser([], NULL, TRUE));
// Ensure the content contained in the default_content_test module has been
// created correctly.
$node = $this->getNodeByTitle('Imported node');
$this->assertEquals($node->body->value, 'Crikey it works!');
$this->assertEquals($node->getType(), 'page');
$this->assertSame('2', $node->getOwnerId(), 'The node created is owned by user 2');
$node = $this->getNodeByTitle('Imported node with owned by user 1');
$this->assertSame('1', $node->getOwnerId(), 'The node created is owned by user 1');
$node = $this->getNodeByTitle('Imported node with owned by user that does not exist');
$this->assertSame('1', $node->getOwnerId(), 'The node created is owned by user 1');
$terms = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->loadMultiple();
$term = reset($terms);
$this->assertTrue(!empty($term));
$this->assertEquals($term->name->value, 'A tag');
$term_id = $node->field_tags->target_id;
$this->assertTrue(!empty($term_id), 'Term reference populated');
}
}
