|
6 | 6 | namespace Magento\Cms\Model;
|
7 | 7 |
|
8 | 8 | use Magento\Cms\Api\PageRepositoryInterface;
|
| 9 | +use Magento\Framework\App\ResourceConnection; |
9 | 10 | use Magento\Framework\Stdlib\DateTime\DateTime;
|
10 | 11 |
|
11 | 12 | /**
|
@@ -79,13 +80,27 @@ public function testGenerateIdentifierFromTitle($data, $expectedIdentifier)
|
79 | 80 | public function testUpdateTime()
|
80 | 81 | {
|
81 | 82 | $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
|
| 83 | + |
| 84 | + /** |
| 85 | + * @var $db \Magento\Framework\DB\Adapter\AdapterInterface |
| 86 | + */ |
| 87 | + $db = $objectManager->get(\Magento\Framework\App\ResourceConnection::class) |
| 88 | + ->getConnection(ResourceConnection::DEFAULT_CONNECTION); |
| 89 | + |
82 | 90 | /** @var \Magento\Cms\Model\Page $page */
|
83 | 91 | $page = $objectManager->create(\Magento\Cms\Model\Page::class);
|
84 | 92 | $page->setData(['title' => 'Test', 'stores' => [1]]);
|
| 93 | + $beforeTimestamp = $db->fetchCol('SELECT UNIX_TIMESTAMP()')[0]; |
85 | 94 | $page->save();
|
| 95 | + $afterTimestamp = $db->fetchCol('SELECT UNIX_TIMESTAMP()')[0]; |
86 | 96 | $page = $objectManager->get(PageRepositoryInterface::class)->getById($page->getId());
|
87 |
| - $date = $objectManager->get(DateTime::class)->date(); |
88 |
| - $this->assertEquals($date, $page->getUpdateTime()); |
| 97 | + $pageTimestamp = strtotime($page->getUpdateTime()); |
| 98 | + |
| 99 | + /* |
| 100 | + * These checks prevent a race condition MAGETWO-95534 |
| 101 | + */ |
| 102 | + $this->assertGreaterThanOrEqual($beforeTimestamp, $pageTimestamp); |
| 103 | + $this->assertLessThanOrEqual($afterTimestamp, $pageTimestamp); |
89 | 104 | }
|
90 | 105 |
|
91 | 106 | public function generateIdentifierFromTitleDataProvider() : array
|
|
0 commit comments