Skip to content

Commit 9aaa87a

Browse files
committed
MAGETWO-70661: Orders export to csv shows inconsistent date format
- Fixed date format for export CSV and Excel XML files
1 parent 03ab0fd commit 9aaa87a

File tree

2 files changed

+79
-1
lines changed

2 files changed

+79
-1
lines changed

app/code/Magento/Ui/Model/Export/MetadataProvider.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public function __construct(
6060
Filter $filter,
6161
TimezoneInterface $localeDate,
6262
ResolverInterface $localeResolver,
63-
$dateFormat = 'M j, Y H:i:s A',
63+
$dateFormat = 'M j, Y h:i:s A',
6464
array $data = []
6565
) {
6666
$this->filter = $filter;

app/code/Magento/Ui/Test/Unit/Model/Export/MetadataProviderTest.php

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
namespace Magento\Ui\Test\Unit\Model\Export;
77

88
use Magento\Framework\Api\Search\DocumentInterface;
9+
use Magento\Framework\Locale\ResolverInterface;
10+
use Magento\Framework\Stdlib\DateTime\TimezoneInterface;
911
use Magento\Framework\View\Element\UiComponentInterface;
1012
use Magento\Ui\Component\Listing\Columns;
1113
use Magento\Ui\Component\Listing\Columns\Column;
@@ -25,17 +27,42 @@ class MetadataProviderTest extends \PHPUnit\Framework\TestCase
2527
*/
2628
protected $filter;
2729

30+
/**
31+
* @var TimezoneInterface | \PHPUnit_Framework_MockObject_MockObject
32+
*/
33+
protected $localeDate;
34+
35+
/**
36+
* @var ResolverInterface | \PHPUnit_Framework_MockObject_MockObject
37+
*/
38+
protected $localeResolver;
39+
2840
protected function setUp()
2941
{
3042
$this->filter = $this->getMockBuilder(\Magento\Ui\Component\MassAction\Filter::class)
3143
->disableOriginalConstructor()
3244
->getMock();
3345

46+
$this->localeDate = $this->getMockBuilder(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::class)
47+
->disableOriginalConstructor()
48+
->getMock();
49+
50+
$this->localeResolver = $this->getMockBuilder(\Magento\Framework\Locale\ResolverInterface::class)
51+
->disableOriginalConstructor()
52+
->getMock();
53+
54+
$this->localeResolver->expects($this->any())
55+
->method('getLocale')
56+
->willReturn(null);
57+
3458
$objectManager = new ObjectManager($this);
3559
$this->model = $objectManager->getObject(
3660
\Magento\Ui\Model\Export\MetadataProvider::class,
3761
[
3862
'filter' => $this->filter,
63+
'localeDate' => $this->localeDate,
64+
'localeResolver' => $this->localeResolver,
65+
'data' => ['component_name' => ['field']],
3966
]
4067
);
4168
}
@@ -347,4 +374,55 @@ public function getOptionsDataProvider()
347374
],
348375
];
349376
}
377+
378+
/**
379+
* Test for convertDate function
380+
*
381+
* @param string $fieldValue
382+
* @param string $expected
383+
* @dataProvider convertDateProvider
384+
* @covers \Magento\Ui\Model\Export\MetadataProvider::convertDate()
385+
*/
386+
public function testConvertDate($fieldValue, $expected)
387+
{
388+
$componentName = 'component_name';
389+
/** @var DocumentInterface|\PHPUnit_Framework_MockObject_MockObject $document */
390+
$document = $this->getMockBuilder(\Magento\Framework\DataObject::class)
391+
->disableOriginalConstructor()
392+
->getMock();
393+
394+
$document->expects($this->once())
395+
->method('getData')
396+
->with('field')
397+
->willReturn($fieldValue);
398+
399+
$this->localeDate->expects($this->once())
400+
->method('date')
401+
->willReturn(new \DateTime($fieldValue, new \DateTimeZone('UTC')));
402+
403+
$document->expects($this->once())
404+
->method('setData')
405+
->with('field', $expected);
406+
407+
$this->model->convertDate($document, $componentName);
408+
}
409+
410+
/**
411+
* Data provider for testConvertDate
412+
*
413+
* @return array
414+
*/
415+
public function convertDateProvider()
416+
{
417+
return [
418+
[
419+
'fieldValue' => '@1534505233',
420+
'expected' => 'Aug 17, 2018 11:27:13 AM',
421+
],
422+
[
423+
'fieldValue' => '@1534530000',
424+
'expected' => 'Aug 17, 2018 06:20:00 PM',
425+
],
426+
];
427+
}
350428
}

0 commit comments

Comments
 (0)