Skip to content

Commit 91f8c8f

Browse files
committed
MAGETWO-71669: Incorrect date format with Arabic language locale
- Add rollback to customer with date attribute;
1 parent 51a335a commit 91f8c8f

File tree

5 files changed

+117
-59
lines changed

5 files changed

+117
-59
lines changed

dev/tests/integration/testsuite/Magento/Customer/Controller/Account/CreatePostTest.php

Lines changed: 21 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,10 @@
88
use Magento\TestFramework\Helper\Bootstrap;
99

1010
/**
11-
* @magentoDataFixture Magento/Customer/_files/customer_date_attribute.php
11+
* @magentoAppArea adminhtml
1212
*/
1313
class CreatePostTest extends \Magento\TestFramework\TestCase\AbstractController
1414
{
15-
const DOB = '1991-12-31';
1615
const EXPECTED_DOB = '1991-12-31';
1716
const EXPECTED_DATE = '2017-12-25 00:00:00';
1817

@@ -27,52 +26,32 @@ protected function setUp()
2726
}
2827

2928
/**
30-
* @param string $dob
31-
* @param string $date
32-
* @param string $expectedDob
33-
* @param string $expectedDate
34-
* @param string $locale
35-
* @param string $email
36-
* @dataProvider getDate
3729
* @magentoDbIsolation enabled
30+
* @magentoDataFixture Magento/Customer/_files/date_attribute.php
31+
* @magentoDataFixture Magento/Customer/_files/customer_date_attribute.php
3832
*/
39-
public function testCustomerSaveWithDateAttributes($dob, $date, $expectedDob, $expectedDate, $locale, $email)
33+
public function testCustomerSaveWithDateAttributes()
4034
{
4135
$objectManager = Bootstrap::getObjectManager();
42-
$objectManager->get('Magento\Framework\Locale\ResolverInterface')->setLocale($locale);
4336

4437
/** @var $repository \Magento\Customer\Api\CustomerRepositoryInterface */
4538
$repository = $objectManager->create('Magento\Customer\Api\CustomerRepositoryInterface');
46-
$customer = $objectManager->create('Magento\Customer\Api\Data\CustomerInterface');
47-
48-
/** @var \Magento\Customer\Api\Data\CustomerInterface $customer */
49-
$customer->setWebsiteId(1)
50-
->setEmail($email)
51-
->setGroupId(1)
52-
->setStoreId(1)
53-
->setFirstname('John')
54-
->setLastname('Smith')
55-
->setDefaultBilling(1)
56-
->setDefaultShipping(1)
57-
->setTaxvat('12')
58-
->setGender(0)
59-
->setDob($dob)
60-
->setCustomAttribute('date', $date);
61-
$repository->save($customer, 'password');
62-
63-
$customer = $repository->get($email);
64-
$customerDob = $customer->getDob();
65-
$customerDate = $customer->getCustomAttribute('date')->getValue();
66-
$this->assertEquals($expectedDob, $customerDob);
67-
$this->assertEquals($expectedDate, $customerDate);
68-
}
69-
70-
public function getDate()
71-
{
72-
return [
73-
[self::DOB, '12/25/2017', self::EXPECTED_DOB, SELF::EXPECTED_DATE, 'en_US', 'customer1@example.com'],
74-
[self::DOB, '25/12/2017', self::EXPECTED_DOB, SELF::EXPECTED_DATE, 'fr_FR', 'customer2@example.com'],
75-
[self::DOB, '25/12/2017', self::EXPECTED_DOB, SELF::EXPECTED_DATE, 'ar_KW', 'customer3@example.com'],
76-
];
39+
$customer1 = $repository->get('john.doe1@ex.com', 1);
40+
$customerDob = $customer1->getDob();
41+
$customerDate = $customer1->getCustomAttribute('date')->getValue();
42+
$this->assertEquals(self::EXPECTED_DOB, $customerDob);
43+
$this->assertEquals(self::EXPECTED_DATE, $customerDate);
44+
45+
$customer2 = $repository->get('john.doe2@ex.com', 1);
46+
$customerDob = $customer2->getDob();
47+
$customerDate = $customer2->getCustomAttribute('date')->getValue();
48+
$this->assertEquals(self::EXPECTED_DOB, $customerDob);
49+
$this->assertEquals(self::EXPECTED_DATE, $customerDate);
50+
51+
$customer3 = $repository->get('john.doe3@ex.com', 1);
52+
$customerDob = $customer3->getDob();
53+
$customerDate = $customer3->getCustomAttribute('date')->getValue();
54+
$this->assertEquals(self::EXPECTED_DOB, $customerDob);
55+
$this->assertEquals(self::EXPECTED_DATE, $customerDate);
7756
}
7857
}

dev/tests/integration/testsuite/Magento/Customer/_files/customer_date_attribute.php

Lines changed: 53 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,56 @@
55
*/
66

77
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
8-
/** @var Magento\Customer\Model\Attribute $dateAttribute */
9-
$dateAttribute = $objectManager->create(\Magento\Customer\Model\Attribute::class);
10-
$dateAttribute->setName('date')
11-
->setEntityTypeId(1)
12-
->setIsUserDefined(1)
13-
->setAttributeSetId(1)
14-
->setAttributeGroupId(1)
15-
->setAttributeCode('date')
16-
->setFrontendInput('date')
17-
->setFrontendLabel('date_attribute_frontend_label')
18-
->setFrontendModel('Magento\Eav\Model\Entity\Attribute\Frontend\Datetime')
19-
->setBackendType('datetime')
20-
->setBackendModel('Magento\Eav\Model\Entity\Attribute\Backend\Datetime')
21-
->setSortOrder(42)
22-
->save();
8+
/** @var $repository \Magento\Customer\Api\CustomerRepositoryInterface */
9+
$repository = $objectManager->create('Magento\Customer\Api\CustomerRepositoryInterface');
10+
11+
$objectManager->get('Magento\Framework\Locale\ResolverInterface')->setLocale('en_US');
12+
$customer1 = $objectManager->create('Magento\Customer\Api\Data\CustomerInterface');
13+
/** @var \Magento\Customer\Api\Data\CustomerInterface $customer */
14+
$customer1->setWebsiteId(1)
15+
->setEmail('john.doe1@ex.com')
16+
->setGroupId(1)
17+
->setStoreId(1)
18+
->setFirstname('John')
19+
->setLastname('Smith')
20+
->setDefaultBilling(1)
21+
->setDefaultShipping(1)
22+
->setTaxvat('12')
23+
->setGender(0)
24+
->setDob('1991-12-31')
25+
->setCustomAttribute('date', '12/25/2017');
26+
$repository->save($customer1, 'password');
27+
28+
$objectManager->get('Magento\Framework\Locale\ResolverInterface')->setLocale('fr_FR');
29+
$customer2 = $objectManager->create('Magento\Customer\Api\Data\CustomerInterface');
30+
/** @var \Magento\Customer\Api\Data\CustomerInterface $customer */
31+
$customer2->setWebsiteId(1)
32+
->setEmail('john.doe2@ex.com')
33+
->setGroupId(1)
34+
->setStoreId(1)
35+
->setFirstname('John')
36+
->setLastname('Smith')
37+
->setDefaultBilling(1)
38+
->setDefaultShipping(1)
39+
->setTaxvat('12')
40+
->setGender(0)
41+
->setDob('1991-12-31')
42+
->setCustomAttribute('date', '25/12/2017');
43+
$repository->save($customer2, 'password');
44+
45+
$objectManager->get('Magento\Framework\Locale\ResolverInterface')->setLocale('ar_KW');
46+
$customer3 = $objectManager->create('Magento\Customer\Api\Data\CustomerInterface');
47+
/** @var \Magento\Customer\Api\Data\CustomerInterface $customer */
48+
$customer3->setWebsiteId(1)
49+
->setEmail('john.doe3@ex.com')
50+
->setGroupId(1)
51+
->setStoreId(1)
52+
->setFirstname('John')
53+
->setLastname('Smith')
54+
->setDefaultBilling(1)
55+
->setDefaultShipping(1)
56+
->setTaxvat('12')
57+
->setGender(0)
58+
->setDob('1991-12-31')
59+
->setCustomAttribute('date', '25/12/2017');
60+
$repository->save($customer3, 'password');

dev/tests/integration/testsuite/Magento/Customer/_files/customer_date_attribute_rollback.php

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,15 @@
55
*/
66

77
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
8-
$model = $objectManager->create('Magento\Customer\Model\Attribute');
9-
$model->load('date', 'attribute_code')->delete();
8+
/** @var $repository \Magento\Customer\Api\CustomerRepositoryInterface */
9+
$repository = $objectManager->create('Magento\Customer\Api\CustomerRepositoryInterface');
10+
11+
$customer = $objectManager->create('Magento\Customer\Model\Customer');
12+
$customer1 = $repository->get('john.doe1@ex.com', 1);
13+
$repository->delete($customer1);
14+
15+
$customer2 = $repository->get('john.doe2@ex.com', 1);
16+
$repository->delete($customer2);
17+
18+
$customer3 = $repository->get('john.doe3@ex.com', 1);
19+
$repository->delete($customer3);
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?php
2+
/**
3+
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
8+
/** @var Magento\Customer\Model\Attribute $dateAttribute */
9+
$dateAttribute = $objectManager->create(\Magento\Customer\Model\Attribute::class);
10+
$dateAttribute->setName('date')
11+
->setEntityTypeId(1)
12+
->setIsUserDefined(1)
13+
->setAttributeSetId(1)
14+
->setAttributeGroupId(1)
15+
->setAttributeCode('date')
16+
->setFrontendInput('date')
17+
->setFrontendLabel('date_attribute_frontend_label')
18+
->setFrontendModel('Magento\Eav\Model\Entity\Attribute\Frontend\Datetime')
19+
->setBackendType('datetime')
20+
->setBackendModel('Magento\Eav\Model\Entity\Attribute\Backend\Datetime')
21+
->setSortOrder(42)
22+
->save();
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?php
2+
/**
3+
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
8+
$model = $objectManager->create('Magento\Customer\Model\Attribute');
9+
$model->load('date', 'attribute_code')->delete();

0 commit comments

Comments
 (0)