function HelpTopicTest::testHelp
Same name in other branches
- 9 core/modules/help_topics/tests/src/Functional/HelpTopicTest.php \Drupal\Tests\help_topics\Functional\HelpTopicTest::testHelp()
- 8.9.x core/modules/help_topics/tests/src/Functional/HelpTopicTest.php \Drupal\Tests\help_topics\Functional\HelpTopicTest::testHelp()
- 11.x core/modules/help/tests/src/Functional/HelpTopicTest.php \Drupal\Tests\help\Functional\HelpTopicTest::testHelp()
Tests the main help page and individual pages for topics.
File
-
core/
modules/ help/ tests/ src/ Functional/ HelpTopicTest.php, line 97
Class
- HelpTopicTest
- Verifies help topic display and user access to help based on permissions.
Namespace
Drupal\Tests\help\FunctionalCode
public function testHelp() : void {
$session = $this->assertSession();
// Log in the regular user.
$this->drupalLogin($this->anyUser);
$this->verifyHelp(403);
// Log in the admin user.
$this->drupalLogin($this->adminUser);
$this->verifyHelp();
$this->verifyBreadCrumb();
// Verify that help topics text appears on admin/help, and cache tags.
$this->drupalGet('admin/help');
$session->responseContains('<h2>Topics</h2>');
$session->pageTextContains('Topics can be provided by modules or themes');
$session->responseHeaderContains('X-Drupal-Cache-Tags', 'core.extension');
// Verify links for help topics and order.
$page_text = $this->getTextContent();
$start = strpos($page_text, 'Topics can be provided');
$pos = $start;
foreach ($this->getTopicList() as $info) {
$name = $info['name'];
$session->linkExists($name);
$new_pos = strpos($page_text, $name, $start);
$this->assertGreaterThan($pos, $new_pos, "Order of {$name} is not correct on page");
$pos = $new_pos;
}
// Ensure the plugin manager alter hook works as expected.
$session->linkExists('ABC Help Test module');
\Drupal::state()->set('help_topics_test.test:top_level', FALSE);
\Drupal::service('plugin.manager.help_topic')->clearCachedDefinitions();
$this->drupalGet('admin/help');
$session->linkNotExists('ABC Help Test module');
\Drupal::state()->set('help_topics_test.test:top_level', TRUE);
\Drupal::service('plugin.manager.help_topic')->clearCachedDefinitions();
$this->drupalGet('admin/help');
// Ensure all the expected links are present before uninstalling.
$session->linkExists('ABC Help Test module');
$session->linkExists('ABC Help Test');
$session->linkExists('XYZ Help Test theme');
// Uninstall the test module and verify the topics are gone, after
// reloading page.
$this->container
->get('module_installer')
->uninstall([
'help_topics_test',
]);
$this->drupalGet('admin/help');
$session->linkNotExists('ABC Help Test module');
$session->linkNotExists('ABC Help Test');
$session->linkExists('XYZ Help Test theme');
// Uninstall the test theme and verify the topic is gone.
$this->container
->get('theme_installer')
->uninstall([
'help_topics_test_theme',
]);
$this->drupalGet('admin/help');
$session->linkNotExists('XYZ Help Test theme');
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.