Issue #2829791 by YesCT: Fix exception message for MachineNameController replace_token query parameter
parent
f96cbb29eb
commit
f08a8c8318
|
@ -6,9 +6,9 @@ use Drupal\Component\Transliteration\TransliterationInterface;
|
||||||
use Drupal\Component\Utility\Unicode;
|
use Drupal\Component\Utility\Unicode;
|
||||||
use Drupal\Core\Access\CsrfTokenGenerator;
|
use Drupal\Core\Access\CsrfTokenGenerator;
|
||||||
use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
|
use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
|
||||||
use Symfony\Component\HttpFoundation\File\Exception\AccessDeniedException;
|
|
||||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
|
||||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -78,10 +78,10 @@ class MachineNameController implements ContainerInjectionInterface {
|
||||||
|
|
||||||
if (isset($replace_pattern) && isset($replace)) {
|
if (isset($replace_pattern) && isset($replace)) {
|
||||||
if (!isset($replace_token)) {
|
if (!isset($replace_token)) {
|
||||||
throw new AccessDeniedException("Missing 'replace_token' query parameter.");
|
throw new AccessDeniedHttpException("Missing 'replace_token' query parameter.");
|
||||||
}
|
}
|
||||||
elseif (!$this->tokenGenerator->validate($replace_token, $replace_pattern)) {
|
elseif (!$this->tokenGenerator->validate($replace_token, $replace_pattern)) {
|
||||||
throw new AccessDeniedException("Invalid 'replace_token' query parameter.");
|
throw new AccessDeniedHttpException("Invalid 'replace_token' query parameter.");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Quote the pattern delimiter and remove null characters to avoid the e
|
// Quote the pattern delimiter and remove null characters to avoid the e
|
||||||
|
|
|
@ -7,8 +7,8 @@ use Drupal\Tests\UnitTestCase;
|
||||||
use Drupal\Component\Transliteration\PhpTransliteration;
|
use Drupal\Component\Transliteration\PhpTransliteration;
|
||||||
use Drupal\system\MachineNameController;
|
use Drupal\system\MachineNameController;
|
||||||
use Prophecy\Argument;
|
use Prophecy\Argument;
|
||||||
use Symfony\Component\HttpFoundation\File\Exception\AccessDeniedException;
|
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests that the machine name controller can transliterate strings as expected.
|
* Tests that the machine name controller can transliterate strings as expected.
|
||||||
|
@ -103,7 +103,7 @@ class MachineNameControllerTest extends UnitTestCase {
|
||||||
public function testMachineNameControllerWithInvalidReplacePattern() {
|
public function testMachineNameControllerWithInvalidReplacePattern() {
|
||||||
$request = Request::create('', 'GET', ['text' => 'Bob', 'langcode' => 'en', 'replace' => 'Alice', 'replace_pattern' => 'Bob', 'replace_token' => 'invalid']);
|
$request = Request::create('', 'GET', ['text' => 'Bob', 'langcode' => 'en', 'replace' => 'Alice', 'replace_pattern' => 'Bob', 'replace_token' => 'invalid']);
|
||||||
|
|
||||||
$this->setExpectedException(AccessDeniedException::class, "Invalid 'replace_token' query parameter.");
|
$this->setExpectedException(AccessDeniedHttpException::class, "Invalid 'replace_token' query parameter.");
|
||||||
$this->machineNameController->transliterate($request);
|
$this->machineNameController->transliterate($request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -113,7 +113,7 @@ class MachineNameControllerTest extends UnitTestCase {
|
||||||
public function testMachineNameControllerWithMissingToken() {
|
public function testMachineNameControllerWithMissingToken() {
|
||||||
$request = Request::create('', 'GET', ['text' => 'Bob', 'langcode' => 'en', 'replace' => 'Alice', 'replace_pattern' => 'Bob']);
|
$request = Request::create('', 'GET', ['text' => 'Bob', 'langcode' => 'en', 'replace' => 'Alice', 'replace_pattern' => 'Bob']);
|
||||||
|
|
||||||
$this->setExpectedException(AccessDeniedException::class, "Missing 'replace_token' query parameter.");
|
$this->setExpectedException(AccessDeniedHttpException::class, "Missing 'replace_token' query parameter.");
|
||||||
$this->machineNameController->transliterate($request);
|
$this->machineNameController->transliterate($request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue