You are here

WidgetTest.php in Video Embed Field 8

Same filename and directory in other branches
  1. 8.2 tests/src/Functional/WidgetTest.php

File

tests/src/Functional/WidgetTest.php
View source
<?php

namespace Drupal\Tests\video_embed_field\Functional;

use Drupal\Core\Url;
use Drupal\Tests\BrowserTestBase;

/**
 * Test the video embed field widget.
 *
 * @group video_embed_field
 */
class WidgetTest extends BrowserTestBase {
  use EntityDisplaySetupTrait;
  use AdminUserTrait;

  /**
   * {@inheritdoc}
   */
  public static $modules = [
    'field_ui',
    'node',
    'video_embed_field',
  ];

  /**
   * Test the input widget.
   */
  public function testVideoEmbedFieldDefaultWidget() {
    $this
      ->setupEntityDisplays();
    $this
      ->setFormComponentSettings('video_embed_field_textfield');
    $this
      ->drupalLogin($this
      ->createAdminUser());
    $node_title = $this
      ->randomMachineName();

    // Test an invalid input.
    $this
      ->drupalGet(Url::fromRoute('node.add', [
      'node_type' => $this->contentTypeName,
    ])
      ->toString());
    $this
      ->submitForm([
      'title[0][value]' => $node_title,
      $this->fieldName . '[0][value]' => 'Some useless value.',
    ], t('Save'));
    $this
      ->assertSession()
      ->pageTextContains('Could not find a video provider to handle the given URL.');

    // Test a valid input.
    $valid_input = 'https://vimeo.com/80896303';
    $this
      ->submitForm([
      $this->fieldName . '[0][value]' => $valid_input,
    ], t('Save'));
    $this
      ->assertSession()
      ->pageTextContains(sprintf('%s %s has been created.', $this->contentTypeName, $node_title));

    // Load the saved node and assert the valid value was saved into the field.
    $nodes = \Drupal::entityTypeManager()
      ->getStorage('node')
      ->loadByProperties([
      'title' => $node_title,
    ]);
    $node = array_shift($nodes);
    $this
      ->assertEquals($node->{$this->fieldName}[0]->value, $valid_input);
  }

}

Classes

Namesort descending Description
WidgetTest Test the video embed field widget.