Skip to content

Commit 03a660d

Browse files
author
Ievgen Shakhsuvarov
committed
MAGETWO-43725: Pull request processing
1 parent 5b9f888 commit 03a660d

File tree

2 files changed

+24
-6
lines changed

2 files changed

+24
-6
lines changed

app/code/Magento/Eav/Model/Entity/Attribute/Group.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,12 @@ public function beforeSave()
6666
if (!$this->getAttributeGroupCode()) {
6767
$groupName = $this->getAttributeGroupName();
6868
if ($groupName) {
69-
// in the following code md5 is not used for security purposes
70-
$this->setAttributeGroupCode(md5($groupName));
69+
$attributeGroupCode = trim(preg_replace('/[^a-z0-9]+/', '-', strtolower($groupName)), '-');
70+
if (empty($attributeGroupCode)) {
71+
// in the following code md5 is not used for security purposes
72+
$attributeGroupCode = md5($groupName);
73+
}
74+
$this->setAttributeGroupCode($attributeGroupCode);
7175
}
7276
}
7377
return parent::beforeSave();

app/code/Magento/Eav/Test/Unit/Model/Entity/Attribute/GroupTest.php

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,26 @@ protected function setUp()
3939
$this->model = $objectManager->getObject('Magento\Eav\Model\Entity\Attribute\Group', $constructorArguments);
4040
}
4141

42-
public function testBeforeSaveGeneratesGroupCodeBasedOnGroupName()
42+
/**
43+
* @dataProvider attributeGroupCodeDataProvider
44+
* @param string $groupName
45+
* @param string $groupCode
46+
*/
47+
public function testBeforeSaveGeneratesGroupCodeBasedOnGroupName($groupName, $groupCode)
4348
{
44-
$groupName = 'General';
45-
$expectedGroupCode = md5($groupName);
4649
$this->model->setAttributeGroupName($groupName);
4750
$this->model->beforeSave();
48-
$this->assertEquals($expectedGroupCode, $this->model->getAttributeGroupCode());
51+
$this->assertEquals($groupCode, $this->model->getAttributeGroupCode());
52+
}
53+
54+
/**
55+
* @return array
56+
*/
57+
public function attributeGroupCodeDataProvider()
58+
{
59+
return [
60+
['General Group', 'general-group'],
61+
['///', md5('///')],
62+
];
4963
}
5064
}

0 commit comments

Comments
 (0)