Skip to content

Commit 5d169ad

Browse files
committed
MAGETWO-85502: #12625: Add Current Date to update_time Field for Block and Pages #12636
- Merge Pull Request #12636 from osrecio/magento2:PR#12625_2.2 - Merged commits: 1. 22f454d
2 parents b0babda + 22f454d commit 5d169ad

File tree

6 files changed

+108
-16
lines changed

6 files changed

+108
-16
lines changed

app/code/Magento/Cms/Model/Block.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
namespace Magento\Cms\Model;
77

88
use Magento\Cms\Api\Data\BlockInterface;
9-
use Magento\Cms\Model\ResourceModel\Block as ResourceCmsBlock;
109
use Magento\Framework\DataObject\IdentityInterface;
1110
use Magento\Framework\Model\AbstractModel;
1211

@@ -58,6 +57,11 @@ protected function _construct()
5857
public function beforeSave()
5958
{
6059
$needle = 'block_id="' . $this->getId() . '"';
60+
61+
if ($this->hasDataChanges()) {
62+
$this->setUpdateTime(null);
63+
}
64+
6165
if (false == strstr($this->getContent(), $needle)) {
6266
return parent::beforeSave();
6367
}

app/code/Magento/Cms/Model/Page.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,11 @@
66
namespace Magento\Cms\Model;
77

88
use Magento\Cms\Api\Data\PageInterface;
9-
use Magento\Cms\Model\ResourceModel\Page as ResourceCmsPage;
9+
use Magento\Cms\Helper\Page as PageHelper;
1010
use Magento\Framework\App\Config\ScopeConfigInterface;
1111
use Magento\Framework\DataObject\IdentityInterface;
1212
use Magento\Framework\Exception\LocalizedException;
1313
use Magento\Framework\Model\AbstractModel;
14-
use Magento\Cms\Helper\Page as PageHelper;
1514

1615
/**
1716
* Cms Page Model
@@ -547,6 +546,10 @@ public function beforeSave()
547546
$originalIdentifier = $this->getOrigData('identifier');
548547
$currentIdentifier = $this->getIdentifier();
549548

549+
if ($this->hasDataChanges()) {
550+
$this->setUpdateTime(null);
551+
}
552+
550553
if (!$this->getId() || $originalIdentifier === $currentIdentifier) {
551554
return parent::beforeSave();
552555
}

app/code/Magento/Cms/Model/ResourceModel/Block.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77

88
use Magento\Cms\Api\Data\BlockInterface;
99
use Magento\Framework\DB\Select;
10+
use Magento\Framework\EntityManager\EntityManager;
11+
use Magento\Framework\EntityManager\MetadataPool;
1012
use Magento\Framework\Exception\LocalizedException;
1113
use Magento\Framework\Model\AbstractModel;
12-
use Magento\Framework\EntityManager\MetadataPool;
13-
use Magento\Framework\EntityManager\EntityManager;
1414
use Magento\Framework\Model\ResourceModel\Db\AbstractDb;
1515
use Magento\Framework\Model\ResourceModel\Db\Context;
1616
use Magento\Store\Model\Store;

app/code/Magento/Cms/Model/ResourceModel/Page.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,18 @@
66

77
namespace Magento\Cms\Model\ResourceModel;
88

9+
use Magento\Cms\Api\Data\PageInterface;
910
use Magento\Cms\Model\Page as CmsPage;
1011
use Magento\Framework\DB\Select;
12+
use Magento\Framework\EntityManager\EntityManager;
13+
use Magento\Framework\EntityManager\MetadataPool;
1114
use Magento\Framework\Exception\LocalizedException;
1215
use Magento\Framework\Model\AbstractModel;
13-
use Magento\Framework\EntityManager\MetadataPool;
1416
use Magento\Framework\Model\ResourceModel\Db\AbstractDb;
1517
use Magento\Framework\Model\ResourceModel\Db\Context;
1618
use Magento\Framework\Stdlib\DateTime;
1719
use Magento\Store\Model\Store;
1820
use Magento\Store\Model\StoreManagerInterface;
19-
use Magento\Framework\EntityManager\EntityManager;
20-
use Magento\Cms\Api\Data\PageInterface;
2121

2222
/**
2323
* Cms page mysql resource
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Cms\Model;
7+
8+
use Magento\Cms\Api\BlockRepositoryInterface;
9+
use Magento\Cms\Model\BlockFactory;
10+
use Magento\Cms\Model\ResourceModel\Block;
11+
use Magento\Framework\ObjectManagerInterface;
12+
use Magento\Framework\Stdlib\DateTime\DateTime;
13+
use Magento\TestFramework\Helper\Bootstrap;
14+
use PHPUnit\Framework\TestCase;
15+
16+
/**
17+
* @magentoAppArea adminhtml
18+
*/
19+
class BlockTest extends TestCase
20+
{
21+
/**
22+
* @var ObjectManagerInterface
23+
*/
24+
private $objectManager;
25+
26+
/**
27+
* @var Block
28+
*/
29+
private $blockResource;
30+
31+
/**
32+
* @var BlockFactory
33+
*/
34+
private $blockFactory;
35+
36+
/**
37+
* @var BlockRepositoryInterface
38+
*/
39+
private $blockRepository;
40+
41+
protected function setUp()
42+
{
43+
$this->objectManager = Bootstrap::getObjectManager();
44+
45+
/** @var BlockFactory $blockFactory */
46+
/** @var Block $blockResource */
47+
$this->blockResource = $this->objectManager->create(Block::class);
48+
$this->blockFactory = $this->objectManager->create(BlockFactory::class);
49+
$this->blockRepository = $this->objectManager->create(BlockRepositoryInterface::class);
50+
}
51+
52+
/**
53+
* Test UpdateTime
54+
* @param array $blockData
55+
* @throws \Exception
56+
* @magentoDbIsolation enabled
57+
* @dataProvider testUpdateTimeDataProvider
58+
*/
59+
public function testUpdateTime(array $blockData)
60+
{
61+
# Prepare and save the temporary block
62+
$tempBlock = $this->blockFactory->create();
63+
$tempBlock->setData($blockData);
64+
$this->blockResource->save($tempBlock);
65+
66+
# Load previously created block and compare update_time field
67+
$block = $this->blockRepository->getById($tempBlock->getId());
68+
$date = $this->objectManager->get(DateTime::class)->date();
69+
$this->assertEquals($date, $block->getUpdateTime());
70+
}
71+
72+
/**
73+
* Data provider "testUpdateTime" method
74+
* @return array
75+
*/
76+
public function testUpdateTimeDataProvider()
77+
{
78+
return [
79+
[
80+
'data' => [
81+
'title' => 'Test title',
82+
'stores' => [0],
83+
'identifier' => 'test-identifier',
84+
'content' => 'Test content',
85+
'is_active' => 1
86+
]
87+
]
88+
];
89+
}
90+
}

dev/tests/integration/testsuite/Magento/Cms/Model/PageTest.php

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,13 @@
66
namespace Magento\Cms\Model;
77

88
use Magento\Cms\Api\PageRepositoryInterface;
9+
use Magento\Framework\Stdlib\DateTime\DateTime;
910

1011
/**
1112
* @magentoAppArea adminhtml
1213
*/
1314
class PageTest extends \PHPUnit\Framework\TestCase
1415
{
15-
/**
16-
* @var \Magento\Cms\Model\Page
17-
*/
18-
protected $model;
19-
2016
protected function setUp()
2117
{
2218
$user = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
@@ -51,15 +47,14 @@ public function testGenerateIdentifierFromTitle($data, $expectedIdentifier)
5147
*/
5248
public function testUpdateTime()
5349
{
54-
$updateTime = '2016-09-01 00:00:00';
5550
$objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
5651
/** @var \Magento\Cms\Model\Page $page */
5752
$page = $objectManager->create(\Magento\Cms\Model\Page::class);
5853
$page->setData(['title' => 'Test', 'stores' => [1]]);
59-
$page->setUpdateTime($updateTime);
6054
$page->save();
6155
$page = $objectManager->get(PageRepositoryInterface::class)->getById($page->getId());
62-
$this->assertEquals($updateTime, $page->getUpdateTime());
56+
$date = $objectManager->get(DateTime::class)->date();
57+
$this->assertEquals($date, $page->getUpdateTime());
6358
}
6459

6560
public function generateIdentifierFromTitleDataProvider()

0 commit comments

Comments
 (0)