Skip to content
Snippets Groups Projects
Commit 12e26bd4 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."
parent 43a384ba
No related branches found
No related tags found
36 merge requests!7452Issue #1797438. HTML5 validation is preventing form submit and not fully...,!54479.5.x SF update,!5014Issue #3071143: Table Render Array Example Is Incorrect,!4868Issue #1428520: Improve menu parent link selection,!4289Issue #1344552 by marcingy, Niklas Fiekas, Ravi.J, aleevas, Eduardo Morales...,!4114Issue #2707291: Disable body-level scrolling when a dialog is open as a modal,!4100Issue #3249600: Add support for PHP 8.1 Enums as allowed values for list_* data types,!3630Issue #2815301 by Chi, DanielVeza, kostyashupenko, smustgrave: Allow to create...,!3600Issue #3344629: Passing null to parameter #1 ($haystack) of type string is deprecated,!3291Issue #3336463: Rewrite rules for gzipped CSS and JavaScript aggregates never match,!3102Issue #3164428 by DonAtt, longwave, sahil.goyal, Anchal_gupta, alexpott: Use...,!2378Issue #2875033: Optimize joins and table selection in SQL entity query implementation,!2334Issue #3228209: Add hasRole() method to AccountInterface,!2074Issue #2707689: NodeForm::actions() checks for delete access on new entities,!2062Issue #3246454: Add weekly granularity to views date sort,!1591Issue #3199697: Add JSON:API Translation experimental module,!1484Exposed filters get values from URL when Ajax is on,!1255Issue #3238922: Refactor (if feasible) uses of the jQuery serialize function to use vanillaJS,!1254Issue #3238915: Refactor (if feasible) uses of the jQuery ready function to use VanillaJS,!1162Issue #3100350: Unable to save '/' root path alias,!1105Issue #3025039: New non translatable field on translatable content throws error,!1073issue #3191727: Focus states on mobile second level navigation items fixed,!10223132456: Fix issue where views instances are emptied before an ajax request is complete,!957Added throwing of InvalidPluginDefinitionException from getDefinition().,!925Issue #2339235: Remove taxonomy hard dependency on node module,!877Issue #2708101: Default value for link text is not saved,!873Issue #2875228: Site install not using batch API service,!872Draft: Issue #3221319: Race condition when creating menu links and editing content deletes menu links,!844Resolve #3036010 "Updaters",!712Issue #2909128: Autocomplete intermittent on Chrome Android,!617Issue #3043725: Provide a Entity Handler for user cancelation,!579Issue #2230909: Simple decimals fail to pass validation,!560Move callback classRemove outside of the loop,!555Issue #3202493,!485Sets the autocomplete attribute for username/password input field on login form.,!30Issue #3182188: Updates composer usage to point at ./vendor/bin/composer
This commit is part of merge request !2074. Comments created here will be created in the context of that merge request.
......@@ -193,8 +193,11 @@ public function getFormId($form_arg, FormStateInterface &$form_state) {
$form_arg = $this->classResolver->getInstanceFromDefinition($form_arg);
}
if (!is_object($form_arg) || !($form_arg instanceof FormInterface)) {
throw new \InvalidArgumentException("The form argument $form_arg is not a valid form.");
if (!is_object($form_arg)) {
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.
......
......@@ -53,12 +53,25 @@ protected function setUp(): void {
/**
* Tests the getFormId() method with a string based form ID.
*
* @covers ::getFormId
*/
public function testGetFormIdWithString() {
$form_arg = 'foo';
$form_state = new FormState();
$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);
}
......@@ -217,7 +230,7 @@ public function testHandleRedirectWithResponse() {
public function testGetFormWithString() {
$form_id = 'test_form_id';
$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);
}
......@@ -256,7 +269,7 @@ public function testGetFormWithClassString() {
public function testBuildFormWithString() {
$form_id = 'test_form_id';
$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);
}
......
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