MediaBehaviorSettingsFormTest.php in Rabbit Hole 2.x
File
modules/rh_media/tests/src/Functional/MediaBehaviorSettingsFormTest.php
View source
<?php
namespace Drupal\Tests\rh_media\Functional;
use Drupal\Core\Url;
use Drupal\media\Entity\Media;
use Drupal\Tests\media\Traits\MediaTypeCreationTrait;
use Drupal\Tests\rabbit_hole\Functional\RabbitHoleBehaviorSettingsFormTestBase;
class MediaBehaviorSettingsFormTest extends RabbitHoleBehaviorSettingsFormTestBase {
use MediaTypeCreationTrait;
protected $bundle;
protected $entityType = 'media';
protected $bundleEntityTypeName = 'media_type';
public static $modules = [
'rh_media',
'media',
'media_test_source',
];
protected function createEntityBundle() {
$this->bundle = $this
->createMediaType('test', [
'id' => mb_strtolower($this
->randomMachineName()),
]);
return $this->bundle
->id();
}
protected function createEntityBundleFormSubmit($action, $override) {
$this
->drupalLogin($this->adminUser);
$this
->drupalGet('/admin/structure/media/add');
$this
->assertRabbitHoleSettings();
$machine_name = mb_strtolower($this
->randomMachineName());
$this
->assertSession()
->statusCodeEquals(200);
$this
->assertSession()
->fieldExists('label')
->setValue($this
->randomString());
$this
->assertSession()
->fieldExists('id')
->setValue($machine_name);
$this
->assertSession()
->selectExists('source')
->selectOption('test');
$this
->assertSession()
->fieldExists('rh_action')
->setValue($action);
$this
->assertSession()
->fieldExists('rh_override')
->setValue($override);
$this
->assertSession()
->buttonExists('Save')
->press();
$this
->assertSession()
->buttonExists('Save')
->press();
$this->bundle = $this
->loadBundle($machine_name);
return $machine_name;
}
protected function createEntity($action = NULL) {
$values = [
'bundle' => $this->bundle
->id(),
'name' => $this
->randomString(),
'field_media_test' => $this
->randomMachineName(),
];
if (isset($action)) {
$values['rh_action'] = $action;
}
$media = Media::create($values);
$media
->save();
return $media
->id();
}
protected function getCreateEntityUrl() {
return Url::fromRoute('entity.media.add_form', [
'media_type' => $this->bundle
->id(),
]);
}
protected function getEditEntityUrl($id) {
return Url::fromRoute('entity.media.edit_form', [
'media' => $id,
]);
}
protected function getEditBundleUrl($bundle) {
return Url::fromRoute('entity.media_type.edit_form', [
'media_type' => $bundle,
]);
}
protected function getAdminPermissions() {
return [
'access media overview',
'administer media',
'administer media types',
'view media',
'rabbit hole bypass media',
];
}
}