logo

Types de blocs supplémentaires (EBT) – Nouvelle expérience de Layout Builder❗

Types de blocs supplémentaires (EBT) – types de blocs stylisés et personnalisables : diaporamas, onglets, cartes, accordéons et bien d’autres. Paramètres intégrés pour l’arrière-plan, la boîte DOM, les plugins JavaScript. Découvrez dès aujourd’hui le futur de la création de mises en page.

Démo des modules EBT Télécharger les modules EBT

❗Types de paragraphes supplémentaires (EPT) – Nouvelle expérience Paragraphes

Types de paragraphes supplémentaires (EPT) – ensemble de modules basé sur les paragraphes analogiques.

Démo des modules EPT Télécharger les modules EPT

Défilement
05/07/2025, by Ivan

Menu

Partie VI — guide pratique pour créer des modules de base Drupal 8
De .info aux tests, les bases seulement

Si vous avez suivi depuis le début ce guide pratique pour créer des modules de base Drupal 8, vous êtes maintenant prêt pour un contrôle qualité. Si vous souhaitez simplement essayer rapidement, vous pouvez obtenir le module Lorem ipsum directement depuis Drupal.

Vérifions que le module fonctionne comme prévu en écrivant quelques tests que vous pouvez lancer via Drupal lui-même.

/tests/src/Functional/LoremIpsumTest.php

<?php

namespace Drupal\Tests\loremipsum\Functional;

use Drupal\Tests\BrowserTestBase;

/**
 * Tests pour le module Lorem Ipsum.
 *
 * @group loremipsum
 */
class LoremIpsumTests extends BrowserTestBase {

  /**
   * Modules à installer.
   *
   * @var array
   */
  protected static $modules = ['loremipsum'];

  /**
   * Un utilisateur simple.
   *
   * @var \Drupal\user\Entity\User
   */
  private $user;

  /**
   * Effectue la configuration initiale avant chaque test.
   */
  public function setUp() {
    parent::setUp();
    $this->user = $this->drupalCreateUser([
      'administer site configuration',
      'generate lorem ipsum',
    ]);
  }
}

Les tests commencent par étendre la classe BrowserTestBase. Notez que Drupal exécute les tests dans une base de données de test, créée, remplie si besoin, puis détruite. Cela signifie que vous pouvez tester en développement, staging, voire — si vous osez ! — en production.

Comme vous le voyez ci-dessus, la première étape est une configuration initiale en déclarant les modules à tester (uniquement pour le test), en créant un utilisateur de test et en lui donnant les permissions nécessaires.

Ensuite, nous testons l’accès à la page fictive de génération de texte :

/**
 * Teste que la page Lorem ipsum est accessible.
 */
public function testLoremIpsumPageExists() {
  // Connexion.
  $this->drupalLogin($this->user);

  // Test du générateur :
  $this->drupalGet('loremipsum/generate/4/20');
  $this->assertSession()->statusCodeEquals(200);
}

Et le formulaire de configuration :

/**
 * Teste le formulaire de configuration.
 */
public function testConfigForm() {
  // Connexion.
  $this->drupalLogin($this->user);

  // Accès à la page de config.
  $this->drupalGet('admin/config/development/loremipsum');
  $this->assertSession()->statusCodeEquals(200);
  // Vérifie que les champs existent et ont les valeurs par défaut.
  $config = $this->config('loremipsum.settings');
  $this->assertSession()->fieldValueEquals(
    'page_title',
    $config->get('loremipsum.page_title'),
  );
  $this->assertSession()->fieldValueEquals(
    'source_text',
    $config->get('loremipsum.source_text'),
  );
}

Puis nous testons la soumission du formulaire de configuration :

// Test de la soumission du formulaire.
$this->drupalPostForm(NULL, [
  'page_title' => 'Test lorem ipsum',
  'source_text' => "Test phrase 1 \nTest phrase 2 \nTest phrase 3 \n",
], t('Save configuration'));
$this->assertSession()->pageTextContains('The configuration options have been saved.');

Et on vérifie que les nouvelles valeurs sont bien présentes :

// Vérifie que les nouvelles valeurs sont présentes.
$this->drupalGet('admin/config/development/loremipsum');
$this->assertSession()->statusCodeEquals(200);
$this->assertSession()->fieldValueEquals(
  'page_title',
  'Test lorem ipsum',
);
$this->assertSession()->fieldValueEquals(
  'source_text',
  "Test phrase 1 \nTest phrase 2 \nTest phrase 3 \n",
);
}

Pour exécuter les tests :
1. Activez les modules CORE Test et Development : Lorem ipsum
2. Allez sur admin/config/development/testing
3. Sélectionnez le test « Loremipsum »
4. Cliquez sur « Exécuter les tests »

Et c’est tout pour cette leçon ! Si vous le souhaitez, prenez une copie de ce code sur la page du projet Lorem ipsum — notez que la version actuelle du développeur inclut un thème intégré. Par ailleurs, si vous avez des questions, n’hésitez pas à me contacter. Bon codage !