![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/dev/tests/integration/testsuite/Magento/User/Model/ResourceModel/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\User\Model\ResourceModel; use Laminas\Validator\ValidatorInterface; use Magento\Authorization\Model\ResourceModel\Role\Collection as UserRoleCollection; use Magento\Authorization\Model\ResourceModel\Role\CollectionFactory as UserRoleCollectionFactory; use Magento\Authorization\Model\UserContextInterface; use Magento\Framework\Math\Random; use Magento\TestFramework\Helper\Bootstrap; use Magento\User\Model\ResourceModel\User as UserResourceModel; use Magento\User\Model\User; use Magento\User\Model\UserFactory; /** * @magentoAppArea adminhtml */ class UserTest extends \PHPUnit\Framework\TestCase { /** * @var UserResourceModel */ private $model; /** * @var UserRoleCollectionFactory */ private $userRoleCollectionFactory; /** * @var UserFactory */ private $userFactory; /** * @var Random */ private $random; /** * @inheritdoc */ protected function setUp(): void { $this->model = Bootstrap::getObjectManager()->get(UserResourceModel::class); $this->userRoleCollectionFactory = Bootstrap::getObjectManager()->get(UserRoleCollectionFactory::class); $this->userFactory = Bootstrap::getObjectManager()->get(UserFactory::class); $this->random = Bootstrap::getObjectManager()->get(Random::class); } /** * Tests if latest password is stored after user creating * when password lifetime config value is zero (disabled as fact) * * @return void * @magentoConfigFixture current_store admin/security/password_lifetime 0 * @magentoDataFixture Magento/User/_files/dummy_user.php */ public function testGetLatestPasswordWhenZeroPasswordLifetime(): void { /** @var User $user */ $user = $this->userFactory->create(); $user->loadByUsername('dummy_username'); $latestPassword = $this->model->getLatestPassword($user->getId()); $this->assertNotEmpty( $latestPassword, 'Latest password should be stored even if password lifetime config value is 0' ); } /** * Test that user role is not deleted after deleting empty user. * * @return void */ public function testDelete(): void { $this->checkRoleCollectionSize(); /** @var User $user */ $user = $this->userFactory->create(); $this->model->delete($user); $this->checkRoleCollectionSize(); } /** * Ensure that role collection size is correct. * * @return void */ private function checkRoleCollectionSize(): void { /** @var UserRoleCollection $roleCollection */ $roleCollection = $this->userRoleCollectionFactory->create(); $roleCollection->setUserFilter(0, UserContextInterface::USER_TYPE_ADMIN); $this->assertEquals(1, $roleCollection->getSize()); } /** * Check total user count. * * @return void */ public function testCountAll(): void { $this->assertSame(1, $this->model->countAll()); } /** * Check validation rules has correct type. * * @return void */ public function testGetValidationRulesBeforeSave(): void { $rules = $this->model->getValidationRulesBeforeSave(); $this->assertInstanceOf(ValidatorInterface::class, $rules); } /** * Test save rp token * * @throws \Exception */ public function testSave(): void { $token = 'randomstring'; $username = $this->random->getRandomString(6); $email = $username . "@example.com"; $password = uniqid() . $this->random->getRandomString(10); $userModel = Bootstrap::getObjectManager()->get(User::class); $userModel->setData( [ 'email' => $email, 'rp_token' => $token, 'firstname' => 'John', 'lastname' => 'Doe', 'password' => $password, 'username' => $username ] )->save(); $userResourceModel = $this->model; $this->assertEquals($token, $userModel->getRpToken()); $this->assertNotEquals( $userModel->getRpToken(), $userResourceModel->load($userModel, 'rp_token') ); } }