Skip to content

Commit c076d5c

Browse files
committed
AC-1323: Reset Token Improvement.
1 parent 25a31a8 commit c076d5c

File tree

3 files changed

+108
-1
lines changed

3 files changed

+108
-1
lines changed
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
namespace Magento\Customer\Model\ResourceModel;
8+
9+
use Magento\Framework\ObjectManagerInterface;
10+
use Magento\Customer\Model\Customer as CustomerModel;
11+
12+
/**
13+
* Integration test for @see \Magento\Customer\Model\ResourceModel\Customer
14+
*/
15+
class CustomerTest extends \PHPUnit\Framework\TestCase
16+
{
17+
/**
18+
* @var CustomerModel
19+
*/
20+
private $customerModel;
21+
22+
/**
23+
* @var ObjectManagerInterface
24+
*/
25+
private $objectManager;
26+
27+
protected function setUp(): void
28+
{
29+
$this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
30+
$this->customerModel = $this->objectManager->create(CustomerModel::class);
31+
parent::setUp();
32+
}
33+
34+
protected function tearDown(): void
35+
{
36+
$this->customerModel->delete();
37+
}
38+
39+
/**
40+
* Test save rp token
41+
*
42+
* @throws \Exception
43+
*/
44+
public function testSave(): void
45+
{
46+
$token='randomstring';
47+
$email= uniqid()."@example.com";
48+
49+
$this->customerModel->setData(
50+
[
51+
'email' => $email,
52+
'rp_token' => $token,
53+
'firstname'=> 'John',
54+
'lastname' => 'Doe'
55+
]
56+
)->save();
57+
58+
$consumerResourceModel = $this->customerModel->getResource();
59+
60+
$this->assertEquals($token, $this->customerModel->getRpToken());
61+
$this->assertNotEquals(
62+
$this->customerModel->getRpToken(),
63+
$consumerResourceModel->load($this->customerModel, 'rp_token')
64+
);
65+
}
66+
}

dev/tests/integration/testsuite/Magento/User/Model/ResourceModel/UserTest.php

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
use Magento\User\Model\ResourceModel\User as UserResourceModel;
1515
use Magento\User\Model\User;
1616
use Magento\User\Model\UserFactory;
17+
use Magento\Framework\Math\Random;
1718

1819
/**
1920
* @magentoAppArea adminhtml
@@ -35,6 +36,11 @@ class UserTest extends \PHPUnit\Framework\TestCase
3536
*/
3637
private $userFactory;
3738

39+
/**
40+
* @var Random
41+
*/
42+
private $random;
43+
3844
/**
3945
* @inheritdoc
4046
*/
@@ -43,6 +49,7 @@ protected function setUp(): void
4349
$this->model = Bootstrap::getObjectManager()->get(UserResourceModel::class);
4450
$this->userRoleCollectionFactory = Bootstrap::getObjectManager()->get(UserRoleCollectionFactory::class);
4551
$this->userFactory = Bootstrap::getObjectManager()->get(UserFactory::class);
52+
$this->random = Bootstrap::getObjectManager()->get(Random::class);
4653
}
4754

4855
/**
@@ -113,4 +120,37 @@ public function testGetValidationRulesBeforeSave(): void
113120
$rules = $this->model->getValidationRulesBeforeSave();
114121
$this->assertInstanceOf('Zend_Validate_Interface', $rules);
115122
}
123+
124+
/**
125+
* Test save rp token
126+
*
127+
* @throws \Exception
128+
*/
129+
public function testSave(): void
130+
{
131+
$token = 'randomstring';
132+
$username = $this->random->getRandomString(6);
133+
$email= $username."@example.com";
134+
135+
$userModel = Bootstrap::getObjectManager()->get(User::class);
136+
137+
$userModel->setData(
138+
[
139+
'email' => $email,
140+
'rp_token' => $token,
141+
'firstname' => 'John',
142+
'lastname' => 'Doe',
143+
'password' => $this->random->getRandomString(10),
144+
'username' => $username
145+
]
146+
)->save();
147+
148+
$userResourceModel = $this->model;
149+
150+
$this->assertEquals($token, $userModel->getRpToken());
151+
$this->assertNotEquals(
152+
$userModel->getRpToken(),
153+
$userResourceModel->load($userModel, 'rp_token')
154+
);
155+
}
116156
}

dev/tests/integration/testsuite/Magento/User/Model/UserTest.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -489,11 +489,12 @@ public function testBeforeSaveValidationSuccess()
489489
public function testChangeResetPasswordLinkToken()
490490
{
491491
$this->_model->loadByUsername(TestFrameworkBootstrap::ADMIN_NAME);
492+
$userId = $this->_model->getId();
492493
$this->_model->changeResetPasswordLinkToken('test');
493494
$date = $this->_model->getRpTokenCreatedAt();
494495
$this->assertNotNull($date);
495496
$this->_model->save();
496-
$this->_model->loadByUsername(TestFrameworkBootstrap::ADMIN_NAME);
497+
$this->_model->load($userId);
497498
$this->assertEquals('test', $this->_model->getRpToken());
498499
$this->assertEquals(strtotime($date), strtotime($this->_model->getRpTokenCreatedAt()));
499500
}

0 commit comments

Comments
 (0)