Skip to content

Commit 75664d4

Browse files
committed
handle dates with store time (#22833: Short-term admin accounts)
1 parent 6407af8 commit 75664d4

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

app/code/Magento/Security/Test/Unit/Model/UserExpiration/ValidatorTest.php

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,33 @@ class ValidatorTest extends \PHPUnit\Framework\TestCase
2222
*/
2323
private $validator;
2424

25+
/**
26+
* @var \PHPUnit\Framework\MockObject\MockObject|\Magento\Framework\Stdlib\DateTime\DateTime
27+
*/
28+
private $dateTimeMock;
29+
2530
protected function setUp()
2631
{
2732
$objectManager = new ObjectManager($this);
28-
$this->validator = $objectManager->getObject(\Magento\Security\Model\UserExpiration\Validator::class);
33+
$this->dateTimeMock =
34+
$this->createPartialMock(\Magento\Framework\Stdlib\DateTime\DateTime::class, ['gmtTimestamp']);
35+
$this->validator = $objectManager->getObject(
36+
\Magento\Security\Model\UserExpiration\Validator::class,
37+
['dateTime' => $this->dateTimeMock]
38+
);
2939
}
3040

3141
public function testWithPastDate()
3242
{
43+
$currentTime = '1562447687';
44+
$expireTime = '1561324487';
3345
$testDate = new \DateTime();
3446
$testDate->modify('-10 days');
47+
$this->dateTimeMock->expects(static::exactly(2))->method('gmtTimestamp')
48+
->willReturnOnConsecutiveCalls(
49+
$currentTime,
50+
$expireTime
51+
);
3552
static::assertFalse($this->validator->isValid($testDate->format('Y-m-d H:i:s')));
3653
static::assertContains(
3754
'"Expiration date" must be later than the current date.',
@@ -41,8 +58,15 @@ public function testWithPastDate()
4158

4259
public function testWithFutureDate()
4360
{
61+
$currentTime = '1562447687';
62+
$expireTime = '1563290841';
4463
$testDate = new \DateTime();
4564
$testDate->modify('+10 days');
65+
$this->dateTimeMock->expects(static::exactly(2))->method('gmtTimestamp')
66+
->willReturnOnConsecutiveCalls(
67+
$currentTime,
68+
$expireTime
69+
);
4670
static::assertTrue($this->validator->isValid($testDate->format('Y-m-d H:i:s')));
4771
static::assertEquals([], $this->validator->getMessages());
4872
}

0 commit comments

Comments
 (0)