diff --git a/core/modules/media_library/src/Plugin/Field/FieldWidget/MediaLibraryWidget.php b/core/modules/media_library/src/Plugin/Field/FieldWidget/MediaLibraryWidget.php index 963135acb5..7f5f8a34e1 100644 --- a/core/modules/media_library/src/Plugin/Field/FieldWidget/MediaLibraryWidget.php +++ b/core/modules/media_library/src/Plugin/Field/FieldWidget/MediaLibraryWidget.php @@ -46,11 +46,6 @@ */ class MediaLibraryWidget extends WidgetBase implements TrustedCallbackInterface { - /** - * The default media view mode when rendering already-selected media items. - */ - const DEFAULT_VIEW_MODE = 'media_library'; - /** * Entity type manager service. * @@ -464,7 +459,7 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen '#limit_validation_errors' => $limit_validation_errors, ], // @todo Make the view mode configurable in https://www.drupal.org/project/drupal/issues/2971209 - 'rendered_entity' => $view_builder->view($media_item, self::DEFAULT_VIEW_MODE), + 'rendered_entity' => $view_builder->view($media_item, 'media_library'), 'target_id' => [ '#type' => 'hidden', '#value' => $media_item->id(), diff --git a/core/modules/media_library/tests/src/FunctionalJavascript/EmbeddedFormWidgetTest.php b/core/modules/media_library/tests/src/FunctionalJavascript/EmbeddedFormWidgetTest.php index dea5f4e24c..351c12e6f6 100644 --- a/core/modules/media_library/tests/src/FunctionalJavascript/EmbeddedFormWidgetTest.php +++ b/core/modules/media_library/tests/src/FunctionalJavascript/EmbeddedFormWidgetTest.php @@ -5,6 +5,7 @@ use Drupal\field\Entity\FieldConfig; use Drupal\field\Entity\FieldStorageConfig; use Drupal\FunctionalJavascriptTests\WebDriverTestBase; +use Drupal\media_library\MediaLibraryState; use Drupal\Tests\TestFileCreationTrait; /** @@ -70,7 +71,7 @@ protected function setUp(): void { 'region' => 'content', 'settings' => [ 'media_types' => ['type_three'], - 'form_mode' => 'media_library', + 'form_mode' => MediaLibraryState::DEFAULT_FORM_MODE, ], ]) ->save(); @@ -104,7 +105,7 @@ public function testInsertionAndReselection($widget) { 'region' => 'content', 'settings' => [ 'media_types' => ['type_three'], - 'form_mode' => 'media_library', + 'form_mode' => MediaLibraryState::DEFAULT_FORM_MODE, ], ]) ->save(); diff --git a/core/modules/media_library/tests/src/FunctionalJavascript/EntityReferenceWidgetTest.php b/core/modules/media_library/tests/src/FunctionalJavascript/EntityReferenceWidgetTest.php index 54de6cb25e..66afebff14 100644 --- a/core/modules/media_library/tests/src/FunctionalJavascript/EntityReferenceWidgetTest.php +++ b/core/modules/media_library/tests/src/FunctionalJavascript/EntityReferenceWidgetTest.php @@ -181,10 +181,10 @@ public function testWidget() { $this->assertSame($link_titles, $expected_link_titles); $this->drupalGet('admin/structure/types/manage/basic_page/form-display'); - // Ensure that the widget settings form is not displayed when only + // Ensure that the widget settings form is displayed even when only // one media type is allowed. $assert_session->pageTextContains('Single media type'); - $assert_session->buttonNotExists('field_single_media_type_settings_edit'); + $assert_session->buttonExists('field_single_media_type_settings_edit'); $assert_session->buttonExists('field_twin_media_settings_edit')->press(); $this->assertElementExistsAfterWait('css', '#field-twin-media .tabledrag-toggle-weight')->press(); diff --git a/core/modules/media_library/tests/src/FunctionalJavascript/WidgetAccessTest.php b/core/modules/media_library/tests/src/FunctionalJavascript/WidgetAccessTest.php index 0f10d0aa8b..4f0d7bd765 100644 --- a/core/modules/media_library/tests/src/FunctionalJavascript/WidgetAccessTest.php +++ b/core/modules/media_library/tests/src/FunctionalJavascript/WidgetAccessTest.php @@ -59,7 +59,7 @@ public function testWidgetAccess() { $role->save(); // @todo where should this be pulled from? The field widget specifies. - $form_mode = 'media_library'; + $form_mode = MediaLibraryState::DEFAULT_FORM_MODE; // Create a working state. $allowed_types = ['type_one', 'type_two', 'type_three', 'type_four']; @@ -128,9 +128,6 @@ public function testWidgetAccess() { $this->drupalGet('media-library', [ 'query' => array_merge($url_options['query'], ['media_library_selected_type' => 'type_one']), ]); - $this->drupalGet('media-library', [ - 'query' => array_merge($url_options['query'], ['media_library_form_mode' => ' ']), - ]); $assert_session->responseContains('Access denied'); $this->drupalGet('media-library', [ 'query' => array_merge($url_options['query'], ['media_library_remaining' => 3]), diff --git a/core/modules/media_library/tests/src/Kernel/MediaLibraryAccessTest.php b/core/modules/media_library/tests/src/Kernel/MediaLibraryAccessTest.php index 9ac79c2c14..0046f270ac 100644 --- a/core/modules/media_library/tests/src/Kernel/MediaLibraryAccessTest.php +++ b/core/modules/media_library/tests/src/Kernel/MediaLibraryAccessTest.php @@ -109,7 +109,7 @@ public function testFieldWidgetEntityCreateAccess() { $ui_builder = $this->container->get('media_library.ui_builder'); // @todo where should this be pulled from? The field widget specifies. - $form_mode = 'media_library'; + $form_mode = MediaLibraryState::DEFAULT_FORM_MODE; // Create a media library state to test access. $state = MediaLibraryState::create('media_library.opener.field_widget', [ @@ -165,7 +165,7 @@ public function testEditorOpenerAccess($media_embed_enabled, $can_use_format) { } // @todo where should this be pulled from? The field widget specifies. - $form_mode = 'media_library'; + $form_mode = MediaLibraryState::DEFAULT_FORM_MODE; $state = MediaLibraryState::create( 'media_library.opener.editor', @@ -224,7 +224,7 @@ public function testFieldWidgetEntityEditAccess() { $forbidden_entity->save(); // @todo where should this be pulled from? The field widget specifies. - $form_mode = 'media_library'; + $form_mode = MediaLibraryState::DEFAULT_FORM_MODE; // Create a media library state to test access. $state = MediaLibraryState::create( @@ -324,7 +324,7 @@ public function testFieldWidgetEntityFieldAccess(string $field_type) { $account = $this->createUser(['administer entity_test content']); // @todo where should this be pulled from? The field widget specifies. - $form_mode = 'media_library'; + $form_mode = MediaLibraryState::DEFAULT_FORM_MODE; // Test that access is denied even without an entity to work with. $state = MediaLibraryState::create( @@ -371,7 +371,7 @@ public function testViewAccess() { $ui_builder = $this->container->get('media_library.ui_builder'); // @todo where should this be pulled from? The field widget specifies. - $form_mode = 'media_library'; + $form_mode = MediaLibraryState::DEFAULT_FORM_MODE; // Create a media library state to test access. $state = MediaLibraryState::create( @@ -442,7 +442,7 @@ public function testAddFormAccess(): void { ]; // @todo where should this be pulled from? The field widget specifies. - $form_mode = 'media_library'; + $form_mode = MediaLibraryState::DEFAULT_FORM_MODE; $account = $this->createUser(['create media']); $this->setCurrentUser($account); diff --git a/core/modules/media_library/tests/src/Kernel/MediaLibraryAddFormTest.php b/core/modules/media_library/tests/src/Kernel/MediaLibraryAddFormTest.php index b5a2734ad4..d77510705e 100644 --- a/core/modules/media_library/tests/src/Kernel/MediaLibraryAddFormTest.php +++ b/core/modules/media_library/tests/src/Kernel/MediaLibraryAddFormTest.php @@ -35,13 +35,6 @@ class MediaLibraryAddFormTest extends KernelTestBase { 'user', ]; - /** - * The machine name of the form mode to render the Add media forms. - * - * Normally specified using the media library Form widget. - */ - protected $form_mode = 'media_library'; - /** * {@inheritdoc} */ @@ -119,7 +112,10 @@ public function testMediaTypeAddForm() { * The render array for the media library. */ protected function buildLibraryUi($selected_type_id) { - $state = MediaLibraryState::create('test', ['image', 'remote_video'], $selected_type_id, -1, [], $this->form_mode); + // @todo where should this be pulled from? The field widget specifies. + $form_mode = MediaLibraryState::DEFAULT_FORM_MODE; + + $state = MediaLibraryState::create('test', ['image', 'remote_video'], $selected_type_id, -1, [], $form_mode); return \Drupal::service('media_library.ui_builder')->buildUi($state); } @@ -137,7 +133,10 @@ public function testFormStateValidation() { * Tests the validation of the selected type in the media library add form. */ public function testSelectedTypeValidation() { - $state = MediaLibraryState::create('test', ['image', 'remote_video', 'header_image'], 'header_image', -1, [], $this->form_mode); + // @todo where should this be pulled from? The field widget specifies. + $form_mode = MediaLibraryState::DEFAULT_FORM_MODE; + + $state = MediaLibraryState::create('test', ['image', 'remote_video', 'header_image'], 'header_image', -1, [], $form_mode); $form_state = new FormState(); $form_state->set('media_library_state', $state); $this->expectException(\InvalidArgumentException::class); diff --git a/core/modules/media_library/tests/src/Kernel/MediaLibraryStateTest.php b/core/modules/media_library/tests/src/Kernel/MediaLibraryStateTest.php index bce48dbea2..af0003f3b2 100644 --- a/core/modules/media_library/tests/src/Kernel/MediaLibraryStateTest.php +++ b/core/modules/media_library/tests/src/Kernel/MediaLibraryStateTest.php @@ -76,14 +76,17 @@ public function testMethods() { $selected_media_type_id = 'image'; $remaining_slots = 2; - $state = MediaLibraryState::create($opener_id, $allowed_media_type_ids, $selected_media_type_id, $remaining_slots, [], $this->form_mode); + // @todo where should this be pulled from? The field widget specifies. + $form_mode = MediaLibraryState::DEFAULT_FORM_MODE; + + $state = MediaLibraryState::create($opener_id, $allowed_media_type_ids, $selected_media_type_id, $remaining_slots, [], $form_mode); $this->assertSame($opener_id, $state->getOpenerId()); $this->assertSame($allowed_media_type_ids, $state->getAllowedTypeIds()); $this->assertSame($selected_media_type_id, $state->getSelectedTypeId()); $this->assertSame($remaining_slots, $state->getAvailableSlots()); $this->assertTrue($state->hasSlotsAvailable()); - $state = MediaLibraryState::create($opener_id, $allowed_media_type_ids, $selected_media_type_id, 0, [], $this->form_mode); + $state = MediaLibraryState::create($opener_id, $allowed_media_type_ids, $selected_media_type_id, 0, [], $form_mode); $this->assertFalse($state->hasSlotsAvailable()); } @@ -110,7 +113,10 @@ public function testCreate($opener_id, array $allowed_media_type_ids, $selected_ $this->expectException(\InvalidArgumentException::class); $this->expectExceptionMessage($exception_message); } - $state = MediaLibraryState::create($opener_id, $allowed_media_type_ids, $selected_type_id, $remaining_slots, [], $this->form_mode); + // @todo where should this be pulled from? The field widget specifies. + $form_mode = MediaLibraryState::DEFAULT_FORM_MODE; + + $state = MediaLibraryState::create($opener_id, $allowed_media_type_ids, $selected_type_id, $remaining_slots, [], $form_mode); $this->assertInstanceOf(MediaLibraryState::class, $state); // Ensure that the state object carries cache metadata. @@ -284,9 +290,12 @@ public function providerCreate() { * @dataProvider providerFromRequest */ public function testFromRequest(array $query_overrides, $exception_expected) { + // @todo where should this be pulled from? The field widget specifies. + $form_mode = MediaLibraryState::DEFAULT_FORM_MODE; + // Override the query parameters and verify an exception is thrown when // required state parameters are changed. - $query = MediaLibraryState::create('test', ['file', 'image'], 'image', 2, [], $this->form_mode)->all(); + $query = MediaLibraryState::create('test', ['file', 'image'], 'image', 2, [], $form_mode)->all(); $query = array_merge($query, $query_overrides); if ($exception_expected) { $this->expectException(BadRequestHttpException::class); @@ -334,7 +343,7 @@ public function providerFromRequest() { 'media_library_opener_id' => 'test', 'media_library_allowed_types' => ['file', 'image'], 'media_library_selected_type' => 'image', - 'media_library_form_mode' => 'media_library', + 'media_library_form_mode' => MediaLibraryState::DEFAULT_FORM_MODE, 'media_library_remaining' => 2, ], FALSE, @@ -378,7 +387,10 @@ public function providerFromRequest() { * @covers ::getOpenerParameters */ public function testOpenerParameters() { - $state = MediaLibraryState::create('test', ['file'], 'file', -1, ['foo' => 'baz'], $this->form_mode); + // @todo where should this be pulled from? The field widget specifies. + $form_mode = MediaLibraryState::DEFAULT_FORM_MODE; + + $state = MediaLibraryState::create('test', ['file'], 'file', -1, ['foo' => 'baz'], $form_mode); $this->assertSame(['foo' => 'baz'], $state->getOpenerParameters()); } @@ -386,8 +398,11 @@ public function testOpenerParameters() { * Tests that hash is unaffected by allowed media type order. */ public function testHashUnaffectedByMediaTypeOrder() { - $state1 = MediaLibraryState::create('test', ['file', 'image'], 'image', 2, [], $this->form_mode); - $state2 = MediaLibraryState::create('test', ['image', 'file'], 'image', 2, [], $this->form_mode); + // @todo where should this be pulled from? The field widget specifies. + $form_mode = MediaLibraryState::DEFAULT_FORM_MODE; + + $state1 = MediaLibraryState::create('test', ['file', 'image'], 'image', 2, [], $form_mode); + $state2 = MediaLibraryState::create('test', ['image', 'file'], 'image', 2, [], $form_mode); $this->assertSame($state1->getHash(), $state2->getHash()); } @@ -395,8 +410,11 @@ public function testHashUnaffectedByMediaTypeOrder() { * Tests that hash is unaffected by opener parameter order. */ public function testHashUnaffectedByOpenerParamOrder() { - $state1 = MediaLibraryState::create('test', ['file'], 'file', -1, ['foo' => 'baz', 'baz' => 'foo'], $this->form_mode); - $state2 = MediaLibraryState::create('test', ['file'], 'file', -1, ['baz' => 'foo', 'foo' => 'baz'], $this->form_mode); + // @todo where should this be pulled from? The field widget specifies. + $form_mode = MediaLibraryState::DEFAULT_FORM_MODE; + + $state1 = MediaLibraryState::create('test', ['file'], 'file', -1, ['foo' => 'baz', 'baz' => 'foo'], $form_mode); + $state2 = MediaLibraryState::create('test', ['file'], 'file', -1, ['baz' => 'foo', 'foo' => 'baz'], $form_mode); $this->assertSame($state1->getHash(), $state2->getHash()); }