sfc-8.x-1.3/modules/sfc_dev/tests/src/Kernel/ComponentPreviewFormTest.php

modules/sfc_dev/tests/src/Kernel/ComponentPreviewFormTest.php
<?php

namespace Drupal\Tests\sfc_dev\Kernel;

use Drupal\Core\Asset\AssetResolver;
use Drupal\Core\Form\FormState;
use Drupal\KernelTests\KernelTestBase;
use Drupal\sfc\ComponentBase;
use Drupal\sfc\ComponentInterface;
use Drupal\sfc_dev\Form\ComponentPreviewForm;

/**
 * Tests the component preview form.
 *
 * @coversDefaultClass \Drupal\sfc_dev\Form\ComponentPreviewForm
 *
 * @group sfc_dev
 */
class ComponentPreviewFormTest extends KernelTestBase {

  /**
   * Tests the ::buildForm method.
   */
  public function testBuildForm() {
    $resolver = $this->createMock(AssetResolver::class);
    $form_object = new ComponentPreviewForm($resolver);
    $component = $this->createMock(ComponentInterface::class);
    $form = $form_object->buildForm([], new FormState(), $component);
    $this->assertNotEmpty($form);
  }

  /**
   * Tests the ::validateForm method.
   */
  public function testValidateForm() {
    $resolver = $this->createMock(AssetResolver::class);
    $form_object = new ComponentPreviewForm($resolver);
    $component = $this->createMock(ComponentBase::class);
    $form_state = new FormState();
    $form = [
      'twig' => ['#parents' => []],
      '#component' => $component,
      'component_context' => ['#parents' => []],
      '#parents' => [],
    ];
    $form_object->validateForm($form, $form_state);
    $this->assertEmpty($form_state->getErrors());
    $form_state->clearErrors();
    $form_state->setValue('mode', 'twig');
    $form_state->setValue('twig', '#foo');
    $form_object->validateForm($form, $form_state);
    $this->assertNotEmpty($form_state->getErrors());
    $form_state->clearErrors();
    $form_state->setValue('mode', 'form');
    $component->expects($this->once())->method('validateContextForm');
    $form_object->validateForm($form, $form_state);
  }

  /**
   * Tests the ::ajaxReload method.
   */
  public function testAjaxReload() {
    $resolver = $this->createMock(AssetResolver::class);
    $form_object = new ComponentPreviewForm($resolver);
    $component = $this->createMock(ComponentInterface::class);
    $component->expects($this->any())->method('getPluginId')->willReturn('test');
    $form = [
      '#component' => $component,
    ];
    $form_state = new FormState();
    $form_state->set('component_build', [
      'foo' => [],
    ]);
    $response = $form_object->ajaxReload($form, $form_state);
    $this->assertNotEmpty($response->getCommands());
  }

  /**
   * Tests the ::submitForm method.
   */
  public function testSubmitForm() {
    $resolver = $this->createMock(AssetResolver::class);
    $form_object = new ComponentPreviewForm($resolver);
    $component = $this->createMock(ComponentInterface::class);
    $component->expects($this->once())->method('getId')->willReturn('test');
    $form = [
      '#component' => $component,
    ];
    $form_state = new FormState();
    $form_state->setValue('twig', '{{ test }}');
    $form_object->submitForm($form, $form_state);
    $this->assertEquals($form_state->get('component_build')['#template'], '{{ test }}');
    $form_state->setValue('twig', '{{ test }}');
    $form_state->setValue('mode', 'form');
    $form_object->submitForm($form, $form_state);
    $this->assertEquals($form_state->get('component_build')['#template'], '{% include "sfc--test" %}');
  }

}

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

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