GenericRecipeTestBase.php

Same filename and directory in other branches
  1. 11.x core/modules/system/tests/src/Functional/Recipe/GenericRecipeTestBase.php

Namespace

Drupal\Tests\system\Functional\Recipe

File

core/modules/system/tests/src/Functional/Recipe/GenericRecipeTestBase.php

View source
<?php

declare (strict_types=1);
namespace Drupal\Tests\system\Functional\Recipe;

use Drupal\FunctionalTests\Core\Recipe\RecipeTestTrait;
use Drupal\Tests\BrowserTestBase;

/**
 * Runs a series of generic tests for one recipe.
 */
abstract class GenericRecipeTestBase extends BrowserTestBase {
  use RecipeTestTrait;
  
  /**
   * {@inheritdoc}
   */
  protected $profile = 'minimal';
  
  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'stark';
  
  /**
   * Returns the path of the recipe under test.
   *
   * @return string
   *   The absolute path of the recipe that contains this test.
   */
  protected function getRecipePath() : string {
    // Assume this test in located in RECIPE_DIR/tests/src/Functional.
    return dirname((new \ReflectionObject($this))->getFileName(), 4);
  }
  
  /**
   * Applies the recipe under test.
   */
  protected function doApply() : void {
    $this->applyRecipe($this->getRecipePath());
  }
  
  /**
   * Tests that this recipe can be applied multiple times.
   */
  public function testRecipeCanBeApplied() : void {
    $this->setUpCurrentUser(admin: TRUE);
    $this->doApply();
    // Apply the recipe again to prove that it is idempotent.
    $this->doApply();
  }

}

Classes

Title Deprecated Summary
GenericRecipeTestBase Runs a series of generic tests for one recipe.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.