getModuleList(); // Create users. $this->adminUser = $this->drupalCreateUser(array('access administration pages', 'view the administration theme', 'administer permissions')); $this->anyUser = $this->drupalCreateUser(array()); } /** * Logs in users, creates dblog events, and tests dblog functionality. */ public function testHelp() { // Login the root user to ensure as many admin links appear as possible on // the module overview pages. $this->drupalLogin($this->rootUser); $this->verifyHelp(); // Login the regular user. $this->drupalLogin($this->anyUser); $this->verifyHelp(403); // Verify that introductory help text exists, goes for 100% module coverage. $this->drupalLogin($this->adminUser); $this->drupalGet('admin/help'); $this->assertRaw(t('For more information, refer to the subjects listed in the Help Topics section or to the online documentation and support pages at drupal.org.', array('!docs' => 'https://www.drupal.org/documentation', '!support' => 'https://www.drupal.org/support', '!drupal' => 'https://www.drupal.org')), 'Help intro text correctly appears.'); // Verify that help topics text appears. $this->assertRaw('
' . t('Help is available on the following items:') . '
', 'Help topics text correctly appears.'); // Make sure links are properly added for modules implementing hook_help(). foreach ($this->getModuleList() as $module => $name) { $this->assertLink($name, 0, format_string('Link properly added to @name (admin/help/@module)', array('@module' => $module, '@name' => $name))); } // Ensure that module which does not provide an module overview page is // handled correctly. $this->clickLink(\Drupal::moduleHandler()->getName('help_test')); $this->assertRaw(t('No help is available for module %module.', array('%module' => \Drupal::moduleHandler()->getName('help_test')))); } /** * Verifies the logged in user has access to the various help nodes. * * @param integer $response * An HTTP response code. */ protected function verifyHelp($response = 200) { $this->drupalGet('admin/index'); $this->assertResponse($response); if ($response == 200) { $this->assertText('This page shows you all available administration tasks for each module.'); } else { $this->assertNoText('This page shows you all available administration tasks for each module.'); } foreach ($this->getModuleList() as $module => $name) { // View module help node. $this->drupalGet('admin/help/' . $module); $this->assertResponse($response); if ($response == 200) { $this->assertTitle($name . ' | Drupal', format_string('%module title was displayed', array('%module' => $module))); $this->assertRaw('