Skip to content

Commit 0233a97

Browse files
committed
MC-22963: Identify and refactor GET requests that modify data.
Refactor Tax rate delete class to use POST. Add integration test.
1 parent dc6c4ec commit 0233a97

File tree

3 files changed

+35
-2
lines changed
  • app/code/Magento/Tax
  • dev/tests/integration/testsuite/Magento/Tax/Controller/Adminhtml

3 files changed

+35
-2
lines changed

app/code/Magento/Tax/Block/Adminhtml/Rate/Toolbar/Save.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ protected function _prepareLayout()
133133
) . '\', \'' . $this->getUrl(
134134
'tax/*/delete',
135135
['rate' => $rate]
136-
) . '\')',
136+
) . '\', {data: {}})',
137137
'class' => 'delete'
138138
]
139139
);

app/code/Magento/Tax/Controller/Adminhtml/Rate/Delete.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@
88

99
use Magento\Framework\Exception\NoSuchEntityException;
1010
use Magento\Framework\Controller\ResultFactory;
11+
use Magento\Framework\App\Action\HttpPostActionInterface;
1112

12-
class Delete extends \Magento\Tax\Controller\Adminhtml\Rate
13+
class Delete extends \Magento\Tax\Controller\Adminhtml\Rate implements HttpPostActionInterface
1314
{
1415
/**
1516
* Delete Rate and Data

dev/tests/integration/testsuite/Magento/Tax/Controller/Adminhtml/RateTest.php

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
namespace Magento\Tax\Controller\Adminhtml;
88

9+
use Magento\Framework\App\Request\Http as HttpRequest;
10+
911
/**
1012
* @magentoAppArea adminhtml
1113
*/
@@ -283,4 +285,34 @@ public function testAjaxNonLoadAction()
283285
$this->assertArrayHasKey('error_message', $result);
284286
$this->assertTrue(strlen($result['error_message'])>0);
285287
}
288+
289+
/** Test Delete Tax Rate
290+
* @magentoAppIsolation enabled
291+
* @magentoDbIsolation enabled
292+
* @return void
293+
*/
294+
public function testDeleteRate(): void
295+
{
296+
$rateId = 2;
297+
$this->getRequest()->setMethod(HttpRequest::METHOD_POST);
298+
$this->getRequest()->setPostValue(['rate' => $rateId]);
299+
$this->dispatch('backend/tax/rate/delete');
300+
$successMessage = (string)__('You deleted the tax rate.');
301+
$this->assertSessionMessages($this->equalTo([$successMessage]));
302+
}
303+
304+
/** Test Delete Incorrect Tax Rate
305+
* @magentoAppIsolation enabled
306+
* @magentoDbIsolation enabled
307+
* @return void
308+
*/
309+
public function testDeleteIncorrectRate(): void
310+
{
311+
$incorrectRateId = 20999;
312+
$this->getRequest()->setMethod(HttpRequest::METHOD_POST);
313+
$this->getRequest()->setPostValue(['rate' => $incorrectRateId]);
314+
$this->dispatch('backend/tax/rate/delete');
315+
$errorMessage = (string)_("We can't delete this rate because of an incorrect rate ID.");
316+
$this->assertSessionMessages($this->equalTo([$errorMessage]));
317+
}
286318
}

0 commit comments

Comments
 (0)