widget_engine-8.x-1.2/modules/widget_engine_entity_form/tests/src/FunctionalJavascript/WidgetEngineEntityBrowserEntityFormTest.php

modules/widget_engine_entity_form/tests/src/FunctionalJavascript/WidgetEngineEntityBrowserEntityFormTest.php
<?php

namespace Drupal\Tests\widget_engine_entity_form\FunctionalJavascript;

use Drupal\FunctionalJavascriptTests\WebDriverTestBase;

/**
 * Widget engine entity form Javascript functional tests.
 *
 * @group widget_engine_entity_form
 */
class WidgetEngineEntityBrowserEntityFormTest extends WebDriverTestBase {

  /**
   * Modules to enable.
   *
   * @var array
   */
  protected static $modules = [
    'widget_engine_entity_form_test',
    'ctools',
    'views',
    'block',
    'node',
    'file',
    'image',
    'field_ui',
    'views_ui',
    'system',
  ];

  protected $defaultTheme = 'classy';

  /**
   * {@inheritdoc}
   */
  protected function setUp(): void {
    parent::setUp();
    $account = $this->drupalCreateUser([
      'access test_browser_for_widgets entity browser pages',
      'create article content',
      'access content',
      'add widget entities',
      'view published widget entities',
    ]);
    $this->drupalLogin($account);
  }

  /**
   * Test for select_add_tabs entity browser widget selector.
   */
  public function testEntityForm() {
    // Create new widget
    $this->drupalGet('node/add/article');
    $this->getSession()->getPage()->pressButton('Add new widget');
    $this->assertSession()->assertWaitOnAjaxRequest();
    $this->getSession()->getPage()->fillField('field_widget_reference[form][inline_entity_form][name][0][value]', 'Banana');
    $this->getSession()->getPage()->pressButton('Create widget');
    $this->assertSession()->assertWaitOnAjaxRequest();
    $this->assertSession()->pageTextContains('Banana');
    $this->getSession()->getPage()->fillField('title[0][value]', 'Monkey');
    $this->getSession()->getPage()->pressButton('Save');
    $parent_node = $this->container->get('entity_type.manager')
      ->getStorage('node')
      ->loadByProperties(['title' => 'Monkey']);
    $parent_node = current($parent_node);
    $this->assertEquals('Banana', $parent_node->field_widget_reference->entity->label(), 'Child node has correct title.');

    // Select exist widget.
    $this->drupalGet('node/add/article');
    $this->getSession()->getPage()->pressButton('Add existing widget');
    $this->assertSession()->assertWaitOnAjaxRequest();
    $this->getSession()->getPage()->pressButton('Select entities');
    $this->assertSession()->assertWaitOnAjaxRequest();
    $this->getSession()->switchToIFrame('entity_browser_iframe_test_browser_for_widgets');
    $this->getSession()->getPage()->fillField('name', 'Banana');
    $this->getSession()->getPage()->pressButton('Apply');
    $this->assertSession()->assertWaitOnAjaxRequest();
    $this->getSession()->getPage()->checkField('entity_browser_select[widget:1]');
    $this->getSession()->getPage()->pressButton('Select entities');
    $this->getSession()->switchToIFrame();
    $this->assertSession()->assertWaitOnAjaxRequest();
    $this->assertSession()->pageTextContains('Banana');
    $this->getSession()->getPage()->fillField('title[0][value]', 'MegaMonkey');
    $this->getSession()->getPage()->pressButton('Save');

    $parent_node = $this->container->get('entity_type.manager')
      ->getStorage('node')
      ->loadByProperties(['title' => 'MegaMonkey']);
    $parent_node = current($parent_node);
    $this->assertEquals('Banana', $parent_node->field_widget_reference->entity->label(), 'Child node has correct title.');
  }

}

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

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