From df339b57362b12c5a3f9db7ca2b95fe8d170bf95 Mon Sep 17 00:00:00 2001 From: Artem Kirkor Date: Tue, 2 Aug 2022 13:02:36 +0300 Subject: [PATCH 1/2] Issue #35676 Update column validation RegExp --- .../Magento/ImportExport/Model/Import/Entity/AbstractEntity.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/ImportExport/Model/Import/Entity/AbstractEntity.php b/app/code/Magento/ImportExport/Model/Import/Entity/AbstractEntity.php index 9188f38390a2a..893f8d8ca9fb4 100644 --- a/app/code/Magento/ImportExport/Model/Import/Entity/AbstractEntity.php +++ b/app/code/Magento/ImportExport/Model/Import/Entity/AbstractEntity.php @@ -805,7 +805,7 @@ public function validateData() if (!$this->isAttributeParticular($columnName)) { if (trim($columnName ?? '') == '') { $emptyHeaderColumns[] = $columnNumber; - } elseif (!$columnName || !preg_match('/^[a-z][a-z0-9_]*$/', $columnName)) { + } elseif (!$columnName || !preg_match('/^[\w\d_]*$/', $columnName)) { $invalidColumns[] = $columnName; } elseif ($this->needColumnCheck && !in_array($columnName, $this->getValidColumnNames())) { $invalidAttributes[] = $columnName; From 9ecbf0d2f2ed48d9effb3a2e38b6e363510043d4 Mon Sep 17 00:00:00 2001 From: Artem Kirkor Date: Tue, 2 Aug 2022 14:40:21 +0300 Subject: [PATCH 2/2] Issue #35676 Add Unit tests --- .../Unit/Model/Import/Entity/AbstractTest.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/ImportExport/Test/Unit/Model/Import/Entity/AbstractTest.php b/app/code/Magento/ImportExport/Test/Unit/Model/Import/Entity/AbstractTest.php index d6dc48a995fe1..ced0afc90d07e 100644 --- a/app/code/Magento/ImportExport/Test/Unit/Model/Import/Entity/AbstractTest.php +++ b/app/code/Magento/ImportExport/Test/Unit/Model/Import/Entity/AbstractTest.php @@ -126,6 +126,21 @@ public function testValidateDataColumnNameWithWhitespaces() ); } + /** + * Test for method validateData() + * + * @covers \Magento\ImportExport\Model\Import\Entity\AbstractEntity::validateData + */ + public function testValidateColumnName() + { + $this->_createSourceAdapterMock(['Test_1']); + $errorAggregator = $this->_model->validateData(); + $this->assertArrayNotHasKey( + AbstractEntity::ERROR_CODE_COLUMN_NAME_INVALID, + $errorAggregator->getRowsGroupedByErrorCode() + ); + } + /** * Test for method validateData() * @@ -133,7 +148,7 @@ public function testValidateDataColumnNameWithWhitespaces() */ public function testValidateDataAttributeNames() { - $this->_createSourceAdapterMock(['_test1']); + $this->_createSourceAdapterMock(['test.1', '@test']); $errorAggregator = $this->_model->validateData(); $this->assertArrayHasKey( AbstractEntity::ERROR_CODE_COLUMN_NAME_INVALID,