View source
<?php
namespace Drupal\Tests\media_entity_instagram\Functional;
use Drupal\Tests\BrowserTestBase;
use Drupal\Tests\media\Traits\MediaTypeCreationTrait;
class InstagramEmbedFormatterTest extends BrowserTestBase {
use MediaTypeCreationTrait;
protected static $modules = [
'media_entity_instagram',
'media',
'node',
'field_ui',
'views_ui',
'block',
];
protected $testBundle;
protected $defaultTheme = 'stark';
protected function setUp() {
parent::setUp();
\Drupal::configFactory()
->getEditable('media.settings')
->set('standalone_url', TRUE)
->save(TRUE);
\Drupal::service('router.builder')
->rebuild();
$this->testBundle = $this
->createMediaType('instagram', [
'id' => 'instagram',
]);
$this
->drupalPlaceBlock('local_actions_block');
$account = $this
->drupalCreateUser([
'administer media',
'administer media types',
'administer media fields',
'administer media form display',
'administer media display',
'view media',
'create media',
'update media',
'update any media',
'delete media',
'delete any media',
'administer views',
]);
$this
->drupalLogin($account);
}
public function testFieldFormatter() {
$bundle = $this->testBundle;
$assert = $this
->assertSession();
$this
->drupalGet('admin/structure/media/manage/' . $bundle
->id());
$assert
->fieldValueEquals('label', $bundle
->label());
$assert
->fieldValueEquals('source', 'instagram');
$assert
->pageTextContains('Instagram field is used to store the essential information about the media item.');
$assert
->buttonExists('Save')
->press();
$assert
->pageTextContains('The media type ' . $bundle
->label() . ' has been updated.');
\Drupal::service('entity_display.repository')
->getViewDisplay('media', $bundle
->id(), 'default')
->setComponent('field_media_instagram', [
'label' => 'above',
'type' => 'instagram_embed',
'settings' => [
'hidecaption' => FALSE,
],
])
->save();
$this
->drupalGet('admin/structure/media/manage/' . $bundle
->id() . '/display');
$assert
->pageTextContains('Caption: Visible');
$this
->drupalGet('media/add/' . $bundle
->id());
$assert
->fieldExists('Name')
->setValue('My test instagram');
$assert
->fieldExists('Instagram')
->setValue('https://www.instagram.com/p/B2huuS8AQVq/');
$assert
->buttonExists('Save')
->press();
$assert
->pageTextContains('My test instagram');
$assert
->pageTextContains('Instagram');
$assert
->elementExists('css', 'blockquote');
$assert
->responseContains('platform.instagram.com/en_US/embeds.js');
}
}