D10 Drupal Test Traits DTT - pierregermain/MyDrupal GitHub Wiki
Doc oficial:
https://git.drupalcode.org/project/dtt/
Ejemplos buenos:
https://github.com/openeuropa/oe_showcase/tree/1.x/tests/src
Tipps
- Hacer login con un usuario admin
$user = $this->createUser([], '', TRUE);
$this->drupalLogin($user);
- Hacer login con usuario que tiene todos los permisos del site
$user = $this->createUser();
$permissions = array_keys(\Drupal::service('user.permissions')->getPermissions());
$role_id = $this->createRole($permissions);
$user->addRole($role_id);
$user->save();
$this->drupalLogin($user);
- Creación nodo multilang
/**
* {@inheritdoc}
*/
public function setUp(): void {
parent::setUp();
$this->disableForcedLogin();
}
/**
* {@inheritdoc}
*/
public function tearDown(): void {
$this->restoreConfiguration();
$this->enableForcedLogin();
$this->deleteExtraEntities();
parent::tearDown();
}
/**
* Test site Footer Logo configuration form override.
*/
public function testSiteFooterLogoOverrideForm() {
$user = $this->createUser([], '', TRUE);
$this->drupalLogin($user);
$role = $this->createRole(['administer EWCMS agencies settings']);
$user->addRole($role);
$user->save();
$node = Node::create([
'title' => 'Logo test page',
'type' => 'oe_page',
'moderation_state' => 'draft',
]);
$node->addTranslation('de', ['title' => 'Logo test page german']);
$node->save();
$this->drupalGet($node->toUrl());
$this->drupalGet('/node/' . $node->id() . '_de', ['external' => FALSE]);
$this->assertSession()->statusCodeEquals(200);
}