Skip to content
Snippets Groups Projects
Commit 10400bd3 authored by catch's avatar catch
Browse files

Issue #2965929 by jhedstrom, dimitriskr, kkalashnikov, sun, Lendude,...

Issue #2965929 by jhedstrom, dimitriskr, kkalashnikov, sun, Lendude, DanielVeza: DX: Insufficient error message "The form argument is not a valid form."

(cherry picked from commit 12e26bd4)
parent ec7e255f
No related branches found
No related tags found
17 merge requests!8506Draft: Issue #3456536 by ibrahim tameme,!5646Issue #3350972 by nod_: [random test failure]...,!5600Issue #3350972 by nod_: [random test failure]...,!5343Issue #3305066 by quietone, Rename RedirectLeadingSlashesSubscriber,!3603#ISSUE 3346218 Add a different message on edit comment,!3555Issue #2473873: Views entity operations lack cacheability support, resulting in incorrect dropbuttons,!3494Issue #3327018 by Spokje, longwave, xjm, mondrake: Update PHPStan to 1.9.3 and...,!3410Issue #3340128: UserLoginForm::submitForm has some dead code,!3389Issue #3325184 by Spokje, andypost, xjm, smustgrave: $this->configFactory is...,!3381Issue #3332363: Refactor Claro's menus-and-lists stylesheet,!3307Issue #3326193: CKEditor 5 can grow past the viewport when there is a lot of content,!3236Issue #3332419: Refactor Claro's messages stylesheet,!3231Draft: Issue #3049525 by longwave, fougere, larowlan, kim.pepper, AaronBauman, Wim...,!3212Issue #3294003: Refactor Claro's entity-meta stylesheet,!3194Issue #3330981: Fix PHPStan L1 error "Relying on entity queries to check access by default is deprecated...",!3143Issue #3313342: [PHP 8.1] Deprecated function: strpos(): Passing null to parameter #1 LayoutBuilderUiCacheContext.php on line 28,!2972Issue #1845004: Replace custom password hashing library with PHP 5.5 password_hash()
...@@ -193,8 +193,11 @@ public function getFormId($form_arg, FormStateInterface &$form_state) { ...@@ -193,8 +193,11 @@ public function getFormId($form_arg, FormStateInterface &$form_state) {
$form_arg = $this->classResolver->getInstanceFromDefinition($form_arg); $form_arg = $this->classResolver->getInstanceFromDefinition($form_arg);
} }
if (!is_object($form_arg) || !($form_arg instanceof FormInterface)) { if (!is_object($form_arg)) {
throw new \InvalidArgumentException("The form argument $form_arg is not a valid form."); throw new \InvalidArgumentException(("The form class $form_arg could not be found or loaded."));
}
elseif (!($form_arg instanceof FormInterface)) {
throw new \InvalidArgumentException('The form argument ' . $form_arg::class . ' must be an instance of \Drupal\Core\Form\FormInterface.');
} }
// Add the $form_arg as the callback object and determine the form ID. // Add the $form_arg as the callback object and determine the form ID.
......
...@@ -53,12 +53,25 @@ protected function setUp(): void { ...@@ -53,12 +53,25 @@ protected function setUp(): void {
/** /**
* Tests the getFormId() method with a string based form ID. * Tests the getFormId() method with a string based form ID.
*
* @covers ::getFormId
*/ */
public function testGetFormIdWithString() { public function testGetFormIdWithString() {
$form_arg = 'foo'; $form_arg = 'foo';
$form_state = new FormState(); $form_state = new FormState();
$this->expectException(\InvalidArgumentException::class); $this->expectException(\InvalidArgumentException::class);
$this->expectExceptionMessage('The form argument foo is not a valid form.'); $this->expectExceptionMessage('The form class foo could not be found or loaded.');
$this->formBuilder->getFormId($form_arg, $form_state);
}
/**
* @covers ::getFormId
*/
public function testGetFormIdWithNonFormClass() {
$form_arg = __CLASS__;
$form_state = new FormState();
$this->expectException(\InvalidArgumentException::class);
$this->expectExceptionMessage("The form argument $form_arg must be an instance of \Drupal\Core\Form\FormInterface.");
$this->formBuilder->getFormId($form_arg, $form_state); $this->formBuilder->getFormId($form_arg, $form_state);
} }
...@@ -217,7 +230,7 @@ public function testHandleRedirectWithResponse() { ...@@ -217,7 +230,7 @@ public function testHandleRedirectWithResponse() {
public function testGetFormWithString() { public function testGetFormWithString() {
$form_id = 'test_form_id'; $form_id = 'test_form_id';
$this->expectException(\InvalidArgumentException::class); $this->expectException(\InvalidArgumentException::class);
$this->expectExceptionMessage('The form argument test_form_id is not a valid form.'); $this->expectExceptionMessage('The form class test_form_id could not be found or loaded.');
$this->formBuilder->getForm($form_id); $this->formBuilder->getForm($form_id);
} }
...@@ -256,7 +269,7 @@ public function testGetFormWithClassString() { ...@@ -256,7 +269,7 @@ public function testGetFormWithClassString() {
public function testBuildFormWithString() { public function testBuildFormWithString() {
$form_id = 'test_form_id'; $form_id = 'test_form_id';
$this->expectException(\InvalidArgumentException::class); $this->expectException(\InvalidArgumentException::class);
$this->expectExceptionMessage('The form argument test_form_id is not a valid form.'); $this->expectExceptionMessage('The form class test_form_id could not be found or loaded.');
$this->formBuilder->getForm($form_id); $this->formBuilder->getForm($form_id);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment