acquia_dam-1.0.0-rc1/tests/src/Kernel/Plugin/views/field/MediaLibrarySelectFormTest.php
tests/src/Kernel/Plugin/views/field/MediaLibrarySelectFormTest.php
<?php declare(strict_types=1); namespace Drupal\Tests\acquia_dam\Kernel\Plugin\views\field; use Drupal\acquia_dam\Entity\MediaSourceField; use Drupal\acquia_dam\Plugin\views\field\MediaLibrarySelectForm; use Drupal\Core\Form\FormState; use Drupal\media\Entity\Media; use Drupal\Tests\acquia_dam\Kernel\AcquiaDamKernelTestBase; use Drupal\Tests\media\Traits\MediaTypeCreationTrait; /** * Tests the MediaLibrarySelectForm views field plugin. * * @group acquia_dam */ final class MediaLibrarySelectFormTest extends AcquiaDamKernelTestBase { use MediaTypeCreationTrait { createMediaType as drupalCreateMediaType; } /** * Tests processing selected IDs. * * @dataProvider providerSelectedIds */ public function testProcessInputValues(string $selected_ids, string $expected_ids): void { $this->drupalSetUpCurrentUser(); $media_type = $this->createPdfMediaType(); // Ensure there is an existing asset media item. Media::create([ 'bundle' => $media_type->id(), MediaSourceField::SOURCE_FIELD_NAME => [ 'asset_id' => 'a56fb261-8ad5-4e0d-8323-0e8a3659ed39', ], ])->save(); // Ensure mid:4 is occupied by non-asset media entity. $this->drupalCreateMediaType('file', ['id' => 'document']); Media::create(['bundle' => 'document'])->save(); Media::create(['bundle' => 'document'])->save(); Media::create(['bundle' => 'document'])->save(); Media::create(['bundle' => 'document'])->save(); $instance = $this->container ->get('plugin.manager.views.field') ->createInstance('acquia_dam_media_library_select_form'); self::assertInstanceOf(MediaLibrarySelectForm::class, $instance); $form_state = new FormState(); $form_state->setTriggeringElement([ '#field_id' => 'sut_field_ids', ]); $form_state->setValue('sut_field_ids', $selected_ids); $instance->processInputValues([], $form_state); self::assertEquals($expected_ids, $form_state->getValue('sut_field_ids')); } /** * Selected IDs provider. */ public function providerSelectedIds() { yield 'empty no fail' => ['', '']; yield 'import new' => ['0324b0b2-5293-4aa0-b0aa-c85b003395e2', '6']; yield 'not import existing' => ['a56fb261-8ad5-4e0d-8323-0e8a3659ed39', '1']; yield 'multiple' => [ '0324b0b2-5293-4aa0-b0aa-c85b003395e2,a56fb261-8ad5-4e0d-8323-0e8a3659ed39', '1,6', ]; // @note this will not fail on sqlite! yield 'uuid leads with valid mid integer' => [ '4f656c07-6a08-47b3-9403-16082d2fcda2', '6', ]; } }