video_embed_field-8.x-2.4/tests/src/Functional/WidgetTest.php
tests/src/Functional/WidgetTest.php
<?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}
*/
protected $defaultTheme = 'stark';
/**
* {@inheritdoc}
*/
protected 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.',
], 'Save');
$this->assertSession()->pageTextContains('Could not find a video provider to handle the given URL.');
// Test a valid input.
$valid_input = 'https://vimeo.com/399842404';
$this->submitForm([
$this->fieldName . '[0][value]' => $valid_input,
], '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);
}
}
