public function DefaultViewsTest::clickViewsOperationLink in Drupal 9
Same name and namespace in other branches
- 8 core/modules/views_ui/tests/src/Functional/DefaultViewsTest.php \Drupal\Tests\views_ui\Functional\DefaultViewsTest::clickViewsOperationLink()
Click a link to perform an operation on a view.
In general, we expect lots of links titled "enable" or "disable" on the various views listing pages, and they might have tokens in them. So we need special code to find the correct one to click.
Parameters
$label: Text between the anchor tags of the desired link.
$unique_href_part: A unique string that is expected to occur within the href of the desired link. For example, if the link URL is expected to look like "admin/structure/views/view/glossary/*", then "/glossary/" could be passed as the expected unique string.
Return value
The page content that results from clicking on the link, or FALSE on failure. Failure also results in a failed assertion.
2 calls to DefaultViewsTest::clickViewsOperationLink()
- DefaultViewsTest::testDefaultViews in core/
modules/ views_ui/ tests/ src/ Functional/ DefaultViewsTest.php - Tests default views.
- DefaultViewsTest::testSplitListing in core/
modules/ views_ui/ tests/ src/ Functional/ DefaultViewsTest.php - Tests that enabling views moves them to the correct table.
File
- core/
modules/ views_ui/ tests/ src/ Functional/ DefaultViewsTest.php, line 240
Class
- DefaultViewsTest
- Tests enabling, disabling, and reverting default views via the listing page.
Namespace
Drupal\Tests\views_ui\FunctionalCode
public function clickViewsOperationLink($label, $unique_href_part) {
$links = $this
->xpath('//a[normalize-space(text())=:label]', [
':label' => (string) $label,
]);
foreach ($links as $link_index => $link) {
$position = strpos($link
->getAttribute('href'), $unique_href_part);
if ($position !== FALSE) {
$index = $link_index;
break;
}
}
$this
->assertTrue(isset($index), new FormattableMarkup('Link to "@label" containing @part found.', [
'@label' => $label,
'@part' => $unique_href_part,
]));
if (isset($index)) {
return $this
->clickLink((string) $label, $index);
}
else {
return FALSE;
}
}