Skip to content

Commit f185806

Browse files
committed
added test to ensure timezones working correctly (#22833: Short-term admin accounts)
1 parent 581988a commit f185806

File tree

1 file changed

+26
-2
lines changed

1 file changed

+26
-2
lines changed

dev/tests/integration/testsuite/Magento/Security/Observer/AfterAdminUserSaveTest.php

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,29 @@ public function testSaveNewUserExpiration()
3838
static::assertEquals($userExpiration->getExpiresAt(), $testDate);
3939
}
4040

41+
/**
42+
* Save a new UserExpiration; used to validate that date conversion is working correctly.
43+
*
44+
* @magentoDataFixture Magento/User/_files/dummy_user.php
45+
*/
46+
public function testSaveNewUserExpirationInMinutes()
47+
{
48+
$adminUserNameFromFixture = 'dummy_username';
49+
$testDate = $this->getFutureDateInStoreTime('+2 minutes');
50+
$user = Bootstrap::getObjectManager()->create(\Magento\User\Model\User::class);
51+
$user->loadByUsername($adminUserNameFromFixture);
52+
$user->setExpiresAt($testDate);
53+
$user->save();
54+
55+
$userExpirationFactory =
56+
Bootstrap::getObjectManager()->create(\Magento\Security\Model\UserExpirationFactory::class);
57+
/** @var \Magento\Security\Model\UserExpiration $userExpiration */
58+
$userExpiration = $userExpirationFactory->create();
59+
$userExpiration->load($user->getId());
60+
static::assertNotNull($userExpiration->getId());
61+
static::assertEquals($userExpiration->getExpiresAt(), $testDate);
62+
}
63+
4164
/**
4265
* Remove the UserExpiration record
4366
*
@@ -87,15 +110,16 @@ public function testChangeUserExpiration()
87110
}
88111

89112
/**
113+
* @param string $timeToAdd Amount of time to add
90114
* @return string
91115
* @throws \Exception
92116
*/
93-
private function getFutureDateInStoreTime()
117+
private function getFutureDateInStoreTime($timeToAdd = '+20 days')
94118
{
95119
/** @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface $locale */
96120
$locale = Bootstrap::getObjectManager()->get(\Magento\Framework\Stdlib\DateTime\TimezoneInterface::class);
97121
$testDate = new \DateTime();
98-
$testDate->modify('+20 days');
122+
$testDate->modify($timeToAdd);
99123
$storeDate = $locale->date($testDate);
100124
return $storeDate->format('Y-m-d H:i:s');
101125
}

0 commit comments

Comments
 (0)