View source
<?php
namespace Drupal\Tests\entity_embed\FunctionalJavascript;
use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
use Drupal\Tests\media\Traits\MediaTypeCreationTrait;
class ButtonAdminTest extends WebDriverTestBase {
use MediaTypeCreationTrait;
protected $defaultTheme = 'stark';
protected static $modules = [
'node',
'user',
'media',
'entity_embed',
];
protected $adminUser;
protected function setUp() {
parent::setUp();
$this->container
->get('entity_type.manager')
->getStorage('entity_view_mode')
->create([
'id' => 'media.thumb',
'targetEntityType' => 'media',
])
->save();
$this
->createContentType([
'type' => 'article',
'label' => 'Article',
]);
$this
->createMediaType('image', [
'id' => 'image',
'label' => 'Image',
]);
$this->adminUser = $this
->drupalCreateUser([
'administer embed buttons',
]);
$this->container
->get('entity_type.manager')
->getStorage('embed_button')
->load('node')
->delete();
}
public function testEmbedButtonAdmin($entity_type_id, $bundle_id, $entity_embed_display_plugin_id) {
$this
->drupalLogin($this->adminUser);
$this
->drupalGet('admin/config/content/embed/button/add');
$page = $this
->getSession()
->getPage();
$page
->fillField('label', $entity_type_id);
$page
->selectFieldOption('type_id', 'entity');
$page
->waitFor(10, function () use ($page) {
return $page
->hasField('type_settings[entity_type]');
});
$page
->selectFieldOption('type_settings[entity_type]', $entity_type_id);
$page
->waitFor(10, function () use ($page, $bundle_id) {
return $page
->hasField('type_settings[bundles][' . $bundle_id . ']');
});
$page
->checkField('type_settings[display_plugins][' . $entity_embed_display_plugin_id . ']');
$page
->pressButton('Save');
$this
->assertStringContainsString('The embed button ' . $entity_type_id . ' has been added.', $page
->getText());
$this
->assertSession()
->linkByHrefExists('/admin/config/content/embed/button/manage/' . $entity_type_id);
$this
->drupalGet('/admin/config/content/embed/button/manage/' . $entity_type_id);
$page
->findField('type_id')
->hasAttribute('disabled');
$page
->findField('type_settings[entity_type]')
->hasAttribute('disabled');
}
public function embedButtonAdminProvider() {
return [
'article nodes embedded using teaser view mode' => [
'node',
'article',
'view_mode:node.teaser',
],
'users embedded using full view mode' => [
'user',
NULL,
'view_mode:user.full',
],
'image media items embedded using thumb view mode' => [
'media',
'image',
'view_mode:media.thumb',
],
'files embedded using plain URL' => [
'file',
NULL,
'file:file_url_plain',
],
];
}
}