From 4e277392cc056ebe014c2eeafebf9c1d4093b8ba Mon Sep 17 00:00:00 2001 From: Mohamed Azarudeen Date: Sat, 8 Mar 2025 16:39:43 +0530 Subject: [PATCH 1/3] Issue-39692 used block id for widget_parameters instead of block identifier and unit test case added --- .../Block/Adminhtml/Block/Widget/Chooser.php | 6 +-- .../Adminhtml/Block/Widget/ChooserTest.php | 53 ++++++++++++++++++- 2 files changed, 54 insertions(+), 5 deletions(-) diff --git a/app/code/Magento/Cms/Block/Adminhtml/Block/Widget/Chooser.php b/app/code/Magento/Cms/Block/Adminhtml/Block/Widget/Chooser.php index 3165b1bc02b22..68e2c4c8741bd 100644 --- a/app/code/Magento/Cms/Block/Adminhtml/Block/Widget/Chooser.php +++ b/app/code/Magento/Cms/Block/Adminhtml/Block/Widget/Chooser.php @@ -1,7 +1,7 @@ layoutMock = $this->getMockBuilder(LayoutInterface::class) @@ -93,6 +105,7 @@ protected function setUp(): void ->onlyMethods( [ 'escapeHtml', + 'escapeJs' ] ) ->getMock(); @@ -138,6 +151,13 @@ protected function setUp(): void ) ->onlyMethods(['toHtml']) ->getMockForAbstractClass(); + $this->backendHelperMock = $this->getMockBuilder(Data::class) + ->disableOriginalConstructor() + ->getMock(); + + $this->collectionFactoryMock = $this->getMockBuilder(CollectionFactory::class) + ->disableOriginalConstructor() + ->getMock(); $objectManager = new ObjectManager($this); $objectManager->prepareObjectManager(); @@ -286,4 +306,33 @@ public function testGetGridUrl() $this->assertEquals($url, $this->this->getGridUrl()); } + + /** + * @covers \Magento\Cms\Block\Adminhtml\Block\Widget\Chooser::testGetRowClickCallback + */ + public function testGetRowClickCallback(): void + { + $chooserBlock = new Chooser( + $this->context, + $this->backendHelperMock, + $this->blockFactoryMock, + $this->collectionFactoryMock + ); + $this->escaper->expects($this->once()) + ->method('escapeJs') + ->willReturnCallback(function($input) { + return $input; + }); + $jsCallback = $chooserBlock->getRowClickCallback(); + + $this->assertStringContainsString( + 'blockId = trElement.down("td").innerHTML.replace(/^\s+|\s+$/g,"")', + $jsCallback, + 'JavaScript callback should use first TD cell for block ID' + ); + + $this->assertStringContainsString('setElementValue(blockId)', $jsCallback); + $this->assertStringContainsString('setElementLabel(blockTitle)', $jsCallback); + $this->assertStringContainsString('close()', $jsCallback); + } } From 83451aa5c34c9b784a4cd113f782dce65bfe6ef8 Mon Sep 17 00:00:00 2001 From: Mohamed Azarudeen Date: Mon, 10 Mar 2025 14:01:55 +0530 Subject: [PATCH 2/3] Static test case fix --- .../Cms/Test/Unit/Block/Adminhtml/Block/Widget/ChooserTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Cms/Test/Unit/Block/Adminhtml/Block/Widget/ChooserTest.php b/app/code/Magento/Cms/Test/Unit/Block/Adminhtml/Block/Widget/ChooserTest.php index 7f3f3caf3eb81..4d0c2abeded76 100644 --- a/app/code/Magento/Cms/Test/Unit/Block/Adminhtml/Block/Widget/ChooserTest.php +++ b/app/code/Magento/Cms/Test/Unit/Block/Adminhtml/Block/Widget/ChooserTest.php @@ -320,7 +320,7 @@ public function testGetRowClickCallback(): void ); $this->escaper->expects($this->once()) ->method('escapeJs') - ->willReturnCallback(function($input) { + ->willReturnCallback(function ($input) { return $input; }); $jsCallback = $chooserBlock->getRowClickCallback(); From c33e0581f93d28e6bbeaa0f1153d21e3009fe52d Mon Sep 17 00:00:00 2001 From: Mohamed Azarudeen Date: Wed, 16 Apr 2025 20:17:05 +0530 Subject: [PATCH 3/3] Functional test fix --- .../Cms/Test/Mftf/Test/AdminAddBlockWidgetToCMSPageTest.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/code/Magento/Cms/Test/Mftf/Test/AdminAddBlockWidgetToCMSPageTest.xml b/app/code/Magento/Cms/Test/Mftf/Test/AdminAddBlockWidgetToCMSPageTest.xml index 0eb511beb2a05..bf76e383212cb 100644 --- a/app/code/Magento/Cms/Test/Mftf/Test/AdminAddBlockWidgetToCMSPageTest.xml +++ b/app/code/Magento/Cms/Test/Mftf/Test/AdminAddBlockWidgetToCMSPageTest.xml @@ -1,8 +1,8 @@ - +