diff --git a/core/modules/media_library/js/media_library.view.es6.js b/core/modules/media_library/js/media_library.view.es6.js index 6c797678f56bcb5e7f581619b01999d8c9b58601..19edce8bb953f83141703cf02d9a036a10db5ded 100644 --- a/core/modules/media_library/js/media_library.view.es6.js +++ b/core/modules/media_library/js/media_library.view.es6.js @@ -28,10 +28,10 @@ .trigger('change'); // Announce the selection. const announcement = $(currentTarget).prop('checked') - ? Drupal.t('Zero items selected') - : Drupal.t('All @count items selected', { + ? Drupal.t('All @count items selected', { '@count': $checkboxes.length, - }); + }) + : Drupal.t('Zero items selected'); Drupal.announce(announcement); }, ); diff --git a/core/modules/media_library/js/media_library.view.js b/core/modules/media_library/js/media_library.view.js index e47d7b878d68c2752537429f77a81bb72752c103..a8c335d50291c2daa4655068708aba049241e399 100644 --- a/core/modules/media_library/js/media_library.view.js +++ b/core/modules/media_library/js/media_library.view.js @@ -16,9 +16,9 @@ var $checkboxes = $(currentTarget).closest('.media-library-view').find('.js-media-library-item input[type="checkbox"]'); $checkboxes.prop('checked', $(currentTarget).prop('checked')).trigger('change'); - var announcement = $(currentTarget).prop('checked') ? Drupal.t('Zero items selected') : Drupal.t('All @count items selected', { + var announcement = $(currentTarget).prop('checked') ? Drupal.t('All @count items selected', { '@count': $checkboxes.length - }); + }) : Drupal.t('Zero items selected'); Drupal.announce(announcement); }); var $label = $('<label class="media-library-select-all"></label>').text(Drupal.t('Select all media')); diff --git a/core/modules/media_library/media_library.libraries.yml b/core/modules/media_library/media_library.libraries.yml index 9c14047e4d3575b38d533e951dee331be9d0d718..2eff9bf3ac8f1d9c376fa4b6042b824ec2096748 100644 --- a/core/modules/media_library/media_library.libraries.yml +++ b/core/modules/media_library/media_library.libraries.yml @@ -19,6 +19,7 @@ view: js: js/media_library.view.js: {} dependencies: + - core/drupal.announce - core/drupal.checkbox - media_library/style - media_library/click_to_select diff --git a/core/modules/media_library/tests/src/FunctionalJavascript/MediaLibraryTest.php b/core/modules/media_library/tests/src/FunctionalJavascript/MediaLibraryTest.php index 8e559d257a421f8ca0473e3e11d8a6a6a4829774..802dcf73fc11a4616e96062b316b0409d45d3eab 100644 --- a/core/modules/media_library/tests/src/FunctionalJavascript/MediaLibraryTest.php +++ b/core/modules/media_library/tests/src/FunctionalJavascript/MediaLibraryTest.php @@ -138,8 +138,15 @@ public function testAdministrationPage() { $assert_session->pageTextNotContains('Dog'); $assert_session->pageTextContains('Cat'); - // Test 'Select all media'. - $this->getSession()->getPage()->checkField('Select all media'); + // Test the 'Select all media' checkbox and assert that it makes the + // expected announcements. + $select_all = $assert_session->waitForField('Select all media'); + $this->assertNotEmpty($select_all); + $select_all->check(); + $this->assertNotEmpty($assert_session->waitForText('All 7 items selected')); + $select_all->uncheck(); + $this->assertNotEmpty($assert_session->waitForText('Zero items selected')); + $select_all->check(); $this->getSession()->getPage()->selectFieldOption('Action', 'media_delete_action'); $this->submitForm([], 'Apply to selected items'); $this->getSession()->getPage()->pressButton('Delete');