GIF89a; %PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 134.29.175.74 / Your IP : 216.73.216.160 Web Server : nginx/1.10.2 System : Windows NT CST-WEBSERVER 10.0 build 19045 (Windows 10) i586 User : Administrator ( 0) PHP Version : 7.1.0 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/nginx/html/Student/JimMartinson/Lab12/drupal/core/modules/user/tests/src/Unit/ |
Upload File : |
<?php namespace Drupal\Tests\user\Unit; use Drupal\Tests\UnitTestCase; use Drupal\user\UserAuth; /** * @coversDefaultClass \Drupal\user\UserAuth * @group user */ class UserAuthTest extends UnitTestCase { /** * The mock user storage. * * @var \Drupal\Core\Entity\EntityStorageInterface|\PHPUnit_Framework_MockObject_MockObject */ protected $userStorage; /** * The mocked password service. * * @var \Drupal\Core\Password\PasswordInterface|\PHPUnit_Framework_MockObject_MockObject */ protected $passwordService; /** * The mock user. * * @var \Drupal\user\Entity\User|\PHPUnit_Framework_MockObject_MockObject */ protected $testUser; /** * The user auth object under test. * * @var \Drupal\user\UserAuth */ protected $userAuth; /** * The test username. * * @var string */ protected $username = 'test_user'; /** * The test password. * * @var string */ protected $password = 'password'; /** * {@inheritdoc} */ protected function setUp() { $this->userStorage = $this->getMock('Drupal\Core\Entity\EntityStorageInterface'); $entity_manager = $this->getMock('Drupal\Core\Entity\EntityManagerInterface'); $entity_manager->expects($this->any()) ->method('getStorage') ->with('user') ->will($this->returnValue($this->userStorage)); $this->passwordService = $this->getMock('Drupal\Core\Password\PasswordInterface'); $this->testUser = $this->getMockBuilder('Drupal\user\Entity\User') ->disableOriginalConstructor() ->setMethods(['id', 'setPassword', 'save', 'getPassword']) ->getMock(); $this->userAuth = new UserAuth($entity_manager, $this->passwordService); } /** * Tests failing authentication with missing credential parameters. * * @covers ::authenticate * * @dataProvider providerTestAuthenticateWithMissingCredentials */ public function testAuthenticateWithMissingCredentials($username, $password) { $this->userStorage->expects($this->never()) ->method('loadByProperties'); $this->assertFalse($this->userAuth->authenticate($username, $password)); } /** * Data provider for testAuthenticateWithMissingCredentials(). * * @return array */ public function providerTestAuthenticateWithMissingCredentials() { return [ [NULL, NULL], [NULL, ''], ['', NULL], ['', ''], ]; } /** * Tests the authenticate method with no account returned. * * @covers ::authenticate */ public function testAuthenticateWithNoAccountReturned() { $this->userStorage->expects($this->once()) ->method('loadByProperties') ->with(['name' => $this->username]) ->will($this->returnValue([])); $this->assertFalse($this->userAuth->authenticate($this->username, $this->password)); } /** * Tests the authenticate method with an incorrect password. * * @covers ::authenticate */ public function testAuthenticateWithIncorrectPassword() { $this->userStorage->expects($this->once()) ->method('loadByProperties') ->with(['name' => $this->username]) ->will($this->returnValue([$this->testUser])); $this->passwordService->expects($this->once()) ->method('check') ->with($this->password, $this->testUser->getPassword()) ->will($this->returnValue(FALSE)); $this->assertFalse($this->userAuth->authenticate($this->username, $this->password)); } /** * Tests the authenticate method with a correct password. * * @covers ::authenticate */ public function testAuthenticateWithCorrectPassword() { $this->testUser->expects($this->once()) ->method('id') ->will($this->returnValue(1)); $this->userStorage->expects($this->once()) ->method('loadByProperties') ->with(['name' => $this->username]) ->will($this->returnValue([$this->testUser])); $this->passwordService->expects($this->once()) ->method('check') ->with($this->password, $this->testUser->getPassword()) ->will($this->returnValue(TRUE)); $this->assertsame(1, $this->userAuth->authenticate($this->username, $this->password)); } /** * Tests the authenticate method with a correct password. * * We discovered in https://www.drupal.org/node/2563751 that logging in with a * password that is literally "0" was not possible. This test ensures that * this regression can't happen again. * * @covers ::authenticate */ public function testAuthenticateWithZeroPassword() { $this->testUser->expects($this->once()) ->method('id') ->will($this->returnValue(2)); $this->userStorage->expects($this->once()) ->method('loadByProperties') ->with(['name' => $this->username]) ->will($this->returnValue([$this->testUser])); $this->passwordService->expects($this->once()) ->method('check') ->with(0, 0) ->will($this->returnValue(TRUE)); $this->assertsame(2, $this->userAuth->authenticate($this->username, 0)); } /** * Tests the authenticate method with a correct password and new password hash. * * @covers ::authenticate */ public function testAuthenticateWithCorrectPasswordAndNewPasswordHash() { $this->testUser->expects($this->once()) ->method('id') ->will($this->returnValue(1)); $this->testUser->expects($this->once()) ->method('setPassword') ->with($this->password); $this->testUser->expects($this->once()) ->method('save'); $this->userStorage->expects($this->once()) ->method('loadByProperties') ->with(['name' => $this->username]) ->will($this->returnValue([$this->testUser])); $this->passwordService->expects($this->once()) ->method('check') ->with($this->password, $this->testUser->getPassword()) ->will($this->returnValue(TRUE)); $this->passwordService->expects($this->once()) ->method('needsRehash') ->with($this->testUser->getPassword()) ->will($this->returnValue(TRUE)); $this->assertsame(1, $this->userAuth->authenticate($this->username, $this->password)); } }