diff --git a/core/modules/media_library/tests/modules/media_library_test/config/install/core.entity_form_display.node.basic_page.default.yml b/core/modules/media_library/tests/modules/media_library_test/config/install/core.entity_form_display.node.basic_page.default.yml index f7fd27b327f6dbd83638752143e56da4d4ccaf94..7fbc5ef2ef714d182d2508ae2adbe2568d7c66e7 100644 --- a/core/modules/media_library/tests/modules/media_library_test/config/install/core.entity_form_display.node.basic_page.default.yml +++ b/core/modules/media_library/tests/modules/media_library_test/config/install/core.entity_form_display.node.basic_page.default.yml @@ -44,6 +44,12 @@ content: settings: { } third_party_settings: { } region: content + field_empty_types_media: + type: media_library_widget + weight: 125 + settings: { } + third_party_settings: { } + region: content promote: type: boolean_checkbox settings: diff --git a/core/modules/media_library/tests/modules/media_library_test/config/install/core.entity_view_display.node.basic_page.default.yml b/core/modules/media_library/tests/modules/media_library_test/config/install/core.entity_view_display.node.basic_page.default.yml index 17fb52793fcab06781264d8dc3227939866a67c6..897c176eb0fea9312e494924189dde745bdf8f1d 100644 --- a/core/modules/media_library/tests/modules/media_library_test/config/install/core.entity_view_display.node.basic_page.default.yml +++ b/core/modules/media_library/tests/modules/media_library_test/config/install/core.entity_view_display.node.basic_page.default.yml @@ -49,6 +49,15 @@ content: link: false third_party_settings: { } region: content + field_empty_types_media: + type: entity_reference_entity_view + weight: 103 + label: above + settings: + view_mode: default + link: false + third_party_settings: { } + region: content links: weight: 100 settings: { } diff --git a/core/modules/media_library/tests/modules/media_library_test/config/install/field.field.node.basic_page.field_empty_types_media.yml b/core/modules/media_library/tests/modules/media_library_test/config/install/field.field.node.basic_page.field_empty_types_media.yml new file mode 100644 index 0000000000000000000000000000000000000000..e4663cd52971b18e3b95dea938c8297313fd2f23 --- /dev/null +++ b/core/modules/media_library/tests/modules/media_library_test/config/install/field.field.node.basic_page.field_empty_types_media.yml @@ -0,0 +1,27 @@ +langcode: en +status: true +dependencies: + config: + - field.storage.node.field_empty_types_media + - media.type.type_one + - media.type.type_two + - node.type.basic_page +id: node.basic_page.field_empty_types_media +field_name: field_empty_types_media +entity_type: node +bundle: basic_page +label: 'Empty types media' +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: + handler: 'default:media' + handler_settings: + target_bundles: null + sort: + field: _none + auto_create: false + auto_create_bundle: file +field_type: entity_reference diff --git a/core/modules/media_library/tests/modules/media_library_test/config/install/field.storage.node.field_empty_types_media.yml b/core/modules/media_library/tests/modules/media_library_test/config/install/field.storage.node.field_empty_types_media.yml new file mode 100644 index 0000000000000000000000000000000000000000..1b9af61157aaf61b6bf93e3e3fca03173320b605 --- /dev/null +++ b/core/modules/media_library/tests/modules/media_library_test/config/install/field.storage.node.field_empty_types_media.yml @@ -0,0 +1,19 @@ +langcode: en +status: true +dependencies: + module: + - media + - node +id: node.field_empty_types_media +field_name: field_empty_types_media +entity_type: node +type: entity_reference +settings: + target_type: media +module: core +locked: false +cardinality: -1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/core/modules/media_library/tests/src/FunctionalJavascript/MediaLibraryTest.php b/core/modules/media_library/tests/src/FunctionalJavascript/MediaLibraryTest.php index 1bec4b4cc08cc588d688e3bcce62581d1357960a..6b14884b4ee1bbbc484fb81c8b5c4d2f097f7b56 100644 --- a/core/modules/media_library/tests/src/FunctionalJavascript/MediaLibraryTest.php +++ b/core/modules/media_library/tests/src/FunctionalJavascript/MediaLibraryTest.php @@ -201,6 +201,7 @@ public function testWidget() { $assert_session->pageTextContains('Unlimited media'); $assert_session->pageTextContains('Twin media'); $assert_session->pageTextContains('Single media type'); + $assert_session->pageTextContains('Empty types media'); // Assert generic media library elements. $assert_session->elementExists('css', '.media-library-open-button[href*="field_unlimited_media"]')->click(); @@ -215,10 +216,23 @@ public function testWidget() { $assert_session->elementExists('css', '.media-library-open-button[href*="field_unlimited_media"]')->click(); $assert_session->assertWaitOnAjaxRequest(); $menu = $assert_session->elementExists('css', '.media-library-menu'); - $assert_session->elementExists('named', ['link', 'Type One'], $menu); - $assert_session->elementNotExists('named', ['link', 'Type Two'], $menu); - $assert_session->elementExists('named', ['link', 'Type Three'], $menu); - $assert_session->elementNotExists('named', ['link', 'Type Four'], $menu); + $this->assertTrue($menu->hasLink('Type One')); + $this->assertFalse($menu->hasLink('Type Two')); + $this->assertTrue($menu->hasLink('Type Three')); + $this->assertFalse($menu->hasLink('Type Four')); + $page->find('css', '.ui-dialog-titlebar-close')->click(); + $assert_session->assertWaitOnAjaxRequest(); + + // Assert that the media type menu is available when no types are configured + // for the field. All types should be available in this case. + $assert_session->elementExists('css', '.media-library-open-button[href*="field_empty_types_media"]')->click(); + $assert_session->assertWaitOnAjaxRequest(); + $menu = $assert_session->elementExists('css', '.media-library-menu'); + $this->assertTrue($menu->hasLink('Type One')); + $this->assertTrue($menu->hasLink('Type Two')); + $this->assertTrue($menu->hasLink('Type Three')); + $this->assertTrue($menu->hasLink('Type Four')); + $this->assertTrue($menu->hasLink('Type Five')); $page->find('css', '.ui-dialog-titlebar-close')->click(); $assert_session->assertWaitOnAjaxRequest();