From d80291c2750ea31d03a540687c8110a6b8779b82 Mon Sep 17 00:00:00 2001 From: Lauri Eskola <lauri.eskola@acquia.com> Date: Wed, 28 Jun 2023 21:17:56 +0300 Subject: [PATCH] Issue #3326455 by el7cosmos, lauriii, joshuami, zenimagine, Wim Leers, smustgrave: [drupalMedia] When media is embedded in a view mode whose display is configured to link elsewhere, that link should not be clickable in CKEditor --- core/modules/ckeditor5/css/drupalmedia.css | 4 ++++ .../src/FunctionalJavascript/MediaTest.php | 21 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/core/modules/ckeditor5/css/drupalmedia.css b/core/modules/ckeditor5/css/drupalmedia.css index a3468ad2fec1..e69e9c7ed6fa 100644 --- a/core/modules/ckeditor5/css/drupalmedia.css +++ b/core/modules/ckeditor5/css/drupalmedia.css @@ -13,6 +13,10 @@ min-width: 50px; } +.ck .drupal-media [data-drupal-media-preview] { + pointer-events: none; +} + .ck-content .drupal-media img { display: block; min-width: 100%; diff --git a/core/modules/ckeditor5/tests/src/FunctionalJavascript/MediaTest.php b/core/modules/ckeditor5/tests/src/FunctionalJavascript/MediaTest.php index c40c4e7456a8..210ede726dac 100644 --- a/core/modules/ckeditor5/tests/src/FunctionalJavascript/MediaTest.php +++ b/core/modules/ckeditor5/tests/src/FunctionalJavascript/MediaTest.php @@ -1673,4 +1673,25 @@ protected function getLastPreviewRequestTransferSize() { return $this->getSession()->evaluateScript($javascript); } + /** + * Ensure media preview isn't clickable. + */ + public function testMediaPointerEvent() { + $entityViewDisplay = EntityViewDisplay::load('media.image.view_mode_1'); + $thumbnail = $entityViewDisplay->getComponent('thumbnail'); + $thumbnail['settings']['image_link'] = 'file'; + $entityViewDisplay->setComponent('thumbnail', $thumbnail); + $entityViewDisplay->save(); + + $assert_session = $this->assertSession(); + $page = $this->getSession()->getPage(); + $url = $this->host->toUrl('edit-form'); + $this->drupalGet($url); + $this->waitForEditor(); + $assert_session->waitForLink('default alt'); + $page->find('css', '.ck .drupal-media')->click(); + // Assert that the media preview is not clickable by comparing the URL. + $this->assertEquals($url->toString(), $this->getUrl()); + } + } -- GitLab