diff --git a/app/code/Magento/ImportExport/Model/Import/Entity/AbstractEntity.php b/app/code/Magento/ImportExport/Model/Import/Entity/AbstractEntity.php index eb2d56018b31b..87d5f1c1f898a 100644 --- a/app/code/Magento/ImportExport/Model/Import/Entity/AbstractEntity.php +++ b/app/code/Magento/ImportExport/Model/Import/Entity/AbstractEntity.php @@ -1,7 +1,7 @@ isAttributeParticular($columnName)) { if (trim($columnName ?? '') == '') { $emptyHeaderColumns[] = $columnNumber; - } elseif (!$columnName || !preg_match('/^[a-z][a-z0-9_]*$/', $columnName)) { + } elseif (!$columnName || !preg_match('/^[a-zA-Z][a-z0-9_]*$/', $columnName)) { $invalidColumns[] = $columnName; } elseif ($this->needColumnCheck && !in_array($columnName, $this->getValidColumnNames())) { $invalidAttributes[] = $columnName; 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 9f6c3cbdd0fcc..c169a883ff0a9 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 @@ -1,7 +1,7 @@ getRowsGroupedByErrorCode() ); } + + /** + * 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,