From 982773dea5ce92206672407e73d72dcac529b33e Mon Sep 17 00:00:00 2001 From: Alex Pott Date: Sat, 18 May 2019 11:37:04 +0200 Subject: [PATCH] =?UTF-8?q?Issue=20#2884052=20by=20zviryatko,=20Krzysztof?= =?UTF-8?q?=20Doma=C5=84ski,=20alexpott,=20drclaw,=20vijaycs85,=20Madis,?= =?UTF-8?q?=20charlotte.b,=20mcdruid,=20Berdir,=20lauriii:=20Uploading=20a?= =?UTF-8?q?=20managed=20file=20on=20a=20custom=20form=20that=20allows=20mu?= =?UTF-8?q?ltiple=20files=20also=20triggers=20the=20remove=20button=20whic?= =?UTF-8?q?h=20results=20in=20a=20duplicate=20temporary=20record=20and=20r?= =?UTF-8?q?esults=20in=20the=20file=20being=20deleted?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/modules/file/file.es6.js | 2 +- core/modules/file/file.js | 2 +- .../AjaxFileManagedMultipleTest.php | 49 +++++++++++++++++++ 3 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 core/modules/file/tests/src/FunctionalJavascript/AjaxFileManagedMultipleTest.php diff --git a/core/modules/file/file.es6.js b/core/modules/file/file.es6.js index dc8a807424e3..ca65744e58b8 100644 --- a/core/modules/file/file.es6.js +++ b/core/modules/file/file.es6.js @@ -201,7 +201,7 @@ triggerUploadButton(event) { $(event.target) .closest('.js-form-managed-file') - .find('.js-form-submit') + .find('.js-form-submit[data-drupal-selector$="upload-button"]') .trigger('mousedown'); }, diff --git a/core/modules/file/file.js b/core/modules/file/file.js index 79aa8288c078..b14b7868b18c 100644 --- a/core/modules/file/file.js +++ b/core/modules/file/file.js @@ -92,7 +92,7 @@ } }, triggerUploadButton: function triggerUploadButton(event) { - $(event.target).closest('.js-form-managed-file').find('.js-form-submit').trigger('mousedown'); + $(event.target).closest('.js-form-managed-file').find('.js-form-submit[data-drupal-selector$="upload-button"]').trigger('mousedown'); }, disableFields: function disableFields(event) { var $clickedButton = $(this); diff --git a/core/modules/file/tests/src/FunctionalJavascript/AjaxFileManagedMultipleTest.php b/core/modules/file/tests/src/FunctionalJavascript/AjaxFileManagedMultipleTest.php new file mode 100644 index 000000000000..c4165a8b3398 --- /dev/null +++ b/core/modules/file/tests/src/FunctionalJavascript/AjaxFileManagedMultipleTest.php @@ -0,0 +1,49 @@ +getStorage('file'); + $page = $this->getSession()->getPage(); + + $this->drupalGet(Url::fromRoute('file_module_test.managed_test', ['multiple' => TRUE])); + + $paths = []; + foreach (array_slice($this->drupalGetTestFiles('image'), 0, 2) as $image) { + $paths[] = $image->filename; + $page->attachFileToField('files[nested_file][]', $file_system->realpath($image->uri)); + $this->assertSession()->assertWaitOnAjaxRequest(); + } + + // Save entire form. + $page->pressButton('Save'); + + $this->assertSession()->pageTextContains('The file ids are 1,2.'); + $this->assertCount(2, $file_storage->loadByProperties(['filename' => $paths])); + } + +}