acquia_dam-1.0.0-rc1/tests/src/Kernel/AssetLibraryBuilderTest.php
tests/src/Kernel/AssetLibraryBuilderTest.php
<?php
declare(strict_types=1);
namespace Drupal\Tests\acquia_dam\Kernel;
use Drupal\media\Entity\MediaType;
use Drupal\media_library\MediaLibraryState;
/**
* @coversDefaultClass \Drupal\acquia_dam\AssetLibraryBuilder
* @group acquia_dam
*/
final class AssetLibraryBuilderTest extends AcquiaDamKernelTestBase {
/**
* {@inheritdoc}
*/
protected function setUp(): void {
parent::setUp();
$this->container->get('user.data')->set('acquia_dam', 0, 'seen_prompt', TRUE);
}
/**
* Tests the source menu when there is one allowed media type.
*
* @covers ::addSourceMenu
*/
public function testWhenOneAllowedMediaType(): void {
$dam_image_type = $this->createImageMediaType();
$sut = $this->container->get('acquia_dam.asset_library_builder');
$state = MediaLibraryState::create(
'editor',
[$dam_image_type->id()],
$dam_image_type->id(),
1,
[]
);
$state->set('source', 'acquia_dam');
$state->set('hash', $state->getHash());
$build = $sut->buildUi($state);
self::assertEquals([], $build['menu']);
}
/**
* Tests the source menu when two allowed types, different sources.
*
* @covers ::addSourceMenu
*/
public function testSourceMenu(): void {
$dam_image_type = $this->createImageMediaType();
$core_image_type = MediaType::create([
'id' => 'core_image',
'label' => 'Core Image',
'source' => 'image',
]);
$core_image_type->save();
$sut = $this->container->get('acquia_dam.asset_library_builder');
$state = MediaLibraryState::create(
'editor',
[$dam_image_type->id(), $core_image_type->id()],
$dam_image_type->id(),
1,
);
$state->set('source', 'acquia_dam');
$state->set('hash', $state->getHash());
$build = $sut->buildUi($state);
self::assertNotEquals([], $build['menu']);
self::assertArrayHasKey('field', $build['menu']);
self::assertArrayNotHasKey('link', $build['menu'], 'only one media type, no links');
}
}
