gin_toolbar_custom_menu-1.0.0/tests/src/Functional/GinToolbarCustomMenuFunctionalTest.php

tests/src/Functional/GinToolbarCustomMenuFunctionalTest.php
<?php

namespace Drupal\Tests\gin_toolbar_custom_menu\Functional;

use Drupal\Tests\BrowserTestBase;
use Drupal\user\Entity\User;

/**
 * Tests gin_toolbar_custom_menu Install / Uninstall logic.
 */
class GinToolbarCustomMenuFunctionalTest extends BrowserTestBase {

  /**
   * Set default theme to stable.
   *
   * @var string
   */
  protected $defaultTheme = 'stark';

  /**
   * Modules to enable.
   *
   * @var array
   */
  protected static $modules = [
    'block',
    'toolbar',
    'breakpoint',
    'menu_ui',
  ];

  /**
   * {@inheritdoc}
   */
  protected function setUp(): void {
    parent::setUp();

    $this->assertTrue(\Drupal::service('theme_installer')->install(['gin']));
    $this->container->get('module_installer')->install(['gin_toolbar'], FALSE);
    $this->container->get('config.factory')
      ->getEditable('system.theme')
      ->set('default', 'gin')
      ->set('admin', 'gin')
      ->save();
    $this->container->get('module_installer')->install(['gin_toolbar_custom_menu'], FALSE);
    $this->drupalLogin(User::load(1));
    $this->addMenuLink('Menu item 1', 0);
    $this->addMenuLink('Menu item 2', 0);
    $this->addMenuLink('Menu item 3', 0);
  }

  /**
   * Tests custom menu.
   */
  public function testCustomMenu(): void {
    $page = $this->getSession()->getPage();
    $assert_session = $this->assertSession();

    $this->drupalGet('/admin/config/system/gin-toolbar-custom-menu');
    $page->pressButton('Add');
    $page->fillField('settings[0][menu]', 'main');
    $assert_session->fieldExists('settings[0][role][authenticated]')->check();
    $page->pressButton('Save configuration');

    $this->drupalGet('/admin/appearance/settings/gin');
    $assert_session->pageTextContains('Menu item 1');
    $assert_session->pageTextContains('Menu item 2');
    $assert_session->pageTextContains('Menu item 3');

    $page->fillField('classic_toolbar', 'new');
    $page->pressButton('Save configuration');
    $assert_session->pageTextContains('Menu item 1');
    $assert_session->pageTextContains('Menu item 2');
    $assert_session->pageTextContains('Menu item 3');

    $page->fillField('classic_toolbar', 'horizontal');
    $page->pressButton('Save configuration');
    $assert_session->pageTextContains('Menu item 1');
    $assert_session->pageTextContains('Menu item 2');
    $assert_session->pageTextContains('Menu item 3');

    $page->fillField('classic_toolbar', 'classic');
    $page->pressButton('Save configuration');
    $assert_session->pageTextContains('Menu item 1');
    $assert_session->pageTextContains('Menu item 2');
    $assert_session->pageTextContains('Menu item 3');

    $this->drupalGet('/admin/config/system/gin-toolbar-custom-menu');
    $page->pressButton('Remove rule');
    $page->pressButton('Save configuration');
    $assert_session->pageTextNotContains('Menu item 1');
    $assert_session->pageTextNotContains('Menu item 2');
    $assert_session->pageTextNotContains('Menu item 3');
  }

  /**
   * Add menu link.
   */
  public function addMenuLink($title) {
    $this->drupalGet("admin/structure/menu/manage/main/add");
    $this->submitForm(['link[0][uri]' => '<front>', 'title[0][value]' => $title], 'Save');
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc