Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
InvalidateTokenTest.php
Go to the documentation of this file.
1 <?php
8 
11 
16 {
20  public function testInvalidateSingleToken()
21  {
23  $tokenService = Bootstrap::getObjectManager()->get(\Magento\Integration\Api\AdminTokenServiceInterface::class);
25  $tokenModel = Bootstrap::getObjectManager()->get(\Magento\Integration\Model\Oauth\Token::class);
27  $userModel = Bootstrap::getObjectManager()->get(\Magento\User\Model\User::class);
28 
29  $adminUserNameFromFixture = 'adminUser';
30  $tokenService->createAdminAccessToken(
31  $adminUserNameFromFixture,
32  \Magento\TestFramework\Bootstrap::ADMIN_PASSWORD
33  );
34  $adminUserId = $userModel->loadByUsername($adminUserNameFromFixture)->getId();
35 
36  // invalidate token
37  $this->getRequest()->setParam('user_id', $adminUserId);
38  $this->dispatch('backend/admin/user/invalidateToken');
39  $token = $tokenModel->loadByAdminId($adminUserId);
40  $this->assertEquals(null, $token->getId());
41  }
42 
46  public function testInvalidateMultipleTokens()
47  {
49  $tokenService = Bootstrap::getObjectManager()->get(\Magento\Integration\Api\AdminTokenServiceInterface::class);
50 
52  $tokenModelCollectionFactory = Bootstrap::getObjectManager()->get(
53  \Magento\Integration\Model\ResourceModel\Oauth\Token\CollectionFactory::class
54  );
55 
57  $userModel = Bootstrap::getObjectManager()->get(\Magento\User\Model\User::class);
58 
59  $adminUserNameFromFixture = 'adminUser';
60  $tokenService->createAdminAccessToken(
61  $adminUserNameFromFixture,
62  \Magento\TestFramework\Bootstrap::ADMIN_PASSWORD
63  );
64 
65  $tokenService->createAdminAccessToken(
66  $adminUserNameFromFixture,
67  \Magento\TestFramework\Bootstrap::ADMIN_PASSWORD
68  );
69 
70  $adminUserId = $userModel->loadByUsername($adminUserNameFromFixture)->getId();
71 
72  // invalidate tokens
73  $this->getRequest()->setParam('user_id', $adminUserId);
74  $this->dispatch('backend/admin/user/invalidateToken');
75  foreach ($tokenModelCollectionFactory->create()->addFilterByAdminId($adminUserId) as $token) {
76  $this->assertEquals(1, $token->getRevoked());
77  }
78  }
79 
83  public function testInvalidateTokenNoTokens()
84  {
86  $userModel = Bootstrap::getObjectManager()->get(\Magento\User\Model\User::class);
87  $adminUserNameFromFixture = 'adminUser';
88  $adminUserId = $userModel->loadByUsername($adminUserNameFromFixture)->getId();
89  // invalidate token
90  $this->getRequest()->setParam('user_id', $adminUserId);
91  $this->dispatch('backend/admin/user/invalidateToken');
92  $this->assertSessionMessages(
93  $this->equalTo(['This user has no tokens.']),
94  MessageInterface::TYPE_ERROR
95  );
96  }
97 
98  public function testInvalidateTokenNoUser()
99  {
100  $this->dispatch('backend/admin/user/invalidateToken');
101  $this->assertSessionMessages(
102  $this->equalTo(['We can\'t find a user to revoke.']),
103  MessageInterface::TYPE_ERROR
104  );
105  }
106 
108  {
109  $adminUserId = 999;
110  // invalidate token
111  $this->getRequest()->setParam('user_id', $adminUserId);
112  $this->dispatch('backend/admin/user/invalidateToken');
113  $this->assertSessionMessages(
114  $this->equalTo(['This user has no tokens.']),
115  MessageInterface::TYPE_ERROR
116  );
117  }
118 }
dispatch(\Magento\Framework\App\RequestInterface $request)
assertSessionMessages(\PHPUnit\Framework\Constraint\Constraint $constraint, $messageType=null, $messageManagerClass=\Magento\Framework\Message\Manager::class)