NoHelpTest.php

Same filename in other branches
  1. 9 core/modules/help/tests/src/Functional/NoHelpTest.php
  2. 8.9.x core/modules/help/tests/src/Functional/NoHelpTest.php
  3. 11.x core/modules/help/tests/src/Functional/NoHelpTest.php

Namespace

Drupal\Tests\help\Functional

File

core/modules/help/tests/src/Functional/NoHelpTest.php

View source
<?php

declare (strict_types=1);
namespace Drupal\Tests\help\Functional;

use Drupal\Tests\BrowserTestBase;

/**
 * Verify no help is displayed for modules not providing any help.
 *
 * @group help
 */
class NoHelpTest extends BrowserTestBase {
    
    /**
     * Modules to install.
     *
     * Use one of the test modules that do not implement hook_help().
     *
     * @var array
     */
    protected static $modules = [
        'help',
        'menu_test',
    ];
    
    /**
     * {@inheritdoc}
     */
    protected $defaultTheme = 'stark';
    
    /**
     * The user who will be created.
     */
    protected $adminUser;
    
    /**
     * {@inheritdoc}
     */
    protected function setUp() : void {
        parent::setUp();
        $this->adminUser = $this->drupalCreateUser([
            'access help pages',
        ]);
    }
    
    /**
     * Ensures modules not implementing help do not appear on admin/help.
     */
    public function testMainPageNoHelp() : void {
        $this->drupalLogin($this->adminUser);
        $this->drupalGet('admin/help');
        $this->assertSession()
            ->statusCodeEquals(200);
        $this->assertSession()
            ->pageTextContains('Module overviews are provided by modules');
        $this->assertFalse(\Drupal::moduleHandler()->hasImplementations('help', 'menu_test'), 'The menu_test module does not implement hook_help');
        // Make sure the test module menu_test does not display a help link on
        // admin/help.
        $this->assertSession()
            ->pageTextNotContains(\Drupal::service('extension.list.module')->getName('menu_test'));
        // Ensure that the module overview help page for a module that does not
        // implement hook_help() results in a 404.
        $this->drupalGet('admin/help/menu_test');
        $this->assertSession()
            ->statusCodeEquals(404);
    }

}

Classes

Title Deprecated Summary
NoHelpTest Verify no help is displayed for modules not providing any help.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.