/**
* Tests form build ID regeneration when loading a cached immutable form.
*/
public function testImmutableForm() { // Request the form with 'cache' query parameter to enable form caching.
$this->
drupalGet('form_test/form-storage',
['query' =>
['cache' => 1, 'immutable' => 1
]]);
// Ensure the hidden 'form_build_id' field is unique.
$this->
assertSession()->
elementsCount('xpath', '//input[@name="form_build_id"]', 1
);
$buildId =
$this->
assertSession()->
hiddenFieldExists('form_build_id'
)->
getValue();
// Trigger validation error by submitting an empty title.
$edit =
['title' => ''
];
$this->
submitForm($edit, 'Continue submit'
);
// Verify that the build-id did change.
$this->
assertSession()->
hiddenFieldValueNotEquals('form_build_id',
$buildId);
// Ensure the hidden 'form_build_id' field is unique.
$this->
assertSession()->
elementsCount('xpath', '//input[@name="form_build_id"]', 1
);