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);
  }