function ComposerPatchesValidatorTest::testErrorDuringPreApplyWithHelp

Tests that validation errors can carry links to help.

@dataProvider providerErrorDuringPreApply

Parameters

int $in_active: Whether patcher is installed in active.

int $in_stage: Whether patcher is installed in stage.

\Drupal\package_manager\ValidationResult[] $expected_results: The expected validation results.

string[] $help_page_sections: An associative array of fragments (anchors) in the online help. The keys should be the numeric indices of the validation result messages which should link to those fragments.

File

core/modules/package_manager/tests/src/Kernel/ComposerPatchesValidatorTest.php, line 289

Class

ComposerPatchesValidatorTest
@covers \Drupal\package_manager\Validator\ComposerPatchesValidator[[api-linebreak]] @group package_manager @group #slow @internal

Namespace

Drupal\Tests\package_manager\Kernel

Code

public function testErrorDuringPreApplyWithHelp(int $in_active, int $in_stage, array $expected_results, array $help_page_sections) : void {
  $this->enableModules([
    'help',
  ]);
  foreach ($expected_results as $result_index => $result) {
    $messages = $result->messages;
    foreach ($messages as $message_index => $message) {
      if ($help_page_sections[$message_index]) {
        // Get the link to the online documentation for the error message.
        $url = Url::fromRoute('help.page', [
          'name' => 'package_manager',
        ])->setOption('fragment', $help_page_sections[$message_index])
          ->toString();
        // Reformat the provided results so that they all have the link to the
        // online documentation appended to them.
        $messages[$message_index] = $this->t('@message See <a href=":url">the help page</a> for information on how to resolve the problem.', [
          '@message' => $message,
          ':url' => $url,
        ]);
      }
    }
    $expected_results[$result_index] = ValidationResult::createError($messages, $result->summary);
  }
  $this->testErrorDuringPreApply($in_active, $in_stage, $expected_results);
}

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