function MultiFormTest::assertNoDuplicateIds
Asserts that each HTML ID is used for just a single element on the page.
Parameters
string $message: (optional) A message to display with the assertion.
1 call to MultiFormTest::assertNoDuplicateIds()
- MultiFormTest::testMultiForm in core/
tests/ Drupal/ FunctionalJavascriptTests/ Ajax/ MultiFormTest.php - Tests that pages with the 'node_page_form' included twice work correctly.
File
-
core/
tests/ Drupal/ FunctionalJavascriptTests/ Ajax/ MultiFormTest.php, line 122
Class
- MultiFormTest
- Tests that AJAX-enabled forms work when multiple instances of the same form are on a page.
Namespace
Drupal\FunctionalJavascriptTests\AjaxCode
protected function assertNoDuplicateIds($message = '') {
$args = [
'@url' => $this->getUrl(),
];
if (!($elements = $this->xpath('//*[@id]'))) {
$this->fail(new FormattableMarkup('The page @url contains no HTML IDs.', $args));
return;
}
$message = $message ?: new FormattableMarkup('The page @url does not contain duplicate HTML IDs', $args);
$seen_ids = [];
foreach ($elements as $element) {
$id = $element->getAttribute('id');
if (isset($seen_ids[$id])) {
$this->fail($message);
return;
}
$seen_ids[$id] = TRUE;
}
$this->assertTrue(TRUE, $message);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.