graphql_core_schema-1.0.x-dev/tests/src/Kernel/CoreComposableKernelTestBase.php

tests/src/Kernel/CoreComposableKernelTestBase.php
<?php

namespace Drupal\Tests\graphql_core_schema\Kernel;

use Drupal\Core\Language\LanguageInterface;
use Drupal\Core\Language\LanguageManagerInterface;
use Drupal\filter\Entity\FilterFormat;
use Drupal\KernelTests\Core\Entity\EntityKernelTestBase;
use Drupal\language\Entity\ConfigurableLanguage;
use Drupal\language\Entity\ContentLanguageSettings;
use Drupal\node\Entity\NodeType;
use Drupal\Tests\field\Traits\EntityReferenceFieldCreationTrait;
use Drupal\Tests\graphql_core_schema\Traits\CoreComposableSchemaTrait;
use Drupal\Tests\graphql_core_schema\Traits\CoreComposableServerBuilder;
use Drupal\Tests\node\Traits\ContentTypeCreationTrait;
use Drupal\Tests\node\Traits\NodeCreationTrait;

/**
 * Tests the entity_query extension.
 */
abstract class CoreComposableKernelTestBase extends EntityKernelTestBase {

  use CoreComposableSchemaTrait;
  use NodeCreationTrait;
  use ContentTypeCreationTrait;
  use EntityReferenceFieldCreationTrait;

  protected array $languages = [];
  protected LanguageManagerInterface $languageManager;

  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'system',
    'language',
    'field',
    'node',
    'graphql',
    'entity_reference_test',
    'link',
    'user',
    'taxonomy',
    'menu_link_content',
    'content_translation',
    'typed_data',
    'text',
    'graphql_core_schema',
    'file',
  ];

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

    $this->installConfig('user');
    $this->installConfig('system');
    $this->installConfig('graphql');
    $this->installConfig('graphql');
    $this->installEntitySchema('node');
    $this->installEntitySchema('user');
    $this->installEntitySchema('taxonomy_term');
    $this->installSchema('node', ['node_access']);
    $this->installSchema('user', ['users_data']);
    $this->installEntitySchema('graphql_server');
    $this->installEntitySchema('configurable_language');
    $this->installConfig(['language']);
    $this->installEntitySchema('menu_link_content');
    $this->installConfig(['graphql_core_schema']);

    FilterFormat::create([
      'format' => 'default',
      'name' => 'My text format',
      'filters' => [
        'filter_autop' => [
          'module' => 'filter',
          'status' => TRUE,
        ],
      ],
    ])->save();

    $this->languages['en'] = ConfigurableLanguage::load('en');
    $this->languages['it'] = ConfigurableLanguage::createFromLangcode('it')->setWeight(1);
    $this->languages['de'] = ConfigurableLanguage::createFromLangcode('de')->setWeight(2);
    $this->languages['it']->save();
    $this->languages['de']->save();

    $config = $this->config('language.negotiation');
    $config->set('url.prefixes', [
      'en' => 'en',
      'de' => 'de',
    ])->save();

    \Drupal::service('kernel')->rebuildContainer();
    \Drupal::service('router.builder')->rebuild();
    $this->languageManager = $this->container->get('language_manager');
    $this->languageManager->reset();
  }

  /**
   * Get the core_composable server builder.
   *
   * @return CoreComposableServerBuilder
   *   The core composable server builder.
   */
  protected function getCoreComposableServerBuilder() {
    return new CoreComposableServerBuilder();
  }

  /**
   * Create translatable content type.
   *
   * @param string $bundle
   *   The bundle name.
   *
   * @return NodeType
   *   The node type.
   */
  protected function createTranslatableContentType(string $bundle = 'article'): NodeType {
    $type = NodeType::create(['type' => $bundle]);
    $type->save();
    $config = ContentLanguageSettings::loadByEntityTypeBundle('node', $bundle);
    $config->setDefaultLangcode(LanguageInterface::LANGCODE_SITE_DEFAULT);
    $config->setLanguageAlterable(TRUE);
    $config->save();

    $content_translation_manager = $this->container->get('content_translation.manager');
    $content_translation_manager->setEnabled('node', $bundle, TRUE);

    return $type;
  }

  /**
   * Change current language.
   *
   * @param string $langcode
   *   The langcode.
   */
  protected function setCurrentLanguage(string $langcode) {
    \Drupal::service('language.default')->set($this->languages[$langcode]);
    \Drupal::languageManager()->reset();
  }

}

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

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