og_sm-8.x-1.0/og_sm_menu/tests/src/Kernel/SiteMenuManagerTest.php

og_sm_menu/tests/src/Kernel/SiteMenuManagerTest.php
<?php

namespace Drupal\Tests\og_sm_menu\Kernel;

use Drupal\og_sm\OgSm;
use Drupal\Tests\og_sm\Kernel\OgSmKernelTestBase;

/**
 * Tests the site menu manager service.
 *
 * @group og_sm
 */
class SiteMenuManagerTest extends OgSmKernelTestBase {

  /**
   * {@inheritdoc}
   */
  public static $modules = [
    'og_menu',
    'og_sm_menu',
  ];

  /**
   * {@inheritdoc}
   */
  public function setUp() {
    parent::setUp();
    $this->installConfig(['og_menu', 'og_sm_menu']);
    $this->installEntitySchema('ogmenu');
    $this->installEntitySchema('ogmenu_instance');
    $this->config('og_menu.settings')->set('autocreate', TRUE)->save();
  }

  /**
   * Test Site helpers.
   */
  public function testSiteMenuApi() {
    $site_type = $this->createGroupNodeType(OgSmKernelTestBase::TYPE_IS_GROUP);
    OgSm::siteTypeManager()->setIsSiteType($site_type, TRUE);
    $site_type->save();

    $site1 = $this->createGroup($site_type->id());
    $this->setOgContextToGroup($site1);

    /** @var \Drupal\og_sm_menu\SiteMenuManagerInterface $site_menu_manager */
    $site_menu_manager = $this->container->get('og_sm.site_menu_manager');

    $site1_menu = $site_menu_manager->getMenuBySite($site1);
    $this->assertNotEmpty($site1_menu);
    $this->assertCount(1, $site_menu_manager->getAllMenus());

    $this->createGroup($site_type->id());
    $this->assertCount(2, $site_menu_manager->getAllMenus());

    $this->config('og_menu.settings')->set('autocreate', FALSE)->save();
    $site3 = $this->createGroup($site_type->id());
    $this->assertCount(2, $site_menu_manager->getAllMenus());
    $this->assertEmpty($site_menu_manager->getMenuBySite($site3));
    $site_menu_manager->createMenu($site3);
    $this->assertNotEmpty($site_menu_manager->getMenuBySite($site3));

    $this->assertEquals($site1_menu, $site_menu_manager->getCurrentMenu());
  }

}

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

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