adjust tests
This commit is contained in:
parent
30e13cb0dc
commit
be1f482aba
@ -40,9 +40,7 @@ class d3force_2fa extends d3user_totp
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws ModuleSettingNotFountException
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
protected function authorize(): bool
|
||||
{
|
||||
@ -62,8 +60,6 @@ class d3force_2fa extends d3user_totp
|
||||
/**
|
||||
* @return bool
|
||||
* @throws ModuleSettingNotFountException
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
private function d3IsAdminForce2FA(): bool
|
||||
{
|
||||
@ -71,10 +67,14 @@ class d3force_2fa extends d3user_totp
|
||||
return false;
|
||||
}
|
||||
|
||||
return (bool) $this->getModuleConfiguration()->getModuleSetting('D3_TOTP_ADMIN_FORCE_2FA')->getValue();
|
||||
}
|
||||
|
||||
protected function getModuleConfiguration(): ModuleConfiguration
|
||||
{
|
||||
$container = ContainerFactory::getInstance()->getContainer();
|
||||
$moduleConfigurationBridge = $container->get(ModuleConfigurationDaoBridgeInterface::class);
|
||||
/** @var ModuleConfiguration $moduleConfiguration */
|
||||
$moduleConfiguration = $moduleConfigurationBridge->get(Constants::OXID_MODULE_ID);
|
||||
return (bool) $moduleConfiguration->getModuleSetting('D3_TOTP_ADMIN_FORCE_2FA')->getValue();
|
||||
return $moduleConfigurationBridge->get(Constants::OXID_MODULE_ID);
|
||||
}
|
||||
}
|
||||
|
@ -126,7 +126,7 @@ class d3totpadminlogin extends AdminController
|
||||
public function getBackupCodeCountMessage()
|
||||
{
|
||||
/** @var d3_totp_user $user */
|
||||
$user = oxNew(User::class);
|
||||
$user = $this->d3TotpGetUserObject();
|
||||
$userId = $user->d3TotpGetCurrentUser();
|
||||
|
||||
$oBackupCodeList = $this->d3GetBackupCodeListObject();
|
||||
@ -172,7 +172,7 @@ class d3totpadminlogin extends AdminController
|
||||
{
|
||||
$session = $this->d3TotpGetSession();
|
||||
/** @var d3_totp_user $user */
|
||||
$user = oxNew(User::class);
|
||||
$user = $this->d3TotpGetUserObject();
|
||||
$userId = $user->d3TotpGetCurrentUser();
|
||||
|
||||
try {
|
||||
@ -206,7 +206,7 @@ class d3totpadminlogin extends AdminController
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string|null $sTotp
|
||||
* @param string $sTotp
|
||||
* @param d3totp $totp
|
||||
* @return bool
|
||||
* @throws ContainerExceptionInterface
|
||||
@ -215,7 +215,7 @@ class d3totpadminlogin extends AdminController
|
||||
* @throws DBALException
|
||||
* @throws d3totp_wrongOtpException
|
||||
*/
|
||||
public function d3TotpHasValidTotp(string $sTotp = null, d3totp $totp): bool
|
||||
public function d3TotpHasValidTotp(string $sTotp, d3totp $totp): bool
|
||||
{
|
||||
return $this->d3TotpGetSession()->getVariable(d3totp_conf::SESSION_ADMIN_AUTH)
|
||||
|| $totp->verify($sTotp);
|
||||
|
@ -84,7 +84,7 @@ class d3user_totp extends AdminDetailsController
|
||||
{
|
||||
parent::save();
|
||||
|
||||
$aParams = Registry::getRequest()->getRequestEscapedParameter("editval");
|
||||
$aParams = Registry::getRequest()->getRequestEscapedParameter("editval") ?? [];
|
||||
|
||||
try {
|
||||
$oTotp = $this->getTotpObject();
|
||||
@ -92,7 +92,7 @@ class d3user_totp extends AdminDetailsController
|
||||
Assert::that($oTotp->checkIfAlreadyExist($this->getCurrentUserId()))->false('D3_TOTP_ALREADY_EXIST');
|
||||
|
||||
$oTotpBackupCodes = $this->getBackupcodeListObject();
|
||||
if ($aParams['d3totp__oxid']) {
|
||||
if (isset($aParams['d3totp__oxid'])) {
|
||||
$oTotp->load($aParams['d3totp__oxid']);
|
||||
} else {
|
||||
$aParams['d3totp__usetotp'] = 1;
|
||||
|
@ -37,7 +37,7 @@ class d3totp extends BaseModel
|
||||
{
|
||||
protected const ENC_KEY = 'fq45QS09_fqyx09239QQ';
|
||||
|
||||
public string $tableName = 'd3totp';
|
||||
protected $_sCoreTable = 'd3totp';
|
||||
public null|string $userId = null;
|
||||
public null|TOTP $totp = null;
|
||||
protected int $timeWindow = 2;
|
||||
@ -47,7 +47,7 @@ class d3totp extends BaseModel
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->init($this->tableName);
|
||||
$this->init($this->getCoreTableName());
|
||||
|
||||
parent::__construct();
|
||||
}
|
||||
@ -64,7 +64,7 @@ class d3totp extends BaseModel
|
||||
$this->userId = $userId;
|
||||
|
||||
if ($this->getDbConnection()
|
||||
->prepare("SHOW TABLES LIKE ".$this->getDbConnection()->quote($this->tableName))
|
||||
->prepare("SHOW TABLES LIKE ".$this->getDbConnection()->quote($this->getCoreTableName()))
|
||||
->executeQuery()
|
||||
->fetchOne()
|
||||
) {
|
||||
@ -75,7 +75,10 @@ class d3totp extends BaseModel
|
||||
$qb->expr()->eq('oxuserid', $qb->createNamedParameter($userId))
|
||||
)
|
||||
->setMaxResults(1);
|
||||
$this->load($qb->execute()->fetchOne());
|
||||
|
||||
if ($oxid = $qb->execute()->fetchOne()) {
|
||||
$this->load($oxid);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -101,11 +101,7 @@ class d3_totp_utils extends d3_totp_utils_parent
|
||||
return false;
|
||||
}
|
||||
|
||||
$container = ContainerFactory::getInstance()->getContainer();
|
||||
$moduleConfigurationBridge = $container->get(ModuleConfigurationDaoBridgeInterface::class);
|
||||
/** @var ModuleConfiguration $moduleConfiguration */
|
||||
$moduleConfiguration = $moduleConfigurationBridge->get(Constants::OXID_MODULE_ID);
|
||||
return (bool) $moduleConfiguration->getModuleSetting('D3_TOTP_ADMIN_FORCE_2FA')->getValue();
|
||||
return (bool) $this->getModuleConfiguration()->getModuleSetting('D3_TOTP_ADMIN_FORCE_2FA')->getValue();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -116,4 +112,12 @@ class d3_totp_utils extends d3_totp_utils_parent
|
||||
{
|
||||
return $blAuth;
|
||||
}
|
||||
|
||||
protected function getModuleConfiguration(): ModuleConfiguration
|
||||
{
|
||||
$container = ContainerFactory::getInstance()->getContainer();
|
||||
$moduleConfigurationBridge = $container->get(ModuleConfigurationDaoBridgeInterface::class);
|
||||
/** @var ModuleConfiguration $moduleConfiguration */
|
||||
return $moduleConfigurationBridge->get(Constants::OXID_MODULE_ID);
|
||||
}
|
||||
}
|
||||
|
@ -11,12 +11,14 @@
|
||||
* @link https://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
namespace D3\Totp\tests\unit\Application\Controller\Admin;
|
||||
namespace D3\Totp\Tests\Unit\Application\Controller\Admin;
|
||||
|
||||
use D3\Totp\Application\Controller\Admin\d3force_2fa;
|
||||
use D3\Totp\Application\Model\d3totp_conf;
|
||||
use OxidEsales\Eshop\Core\Registry;
|
||||
use OxidEsales\Eshop\Core\Session;
|
||||
use OxidEsales\EshopCommunity\Internal\Framework\Module\Configuration\DataObject\ModuleConfiguration;
|
||||
use OxidEsales\EshopCommunity\Internal\Framework\Module\Setting\Setting;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
use ReflectionException;
|
||||
|
||||
@ -62,19 +64,28 @@ class d3force_2faTest extends d3user_totpTest
|
||||
* @test
|
||||
* @return void
|
||||
* @throws ReflectionException
|
||||
* @covers \D3\Totp\Application\Controller\Admin\d3force_2fa::_authorize
|
||||
* @covers \D3\Totp\Application\Controller\Admin\d3force_2fa::authorize
|
||||
* @covers \D3\Totp\Application\Controller\Admin\d3force_2fa::d3IsAdminForce2FA
|
||||
* @dataProvider authorizeDataProvider
|
||||
*/
|
||||
public function testAuthorize($expected, $isAdmin, $force2FA, $givenUserId)
|
||||
{
|
||||
/** @var d3force_2fa|MockObject $oController */
|
||||
$oController = $this->getMockBuilder(d3force_2fa::class)
|
||||
->onlyMethods(['isAdmin'])
|
||||
$settingMock = $this->d3getMockBuilder(Setting::class)
|
||||
->onlyMethods(['getValue'])
|
||||
->getMock();
|
||||
$oController->expects($this->once())->method('isAdmin')->willReturn($isAdmin);
|
||||
$settingMock->method('getValue')->willReturn($force2FA);
|
||||
|
||||
Registry::getConfig()->setConfigParam('D3_TOTP_ADMIN_FORCE_2FA', $force2FA);
|
||||
$moduleConfigurationMock = $this->d3getMockBuilder(ModuleConfiguration::class)
|
||||
->onlyMethods(['getModuleSetting'])
|
||||
->getMock();
|
||||
$moduleConfigurationMock->method('getModuleSetting')->willReturn($settingMock);
|
||||
|
||||
/** @var d3force_2fa|MockObject $oController */
|
||||
$oController = $this->d3getMockBuilder(d3force_2fa::class)
|
||||
->onlyMethods(['isAdmin', 'getModuleConfiguration'])
|
||||
->getMock();
|
||||
$oController->expects($this->any())->method('isAdmin')->willReturn($isAdmin);
|
||||
$oController->method('getModuleConfiguration')->willReturn($moduleConfigurationMock);
|
||||
|
||||
Registry::getSession()->setVariable(d3totp_conf::OXID_ADMIN_AUTH, $givenUserId);
|
||||
|
||||
@ -82,7 +93,7 @@ class d3force_2faTest extends d3user_totpTest
|
||||
$expected,
|
||||
$this->callMethod(
|
||||
$oController,
|
||||
'_authorize'
|
||||
'authorize'
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -90,7 +101,7 @@ class d3force_2faTest extends d3user_totpTest
|
||||
/**
|
||||
* @return array[]
|
||||
*/
|
||||
public function authorizeDataProvider(): array
|
||||
public static function authorizeDataProvider(): array
|
||||
{
|
||||
return [
|
||||
'noAdmin' => [false, false, true, 'userId'],
|
@ -13,7 +13,7 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Totp\tests\unit\Application\Controller\Admin;
|
||||
namespace D3\Totp\Tests\Unit\Application\Controller\Admin;
|
||||
|
||||
use D3\TestingTools\Development\CanAccessRestricted;
|
||||
use D3\Totp\Application\Controller\Admin\d3totpadminlogin;
|
||||
@ -23,7 +23,7 @@ use D3\Totp\Application\Model\d3totp_conf;
|
||||
use D3\Totp\Application\Model\Exceptions\d3totp_wrongOtpException;
|
||||
use D3\Totp\Modules\Application\Controller\Admin\d3_totp_LoginController;
|
||||
use D3\Totp\Modules\Application\Model\d3_totp_user;
|
||||
use D3\Totp\tests\unit\d3TotpUnitTestCase;
|
||||
use D3\Totp\Tests\Unit\d3TotpUnitTestCase;
|
||||
use OxidEsales\Eshop\Application\Controller\Admin\LoginController;
|
||||
use OxidEsales\Eshop\Application\Model\User;
|
||||
use OxidEsales\Eshop\Core\Registry;
|
||||
@ -62,14 +62,14 @@ class d3totpadminloginTest extends d3TotpUnitTestCase
|
||||
* @test
|
||||
* @return void
|
||||
* @throws ReflectionException
|
||||
* @covers \D3\Totp\Application\Controller\Admin\d3totpadminlogin::_authorize
|
||||
* @covers \D3\Totp\Application\Controller\Admin\d3totpadminlogin::authorize
|
||||
*/
|
||||
public function testAuthorize()
|
||||
{
|
||||
$this->assertTrue(
|
||||
$this->callMethod(
|
||||
$this->_oController,
|
||||
'_authorize'
|
||||
'authorize'
|
||||
)
|
||||
);
|
||||
}
|
||||
@ -103,8 +103,13 @@ class d3totpadminloginTest extends d3TotpUnitTestCase
|
||||
*/
|
||||
public function isTotpIsNotRequiredPassed($hasAuthAlready, $totpActive, $expected)
|
||||
{
|
||||
$oUserMock = $this->d3getMockBuilder(User::class)
|
||||
->onlyMethods(['d3TotpGetCurrentUser'])
|
||||
->getMock();
|
||||
$oUserMock->method('d3TotpGetCurrentUser')->willReturn('foo');
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods([
|
||||
'isActive',
|
||||
'loadByUserId',
|
||||
@ -112,10 +117,10 @@ class d3totpadminloginTest extends d3TotpUnitTestCase
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$oTotpMock->method('isActive')->willReturn($totpActive);
|
||||
$oTotpMock->method('loadByUserId')->willReturn(true);
|
||||
$oTotpMock->method('loadByUserId');
|
||||
|
||||
/** @var Session|MockObject $oSessionMock */
|
||||
$oSessionMock = $this->getMockBuilder(Session::class)
|
||||
$oSessionMock = $this->d3getMockBuilder(Session::class)
|
||||
->onlyMethods([
|
||||
'hasVariable',
|
||||
])
|
||||
@ -126,14 +131,16 @@ class d3totpadminloginTest extends d3TotpUnitTestCase
|
||||
$oSessionMock->method('hasVariable')->willReturnMap($hasVariableMap);
|
||||
|
||||
/** @var d3totpadminlogin|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3totpadminlogin::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3totpadminlogin::class)
|
||||
->onlyMethods([
|
||||
'd3TotpGetSession',
|
||||
'd3TotpGetTotpObject',
|
||||
'd3TotpGetUserObject'
|
||||
])
|
||||
->getMock();
|
||||
$oControllerMock->method('d3TotpGetSession')->willReturn($oSessionMock);
|
||||
$oControllerMock->method('d3TotpGetTotpObject')->willReturn($oTotpMock);
|
||||
$oControllerMock->method('d3TotpGetUserObject')->willReturn($oUserMock);
|
||||
|
||||
$this->_oController = $oControllerMock;
|
||||
|
||||
@ -149,7 +156,7 @@ class d3totpadminloginTest extends d3TotpUnitTestCase
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function isTotpIsNotRequiredPassedDataProvider(): array
|
||||
public static function isTotpIsNotRequiredPassedDataProvider(): array
|
||||
{
|
||||
return [
|
||||
'auth already finished' => [true, true, true],
|
||||
@ -170,13 +177,13 @@ class d3totpadminloginTest extends d3TotpUnitTestCase
|
||||
public function isTotpLoginNotPossiblePassed($userId, $expected)
|
||||
{
|
||||
/** @var d3_totp_user|MockObject $oUserMock */
|
||||
$oUserMock = $this->getMockBuilder(User::class)
|
||||
$oUserMock = $this->d3getMockBuilder(User::class)
|
||||
->onlyMethods(['d3TotpGetCurrentUser'])
|
||||
->getMock();
|
||||
$oUserMock->method('d3TotpGetCurrentUser')->willReturn($userId);
|
||||
|
||||
/** @var d3totpadminlogin|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3totpadminlogin::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3totpadminlogin::class)
|
||||
->onlyMethods(['d3TotpGetUserObject'])
|
||||
->getMock();
|
||||
$oControllerMock->method('d3TotpGetUserObject')->willReturn($oUserMock);
|
||||
@ -195,7 +202,7 @@ class d3totpadminloginTest extends d3TotpUnitTestCase
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function isTotpLoginNotPossiblePassedDataProvider(): array
|
||||
public static function isTotpLoginNotPossiblePassedDataProvider(): array
|
||||
{
|
||||
return [
|
||||
'no user' => [null, true],
|
||||
@ -216,7 +223,7 @@ class d3totpadminloginTest extends d3TotpUnitTestCase
|
||||
public function canRender($totpNotRequired, $totpNotPossible, $redirect)
|
||||
{
|
||||
/** @var Utils|MockObject $oUtilsMock */
|
||||
$oUtilsMock = $this->getMockBuilder(Utils::class)
|
||||
$oUtilsMock = $this->d3getMockBuilder(Utils::class)
|
||||
->onlyMethods(['redirect'])
|
||||
->getMock();
|
||||
$oUtilsMock
|
||||
@ -226,14 +233,13 @@ class d3totpadminloginTest extends d3TotpUnitTestCase
|
||||
->willReturn(true);
|
||||
|
||||
/** @var d3_totp_LoginController|MockObject $loginControllerMock */
|
||||
$loginControllerMock = $this->getMockBuilder(LoginController::class)
|
||||
$loginControllerMock = $this->d3getMockBuilder(LoginController::class)
|
||||
->onlyMethods(['d3totpAfterLoginSetLanguage'])
|
||||
->getMock();
|
||||
$loginControllerMock->expects($this->once())->method('d3totpAfterLoginSetLanguage')
|
||||
->willReturn(true);
|
||||
$loginControllerMock->expects($this->once())->method('d3totpAfterLoginSetLanguage');
|
||||
|
||||
/** @var d3totpadminlogin|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3totpadminlogin::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3totpadminlogin::class)
|
||||
->onlyMethods([
|
||||
'isTotpIsNotRequired',
|
||||
'isTotpLoginNotPossible',
|
||||
@ -257,7 +263,7 @@ class d3totpadminloginTest extends d3TotpUnitTestCase
|
||||
/**
|
||||
* @return array[]
|
||||
*/
|
||||
public function canRenderDataProvider(): array
|
||||
public static function canRenderDataProvider(): array
|
||||
{
|
||||
return [
|
||||
'not required' => [true, false, 'admin_start'],
|
||||
@ -286,17 +292,23 @@ class d3totpadminloginTest extends d3TotpUnitTestCase
|
||||
*/
|
||||
public function getBackupCodeCountMessageShowMessage()
|
||||
{
|
||||
$userMock = $this->d3getMockBuilder(User::class)
|
||||
->onlyMethods(['d3TotpGetCurrentUser'])
|
||||
->getMock();
|
||||
$userMock->method('d3TotpGetCurrentUser')->willReturn('foo');
|
||||
|
||||
/** @var d3backupcodelist|MockObject $oBackupCodeListMock */
|
||||
$oBackupCodeListMock = $this->getMockBuilder(d3backupcodelist::class)
|
||||
$oBackupCodeListMock = $this->d3getMockBuilder(d3backupcodelist::class)
|
||||
->onlyMethods(['getAvailableCodeCount'])
|
||||
->getMock();
|
||||
$oBackupCodeListMock->method('getAvailableCodeCount')->willReturn(2);
|
||||
|
||||
/** @var d3totpadminlogin|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3totpadminlogin::class)
|
||||
->onlyMethods(['d3GetBackupCodeListObject'])
|
||||
$oControllerMock = $this->d3getMockBuilder(d3totpadminlogin::class)
|
||||
->onlyMethods(['d3GetBackupCodeListObject', 'd3TotpGetUserObject'])
|
||||
->getMock();
|
||||
$oControllerMock->method('d3GetBackupCodeListObject')->willReturn($oBackupCodeListMock);
|
||||
$oControllerMock->method('d3TotpGetUserObject')->willReturn($userMock);
|
||||
|
||||
$this->_oController = $oControllerMock;
|
||||
|
||||
@ -316,17 +328,23 @@ class d3totpadminloginTest extends d3TotpUnitTestCase
|
||||
*/
|
||||
public function getBackupCodeCountMessageDontShowMessage()
|
||||
{
|
||||
$userMock = $this->d3getMockBuilder(User::class)
|
||||
->onlyMethods(['d3TotpGetCurrentUser'])
|
||||
->getMock();
|
||||
$userMock->method('d3TotpGetCurrentUser')->willReturn('foo');
|
||||
|
||||
/** @var d3backupcodelist|MockObject $oBackupCodeListMock */
|
||||
$oBackupCodeListMock = $this->getMockBuilder(d3backupcodelist::class)
|
||||
$oBackupCodeListMock = $this->d3getMockBuilder(d3backupcodelist::class)
|
||||
->onlyMethods(['getAvailableCodeCount'])
|
||||
->getMock();
|
||||
$oBackupCodeListMock->method('getAvailableCodeCount')->willReturn(10);
|
||||
|
||||
/** @var d3totpadminlogin|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3totpadminlogin::class)
|
||||
->onlyMethods(['d3GetBackupCodeListObject'])
|
||||
$oControllerMock = $this->d3getMockBuilder(d3totpadminlogin::class)
|
||||
->onlyMethods(['d3GetBackupCodeListObject', 'd3TotpGetUserObject'])
|
||||
->getMock();
|
||||
$oControllerMock->method('d3GetBackupCodeListObject')->willReturn($oBackupCodeListMock);
|
||||
$oControllerMock->method('d3TotpGetUserObject')->willReturn($userMock);
|
||||
|
||||
$this->_oController = $oControllerMock;
|
||||
|
||||
@ -344,13 +362,13 @@ class d3totpadminloginTest extends d3TotpUnitTestCase
|
||||
public function canCancelLogin()
|
||||
{
|
||||
/** @var d3_totp_user|MockObject $userMock */
|
||||
$userMock = $this->getMockBuilder(User::class)
|
||||
$userMock = $this->d3getMockBuilder(User::class)
|
||||
->onlyMethods(['logout'])
|
||||
->getMock();
|
||||
$userMock->expects($this->once())->method('logout')->willReturn(true);
|
||||
|
||||
/** @var d3totpadminlogin|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3totpadminlogin::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3totpadminlogin::class)
|
||||
->onlyMethods(['d3TotpGetUserObject'])
|
||||
->getMock();
|
||||
$oControllerMock->method('d3TotpGetUserObject')->willReturn($userMock);
|
||||
@ -386,8 +404,13 @@ class d3totpadminloginTest extends d3TotpUnitTestCase
|
||||
*/
|
||||
public function checkloginUnvalidTotp()
|
||||
{
|
||||
$userMock = $this->d3getMockBuilder(User::class)
|
||||
->onlyMethods(['d3TotpGetCurrentUser'])
|
||||
->getMock();
|
||||
$userMock->method('d3TotpGetCurrentUser')->willReturn('foo');
|
||||
|
||||
/** @var LoggerWrapper|MockObject $loggerMock */
|
||||
$loggerMock = $this->getMockBuilder(LoggerWrapper::class)
|
||||
$loggerMock = $this->d3getMockBuilder(LoggerWrapper::class)
|
||||
->disableOriginalConstructor()
|
||||
->onlyMethods(['error', 'debug'])
|
||||
->getMock();
|
||||
@ -395,14 +418,14 @@ class d3totpadminloginTest extends d3TotpUnitTestCase
|
||||
$loggerMock->expects($this->atLeastOnce())->method('debug')->willReturn(true);
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->disableOriginalConstructor()
|
||||
->onlyMethods(['loadByUserId'])
|
||||
->getMock();
|
||||
$oTotpMock->method('loadByUserId')->willReturn(true);
|
||||
$oTotpMock->method('loadByUserId');
|
||||
|
||||
/** @var Session|MockObject $oSessionMock */
|
||||
$oSessionMock = $this->getMockBuilder(Session::class)
|
||||
$oSessionMock = $this->d3getMockBuilder(Session::class)
|
||||
->onlyMethods([
|
||||
'initNewSession',
|
||||
'setVariable',
|
||||
@ -414,18 +437,19 @@ class d3totpadminloginTest extends d3TotpUnitTestCase
|
||||
$oSessionMock->expects($this->never())->method('deleteVariable')->willReturn(false);
|
||||
|
||||
/** @var d3_totp_LoginController|MockObject $loginControllerMock */
|
||||
$loginControllerMock = $this->getMockBuilder(LoginController::class)
|
||||
$loginControllerMock = $this->d3getMockBuilder(LoginController::class)
|
||||
->onlyMethods(['d3totpAfterLogin'])
|
||||
->getMock();
|
||||
$loginControllerMock->expects($this->never())->method('d3totpAfterLogin')->willReturn(true);
|
||||
$loginControllerMock->expects($this->never())->method('d3totpAfterLogin');
|
||||
|
||||
/** @var d3totpadminlogin|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3totpadminlogin::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3totpadminlogin::class)
|
||||
->onlyMethods([
|
||||
'getLogger',
|
||||
'd3TotpHasValidTotp',
|
||||
'd3TotpGetSession',
|
||||
'd3GetLoginController',
|
||||
'd3TotpGetUserObject',
|
||||
])
|
||||
->getMock();
|
||||
$oControllerMock->method('d3TotpHasValidTotp')
|
||||
@ -433,6 +457,7 @@ class d3totpadminloginTest extends d3TotpUnitTestCase
|
||||
$oControllerMock->method('d3TotpGetSession')->willReturn($oSessionMock);
|
||||
$oControllerMock->method('getLogger')->willReturn($loggerMock);
|
||||
$oControllerMock->method('d3GetLoginController')->willReturn($loginControllerMock);
|
||||
$oControllerMock->method('d3TotpGetUserObject')->willReturn($userMock);
|
||||
|
||||
$this->_oController = $oControllerMock;
|
||||
|
||||
@ -449,8 +474,13 @@ class d3totpadminloginTest extends d3TotpUnitTestCase
|
||||
*/
|
||||
public function checkloginValidTotp()
|
||||
{
|
||||
$userMock = $this->d3getMockBuilder(User::class)
|
||||
->onlyMethods(['d3TotpGetCurrentUser'])
|
||||
->getMock();
|
||||
$userMock->method('d3TotpGetCurrentUser')->willReturn('foo');
|
||||
|
||||
/** @var LoggerWrapper|MockObject $loggerMock */
|
||||
$loggerMock = $this->getMockBuilder(LoggerWrapper::class)
|
||||
$loggerMock = $this->d3getMockBuilder(LoggerWrapper::class)
|
||||
->disableOriginalConstructor()
|
||||
->onlyMethods(['error', 'debug'])
|
||||
->getMock();
|
||||
@ -458,14 +488,14 @@ class d3totpadminloginTest extends d3TotpUnitTestCase
|
||||
$loggerMock->expects($this->never())->method('debug')->willReturn(true);
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->disableOriginalConstructor()
|
||||
->onlyMethods(['loadByUserId'])
|
||||
->getMock();
|
||||
$oTotpMock->method('loadByUserId')->willReturn(true);
|
||||
$oTotpMock->method('loadByUserId');
|
||||
|
||||
/** @var Session|MockObject $oSessionMock */
|
||||
$oSessionMock = $this->getMockBuilder(Session::class)
|
||||
$oSessionMock = $this->d3getMockBuilder(Session::class)
|
||||
->onlyMethods([
|
||||
'initNewSession',
|
||||
'setVariable',
|
||||
@ -477,24 +507,26 @@ class d3totpadminloginTest extends d3TotpUnitTestCase
|
||||
$oSessionMock->expects($this->atLeastOnce())->method('deleteVariable')->willReturn(false);
|
||||
|
||||
/** @var d3_totp_LoginController|MockObject $loginControllerMock */
|
||||
$loginControllerMock = $this->getMockBuilder(LoginController::class)
|
||||
$loginControllerMock = $this->d3getMockBuilder(LoginController::class)
|
||||
->onlyMethods(['d3totpAfterLogin'])
|
||||
->getMock();
|
||||
$loginControllerMock->expects($this->once())->method('d3totpAfterLogin')->willReturn(true);
|
||||
$loginControllerMock->expects($this->once())->method('d3totpAfterLogin');
|
||||
|
||||
/** @var d3totpadminlogin|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3totpadminlogin::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3totpadminlogin::class)
|
||||
->onlyMethods([
|
||||
'getLogger',
|
||||
'd3TotpHasValidTotp',
|
||||
'd3TotpGetSession',
|
||||
'd3GetLoginController',
|
||||
'd3TotpGetUserObject'
|
||||
])
|
||||
->getMock();
|
||||
$oControllerMock->method('d3TotpHasValidTotp')->willReturn(true);
|
||||
$oControllerMock->method('d3TotpGetSession')->willReturn($oSessionMock);
|
||||
$oControllerMock->method('getLogger')->willReturn($loggerMock);
|
||||
$oControllerMock->method('d3GetLoginController')->willReturn($loginControllerMock);
|
||||
$oControllerMock->method('d3TotpGetUserObject')->willReturn($userMock);
|
||||
|
||||
$this->_oController = $oControllerMock;
|
||||
|
||||
@ -514,7 +546,7 @@ class d3totpadminloginTest extends d3TotpUnitTestCase
|
||||
Registry::getSession()->setVariable(d3totp_conf::SESSION_ADMIN_AUTH, true);
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['verify'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
@ -535,7 +567,7 @@ class d3totpadminloginTest extends d3TotpUnitTestCase
|
||||
Registry::getSession()->setVariable(d3totp_conf::SESSION_ADMIN_AUTH, false);
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['verify'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
@ -556,14 +588,14 @@ class d3totpadminloginTest extends d3TotpUnitTestCase
|
||||
Registry::getSession()->setVariable(d3totp_conf::SESSION_ADMIN_AUTH, false);
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['verify'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$oTotpMock->method('verify')->willThrowException(oxNew(d3totp_wrongOtpException::class));
|
||||
|
||||
$this->expectException(d3totp_wrongOtpException::class);
|
||||
$this->callMethod($this->_oController, 'd3TotpHasValidTotp', [null, $oTotpMock]);
|
||||
$this->callMethod($this->_oController, 'd3TotpHasValidTotp', ['123456', $oTotpMock]);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -576,7 +608,7 @@ class d3totpadminloginTest extends d3TotpUnitTestCase
|
||||
Registry::getSession()->setVariable(d3totp_conf::SESSION_ADMIN_AUTH, false);
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['verify'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
@ -13,15 +13,17 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Totp\tests\unit\Application\Controller\Admin;
|
||||
namespace D3\Totp\Tests\Unit\Application\Controller\Admin;
|
||||
|
||||
use D3\TestingTools\Development\CanAccessRestricted;
|
||||
use D3\Totp\Application\Controller\Admin\d3user_totp;
|
||||
use D3\Totp\Application\Model\d3backupcodelist;
|
||||
use D3\Totp\Application\Model\d3totp;
|
||||
use D3\Totp\tests\unit\d3TotpUnitTestCase;
|
||||
use D3\Totp\Application\Model\d3totp_conf;
|
||||
use D3\Totp\Tests\Unit\d3TotpUnitTestCase;
|
||||
use Exception;
|
||||
use OxidEsales\Eshop\Application\Model\User;
|
||||
use OxidEsales\Eshop\Core\Registry;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
use ReflectionException;
|
||||
|
||||
@ -57,22 +59,24 @@ class d3user_totpTest extends d3TotpUnitTestCase
|
||||
*/
|
||||
public function canRenderNoSelectedUser()
|
||||
{
|
||||
$userMock = oxNew(User::class);
|
||||
|
||||
/** @var d3user_totp|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3user_totp::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3user_totp::class)
|
||||
->onlyMethods([
|
||||
'getEditObjectId',
|
||||
'getUserObject',
|
||||
])
|
||||
->getMock();
|
||||
$oControllerMock->method('getEditObjectId')->willReturn('-1');
|
||||
$oControllerMock->expects($this->never())->method('getUserObject')->willReturn(false);
|
||||
$oControllerMock->expects($this->never())->method('getUserObject')->willReturn($userMock);
|
||||
|
||||
$this->_oController = $oControllerMock;
|
||||
|
||||
$sTpl = $this->callMethod($this->_oController, 'render');
|
||||
$tplUser = $this->callMethod($this->_oController, 'getViewDataElement', ['edit']);
|
||||
|
||||
$this->assertSame('d3user_totp.tpl', $sTpl);
|
||||
$this->assertSame('@d3totp/admin/d3user_totp', $sTpl);
|
||||
$this->assertSame($tplUser, null);
|
||||
}
|
||||
|
||||
@ -85,7 +89,7 @@ class d3user_totpTest extends d3TotpUnitTestCase
|
||||
public function canRenderSelectedUser()
|
||||
{
|
||||
/** @var User|MockObject $oUserMock */
|
||||
$oUserMock = $this->getMockBuilder(User::class)
|
||||
$oUserMock = $this->d3getMockBuilder(User::class)
|
||||
->onlyMethods([
|
||||
'getId',
|
||||
'load',
|
||||
@ -95,7 +99,7 @@ class d3user_totpTest extends d3TotpUnitTestCase
|
||||
$oUserMock->expects($this->atLeast(1))->method('load')->willReturn(true);
|
||||
|
||||
/** @var d3user_totp|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3user_totp::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3user_totp::class)
|
||||
->onlyMethods([
|
||||
'getEditObjectId',
|
||||
'getUserObject',
|
||||
@ -110,7 +114,7 @@ class d3user_totpTest extends d3TotpUnitTestCase
|
||||
$tplUser = $this->callMethod($this->_oController, 'getViewDataElement', ['edit']);
|
||||
$oxid = $this->callMethod($this->_oController, 'getViewDataElement', ['oxid']);
|
||||
|
||||
$this->assertSame('d3user_totp.tpl', $sTpl);
|
||||
$this->assertSame('@d3totp/admin/d3user_totp', $sTpl);
|
||||
$this->assertSame($tplUser, $oUserMock);
|
||||
$this->assertSame($oxid, 'foobar');
|
||||
}
|
||||
@ -124,7 +128,7 @@ class d3user_totpTest extends d3TotpUnitTestCase
|
||||
public function canRenderUnloadableUser()
|
||||
{
|
||||
/** @var User|MockObject $oUserMock */
|
||||
$oUserMock = $this->getMockBuilder(User::class)
|
||||
$oUserMock = $this->d3getMockBuilder(User::class)
|
||||
->onlyMethods([
|
||||
'getId',
|
||||
'load',
|
||||
@ -134,7 +138,7 @@ class d3user_totpTest extends d3TotpUnitTestCase
|
||||
$oUserMock->expects($this->atLeast(1))->method('load')->willReturn(false);
|
||||
|
||||
/** @var d3user_totp|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3user_totp::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3user_totp::class)
|
||||
->onlyMethods([
|
||||
'getEditObjectId',
|
||||
'getUserObject',
|
||||
@ -159,7 +163,7 @@ class d3user_totpTest extends d3TotpUnitTestCase
|
||||
$tplUser = $this->callMethod($this->_oController, 'getViewDataElement', ['edit']);
|
||||
$oxid = $this->callMethod($this->_oController, 'getViewDataElement', ['oxid']);
|
||||
|
||||
$this->assertSame('d3user_totp.tpl', $sTpl);
|
||||
$this->assertSame('@d3totp/admin/d3user_totp', $sTpl);
|
||||
$this->assertNull($tplUser);
|
||||
$this->assertSame($oxid, 'foobar');
|
||||
}
|
||||
@ -220,13 +224,13 @@ class d3user_totpTest extends d3TotpUnitTestCase
|
||||
public function cantSaveBecauseOfNotVerifiable()
|
||||
{
|
||||
/** @var d3backupcodelist|MockObject $oBackupCodeListMock */
|
||||
$oBackupCodeListMock = $this->getMockBuilder(d3backupcodelist::class)
|
||||
$oBackupCodeListMock = $this->d3getMockBuilder(d3backupcodelist::class)
|
||||
->onlyMethods(['save'])
|
||||
->getMock();
|
||||
$oBackupCodeListMock->expects($this->never())->method('save')->willReturn(true);
|
||||
$oBackupCodeListMock->expects($this->never())->method('save');
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods([
|
||||
'load',
|
||||
'save',
|
||||
@ -240,12 +244,12 @@ class d3user_totpTest extends d3TotpUnitTestCase
|
||||
$oTotpMock->method('load')->willReturn(true);
|
||||
$oTotpMock->expects($this->never())->method('save')->willReturn(true);
|
||||
$oTotpMock->expects($this->once())->method('verify')->willThrowException(new Exception());
|
||||
$oTotpMock->method('saveSecret')->willReturn(true);
|
||||
$oTotpMock->method('saveSecret');
|
||||
$oTotpMock->method('assign')->willReturn(true);
|
||||
$oTotpMock->method('checkIfAlreadyExist')->willReturn(false);
|
||||
|
||||
/** @var d3user_totp|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3user_totp::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3user_totp::class)
|
||||
->onlyMethods([
|
||||
'getEditObjectId',
|
||||
'getUserObject',
|
||||
@ -259,6 +263,9 @@ class d3user_totpTest extends d3TotpUnitTestCase
|
||||
|
||||
$this->_oController = $oControllerMock;
|
||||
|
||||
$_GET['otp'] = '123456';
|
||||
Registry::getSession()->setVariable(d3totp_conf::OTP_SESSION_VARNAME, $oTotpMock);
|
||||
|
||||
$this->callMethod($this->_oController, 'save');
|
||||
}
|
||||
|
||||
@ -270,13 +277,13 @@ class d3user_totpTest extends d3TotpUnitTestCase
|
||||
public function cantSaveBecauseExistingRegistration()
|
||||
{
|
||||
/** @var d3backupcodelist|MockObject $oBackupCodeListMock */
|
||||
$oBackupCodeListMock = $this->getMockBuilder(d3backupcodelist::class)
|
||||
$oBackupCodeListMock = $this->d3getMockBuilder(d3backupcodelist::class)
|
||||
->onlyMethods(['save'])
|
||||
->getMock();
|
||||
$oBackupCodeListMock->expects($this->never())->method('save')->willReturn(true);
|
||||
$oBackupCodeListMock->expects($this->never())->method('save');
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->disableOriginalConstructor()
|
||||
->onlyMethods([
|
||||
'load',
|
||||
@ -290,12 +297,12 @@ class d3user_totpTest extends d3TotpUnitTestCase
|
||||
$oTotpMock->method('load')->willReturn(true);
|
||||
$oTotpMock->expects($this->never())->method('save')->willReturn(true);
|
||||
$oTotpMock->expects($this->never())->method('verify')->willThrowException(new Exception());
|
||||
$oTotpMock->method('saveSecret')->willReturn(true);
|
||||
$oTotpMock->method('saveSecret');
|
||||
$oTotpMock->method('assign')->willReturn(true);
|
||||
$oTotpMock->method('checkIfAlreadyExist')->willReturn(true);
|
||||
|
||||
/** @var d3user_totp|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3user_totp::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3user_totp::class)
|
||||
->onlyMethods([
|
||||
'getEditObjectId',
|
||||
'getUserObject',
|
||||
@ -320,17 +327,17 @@ class d3user_totpTest extends d3TotpUnitTestCase
|
||||
public function canSave()
|
||||
{
|
||||
/** @var d3backupcodelist|MockObject $oBackupCodeListMock */
|
||||
$oBackupCodeListMock = $this->getMockBuilder(d3backupcodelist::class)
|
||||
$oBackupCodeListMock = $this->d3getMockBuilder(d3backupcodelist::class)
|
||||
->onlyMethods([
|
||||
'save',
|
||||
'generateBackupCodes',
|
||||
])
|
||||
->getMock();
|
||||
$oBackupCodeListMock->expects($this->once())->method('save')->willReturn(true);
|
||||
$oBackupCodeListMock->method('generateBackupCodes')->willReturn(true);
|
||||
$oBackupCodeListMock->expects($this->once())->method('save');
|
||||
$oBackupCodeListMock->method('generateBackupCodes');
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods([
|
||||
'load',
|
||||
'save',
|
||||
@ -344,12 +351,12 @@ class d3user_totpTest extends d3TotpUnitTestCase
|
||||
$oTotpMock->expects($this->never())->method('load')->willReturn(true);
|
||||
$oTotpMock->expects($this->once())->method('save')->willReturn(true);
|
||||
$oTotpMock->expects($this->once())->method('verify')->willReturn(true);
|
||||
$oTotpMock->method('saveSecret')->willReturn(true);
|
||||
$oTotpMock->method('saveSecret');
|
||||
$oTotpMock->method('assign')->willReturn(true);
|
||||
$oTotpMock->method('checkIfAlreadyExist')->willReturn(false);
|
||||
|
||||
/** @var d3user_totp|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3user_totp::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3user_totp::class)
|
||||
->onlyMethods([
|
||||
'getEditObjectId',
|
||||
'getUserObject',
|
||||
@ -363,6 +370,9 @@ class d3user_totpTest extends d3TotpUnitTestCase
|
||||
|
||||
$this->_oController = $oControllerMock;
|
||||
|
||||
$_GET['otp'] = '123456';
|
||||
Registry::getSession()->setVariable(d3totp_conf::OTP_SESSION_VARNAME, $oTotpMock);
|
||||
|
||||
$this->callMethod($this->_oController, 'save');
|
||||
}
|
||||
|
||||
@ -379,17 +389,17 @@ class d3user_totpTest extends d3TotpUnitTestCase
|
||||
$_GET['editval'] = $aEditval;
|
||||
|
||||
/** @var d3backupcodelist|MockObject $oBackupCodeListMock */
|
||||
$oBackupCodeListMock = $this->getMockBuilder(d3backupcodelist::class)
|
||||
$oBackupCodeListMock = $this->d3getMockBuilder(d3backupcodelist::class)
|
||||
->onlyMethods([
|
||||
'save',
|
||||
'generateBackupCodes',
|
||||
])
|
||||
->getMock();
|
||||
$oBackupCodeListMock->expects($this->once())->method('save')->willReturn(true);
|
||||
$oBackupCodeListMock->method('generateBackupCodes')->willReturn(true);
|
||||
$oBackupCodeListMock->expects($this->once())->method('save');
|
||||
$oBackupCodeListMock->method('generateBackupCodes');
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods([
|
||||
'load',
|
||||
'save',
|
||||
@ -403,12 +413,12 @@ class d3user_totpTest extends d3TotpUnitTestCase
|
||||
$oTotpMock->expects($this->once())->method('load')->willReturn(true);
|
||||
$oTotpMock->expects($this->once())->method('save')->willReturn(true);
|
||||
$oTotpMock->expects($this->never())->method('verify')->willReturn(true);
|
||||
$oTotpMock->method('saveSecret')->willReturn(true);
|
||||
$oTotpMock->method('saveSecret');
|
||||
$oTotpMock->method('assign')->willReturn(true);
|
||||
$oTotpMock->method('checkIfAlreadyExist')->willReturn(false);
|
||||
|
||||
/** @var d3user_totp|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3user_totp::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3user_totp::class)
|
||||
->onlyMethods([
|
||||
'getEditObjectId',
|
||||
'getUserObject',
|
||||
@ -456,14 +466,14 @@ class d3user_totpTest extends d3TotpUnitTestCase
|
||||
$_GET['editval'] = $editval;
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->disableOriginalConstructor()
|
||||
->onlyMethods(['delete'])
|
||||
->getMock();
|
||||
$oTotpMock->expects($this->never())->method('delete');
|
||||
|
||||
/** @var d3user_totp|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3user_totp::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3user_totp::class)
|
||||
->onlyMethods(['getTotpObject'])
|
||||
->getMock();
|
||||
$oControllerMock->expects($this->never())->method('getTotpObject')->willReturn($oTotpMock);
|
||||
@ -486,7 +496,7 @@ class d3user_totpTest extends d3TotpUnitTestCase
|
||||
$_GET['editval'] = $editval;
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->disableOriginalConstructor()
|
||||
->onlyMethods([
|
||||
'delete',
|
||||
@ -497,7 +507,7 @@ class d3user_totpTest extends d3TotpUnitTestCase
|
||||
$oTotpMock->method('load')->willReturn(true);
|
||||
|
||||
/** @var d3user_totp|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3user_totp::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3user_totp::class)
|
||||
->onlyMethods(['getTotpObject'])
|
||||
->getMock();
|
||||
$oControllerMock->method('getTotpObject')->willReturn($oTotpMock);
|
||||
@ -515,7 +525,7 @@ class d3user_totpTest extends d3TotpUnitTestCase
|
||||
public function canGetAvailableBackupCodeCount()
|
||||
{
|
||||
/** @var d3backupcodelist|MockObject $oBackupCodeListMock */
|
||||
$oBackupCodeListMock = $this->getMockBuilder(d3backupcodelist::class)
|
||||
$oBackupCodeListMock = $this->d3getMockBuilder(d3backupcodelist::class)
|
||||
->onlyMethods(['getAvailableCodeCount'])
|
||||
->getMock();
|
||||
$oBackupCodeListMock->method('getAvailableCodeCount')->willReturn(25);
|
||||
@ -524,14 +534,16 @@ class d3user_totpTest extends d3TotpUnitTestCase
|
||||
$oUser->setId('foo');
|
||||
|
||||
/** @var d3user_totp|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3user_totp::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3user_totp::class)
|
||||
->onlyMethods([
|
||||
'getBackupCodeListObject',
|
||||
'getUser',
|
||||
'getEditObjectId'
|
||||
])
|
||||
->getMock();
|
||||
$oControllerMock->method('getBackupCodeListObject')->willReturn($oBackupCodeListMock);
|
||||
$oControllerMock->method('getUser')->willReturn($oUser);
|
||||
$oControllerMock->method('getEditObjectId')->willReturn('foo');
|
||||
|
||||
$this->_oController = $oControllerMock;
|
||||
|
@ -13,15 +13,17 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Totp\tests\unit\Application\Controller;
|
||||
namespace D3\Totp\Tests\Unit\Application\Controller;
|
||||
|
||||
use D3\TestingTools\Development\CanAccessRestricted;
|
||||
use D3\Totp\Application\Controller\d3_account_totp;
|
||||
use D3\Totp\Application\Model\d3backupcodelist;
|
||||
use D3\Totp\Application\Model\d3totp;
|
||||
use D3\Totp\tests\unit\d3TotpUnitTestCase;
|
||||
use D3\Totp\Application\Model\d3totp_conf;
|
||||
use D3\Totp\Tests\Unit\d3TotpUnitTestCase;
|
||||
use Exception;
|
||||
use OxidEsales\Eshop\Application\Model\User;
|
||||
use OxidEsales\Eshop\Core\Registry;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
use ReflectionException;
|
||||
|
||||
@ -66,7 +68,7 @@ class d3_account_totpTest extends d3TotpUnitTestCase
|
||||
);
|
||||
|
||||
/** @var d3_account_totp|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3_account_totp::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3_account_totp::class)
|
||||
->onlyMethods(['getUser'])
|
||||
->getMock();
|
||||
$oControllerMock->method('getUser')->willReturn($oUser);
|
||||
@ -76,7 +78,7 @@ class d3_account_totpTest extends d3TotpUnitTestCase
|
||||
$sTpl = $this->callMethod($this->_oController, 'render');
|
||||
$tplUser = $this->callMethod($this->_oController, 'getViewDataElement', ['user']);
|
||||
|
||||
$this->assertSame('d3_account_totp.tpl', $sTpl);
|
||||
$this->assertSame('@d3totp/tpl/d3_account_totp', $sTpl);
|
||||
$this->assertSame($tplUser, $oUser);
|
||||
}
|
||||
|
||||
@ -91,7 +93,7 @@ class d3_account_totpTest extends d3TotpUnitTestCase
|
||||
$oUser = null;
|
||||
|
||||
/** @var d3_account_totp|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3_account_totp::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3_account_totp::class)
|
||||
->onlyMethods(['getUser'])
|
||||
->getMock();
|
||||
$oControllerMock->method('getUser')->willReturn($oUser);
|
||||
@ -101,7 +103,7 @@ class d3_account_totpTest extends d3TotpUnitTestCase
|
||||
$sTpl = $this->callMethod($this->_oController, 'render');
|
||||
$tplUser = $this->callMethod($this->_oController, 'getViewDataElement', ['user']);
|
||||
|
||||
$this->assertSame('page/account/login.tpl', $sTpl);
|
||||
$this->assertSame('page/account/login', $sTpl);
|
||||
$this->assertNull($tplUser);
|
||||
}
|
||||
|
||||
@ -149,7 +151,7 @@ class d3_account_totpTest extends d3TotpUnitTestCase
|
||||
public function canGetAvailableBackupCodeCount()
|
||||
{
|
||||
/** @var d3backupcodelist|MockObject $oBackupCodeListMock */
|
||||
$oBackupCodeListMock = $this->getMockBuilder(d3backupcodelist::class)
|
||||
$oBackupCodeListMock = $this->d3getMockBuilder(d3backupcodelist::class)
|
||||
->onlyMethods(['getAvailableCodeCount'])
|
||||
->getMock();
|
||||
$oBackupCodeListMock->method('getAvailableCodeCount')->willReturn(25);
|
||||
@ -158,7 +160,7 @@ class d3_account_totpTest extends d3TotpUnitTestCase
|
||||
$oUser->setId('foo');
|
||||
|
||||
/** @var d3_account_totp|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3_account_totp::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3_account_totp::class)
|
||||
->onlyMethods([
|
||||
'getBackupCodeListObject',
|
||||
'getUser',
|
||||
@ -184,11 +186,13 @@ class d3_account_totpTest extends d3TotpUnitTestCase
|
||||
{
|
||||
$_GET['totp_use'] = 0;
|
||||
|
||||
$totp = oxNew(d3totp::class);
|
||||
|
||||
/** @var d3_account_totp|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3_account_totp::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3_account_totp::class)
|
||||
->onlyMethods(['getTotpObject'])
|
||||
->getMock();
|
||||
$oControllerMock->expects($this->never())->method('getTotpObject')->willReturn(true);
|
||||
$oControllerMock->expects($this->never())->method('getTotpObject')->willReturn($totp);
|
||||
|
||||
$this->_oController = $oControllerMock;
|
||||
|
||||
@ -203,9 +207,10 @@ class d3_account_totpTest extends d3TotpUnitTestCase
|
||||
public function cantCreateIfTotpNotVerfiable()
|
||||
{
|
||||
$_GET['totp_use'] = '1';
|
||||
$_GET['otp'] = '123456';
|
||||
|
||||
/** @var d3backupcodelist|MockObject $oBackupCodeListMock */
|
||||
$oBackupCodeListMock = $this->getMockBuilder(d3backupcodelist::class)
|
||||
$oBackupCodeListMock = $this->d3getMockBuilder(d3backupcodelist::class)
|
||||
->onlyMethods([
|
||||
'generateBackupCodes',
|
||||
'save',
|
||||
@ -215,7 +220,7 @@ class d3_account_totpTest extends d3TotpUnitTestCase
|
||||
$oBackupCodeListMock->expects($this->never())->method('save');
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->disableOriginalConstructor()
|
||||
->onlyMethods([
|
||||
'saveSecret',
|
||||
@ -224,7 +229,7 @@ class d3_account_totpTest extends d3TotpUnitTestCase
|
||||
'save',
|
||||
])
|
||||
->getMock();
|
||||
$oTotpMock->method('saveSecret')->willReturn(true);
|
||||
$oTotpMock->method('saveSecret');
|
||||
$oTotpMock->method('assign')->willReturn(true);
|
||||
$oTotpMock->expects($this->once())->method('verify')->willThrowException(new Exception('foo'));
|
||||
$oTotpMock->expects($this->never())->method('save');
|
||||
@ -233,16 +238,18 @@ class d3_account_totpTest extends d3TotpUnitTestCase
|
||||
$oUser->setId('foo');
|
||||
|
||||
/** @var d3_account_totp|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3_account_totp::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3_account_totp::class)
|
||||
->onlyMethods([
|
||||
'getTotpObject',
|
||||
'getUser',
|
||||
'getBackupCodeListObject',
|
||||
'getTotpObject'
|
||||
])
|
||||
->getMock();
|
||||
$oControllerMock->method('getTotpObject')->willReturn($oTotpMock);
|
||||
$oControllerMock->method('getUser')->willReturn($oUser);
|
||||
$oControllerMock->method('getBackupCodeListObject')->willReturn($oBackupCodeListMock);
|
||||
$oControllerMock->method('getTotpObject')->willReturn($oTotpMock);
|
||||
|
||||
Registry::getSession()->setVariable(d3totp_conf::OTP_SESSION_VARNAME, $oTotpMock);
|
||||
|
||||
$this->_oController = $oControllerMock;
|
||||
|
||||
@ -257,20 +264,21 @@ class d3_account_totpTest extends d3TotpUnitTestCase
|
||||
public function canCreate()
|
||||
{
|
||||
$_GET['totp_use'] = '1';
|
||||
$_GET['otp'] = '123456';
|
||||
|
||||
/** @var d3backupcodelist|MockObject $oBackupCodeListMock */
|
||||
$oBackupCodeListMock = $this->getMockBuilder(d3backupcodelist::class)
|
||||
$oBackupCodeListMock = $this->d3getMockBuilder(d3backupcodelist::class)
|
||||
->onlyMethods([
|
||||
'generateBackupCodes',
|
||||
'save',
|
||||
])
|
||||
->getMock();
|
||||
$oBackupCodeListMock->method('generateBackupCodes')->willReturn(['0123', '1234']);
|
||||
$oBackupCodeListMock->expects($this->once())->method('save')->willReturn(true);
|
||||
$oBackupCodeListMock->method('save')->willReturn(true);
|
||||
$oBackupCodeListMock->method('generateBackupCodes');
|
||||
$oBackupCodeListMock->expects($this->once())->method('save');
|
||||
$oBackupCodeListMock->method('save');
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->disableOriginalConstructor()
|
||||
->onlyMethods([
|
||||
'saveSecret',
|
||||
@ -280,7 +288,7 @@ class d3_account_totpTest extends d3TotpUnitTestCase
|
||||
'setId',
|
||||
])
|
||||
->getMock();
|
||||
$oTotpMock->method('saveSecret')->willReturn(true);
|
||||
$oTotpMock->method('saveSecret');
|
||||
$oTotpMock->method('assign')->willReturn(true);
|
||||
$oTotpMock->method('verify')->willReturn(true);
|
||||
$oTotpMock->method('setId')->willReturn(true);
|
||||
@ -290,13 +298,14 @@ class d3_account_totpTest extends d3TotpUnitTestCase
|
||||
$oUser->setId('foo');
|
||||
|
||||
/** @var d3_account_totp|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3_account_totp::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3_account_totp::class)
|
||||
->onlyMethods([
|
||||
'getTotpObject',
|
||||
'getUser',
|
||||
'getBackupCodeListObject',
|
||||
'getTotpObject'
|
||||
])
|
||||
->getMock();
|
||||
Registry::getSession()->setVariable(d3totp_conf::OTP_SESSION_VARNAME, $oTotpMock);
|
||||
$oControllerMock->method('getTotpObject')->willReturn($oTotpMock);
|
||||
$oControllerMock->method('getUser')->willReturn($oUser);
|
||||
$oControllerMock->method('getBackupCodeListObject')->willReturn($oBackupCodeListMock);
|
||||
@ -315,11 +324,13 @@ class d3_account_totpTest extends d3TotpUnitTestCase
|
||||
{
|
||||
$_GET['totp_use'] = '1';
|
||||
|
||||
$totpMock = oxNew(d3totp::class);
|
||||
|
||||
/** @var d3_account_totp|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3_account_totp::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3_account_totp::class)
|
||||
->onlyMethods(['getTotpObject'])
|
||||
->getMock();
|
||||
$oControllerMock->expects($this->never())->method('getTotpObject')->willReturn(true);
|
||||
$oControllerMock->expects($this->never())->method('getTotpObject')->willReturn($totpMock);
|
||||
|
||||
$this->_oController = $oControllerMock;
|
||||
|
||||
@ -336,14 +347,14 @@ class d3_account_totpTest extends d3TotpUnitTestCase
|
||||
$_GET['totp_use'] = '0';
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->disableOriginalConstructor()
|
||||
->onlyMethods(['delete'])
|
||||
->getMock();
|
||||
$oTotpMock->expects($this->never())->method('delete');
|
||||
|
||||
/** @var d3_account_totp|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3_account_totp::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3_account_totp::class)
|
||||
->onlyMethods([
|
||||
'getTotpObject',
|
||||
'getUser',
|
||||
@ -367,7 +378,7 @@ class d3_account_totpTest extends d3TotpUnitTestCase
|
||||
$_GET['totp_use'] = '0';
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->disableOriginalConstructor()
|
||||
->onlyMethods([
|
||||
'delete',
|
||||
@ -375,13 +386,13 @@ class d3_account_totpTest extends d3TotpUnitTestCase
|
||||
])
|
||||
->getMock();
|
||||
$oTotpMock->expects($this->once())->method('delete')->willReturn(true);
|
||||
$oTotpMock->method('loadByUserId')->willReturn(true);
|
||||
$oTotpMock->method('loadByUserId');
|
||||
|
||||
$oUser = oxNew(User::class);
|
||||
$oUser->setId('foo');
|
||||
|
||||
/** @var d3_account_totp|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3_account_totp::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3_account_totp::class)
|
||||
->onlyMethods([
|
||||
'getTotpObject',
|
||||
'getUser',
|
@ -13,13 +13,13 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Totp\tests\unit\Application\Controller;
|
||||
namespace D3\Totp\Tests\Unit\Application\Controller;
|
||||
|
||||
use D3\TestingTools\Development\CanAccessRestricted;
|
||||
use D3\Totp\Application\Controller\d3totplogin;
|
||||
use D3\Totp\Application\Model\d3backupcodelist;
|
||||
use D3\Totp\Application\Model\d3totp_conf;
|
||||
use D3\Totp\tests\unit\d3TotpUnitTestCase;
|
||||
use D3\Totp\Tests\Unit\d3TotpUnitTestCase;
|
||||
use OxidEsales\Eshop\Core\Registry;
|
||||
use OxidEsales\Eshop\Core\Utils;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
@ -60,17 +60,19 @@ class d3totploginTest extends d3TotpUnitTestCase
|
||||
public function renderRedirectIfNoTotp()
|
||||
{
|
||||
/** @var Utils|MockObject $oUtilsMock */
|
||||
$oUtilsMock = $this->getMockBuilder(Utils::class)
|
||||
$oUtilsMock = $this->d3getMockBuilder(Utils::class)
|
||||
->onlyMethods(['redirect'])
|
||||
->getMock();
|
||||
$oUtilsMock->expects($this->once())->method('redirect')->willReturn(true);
|
||||
|
||||
/** @var d3totplogin|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3totplogin::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3totplogin::class)
|
||||
->onlyMethods(['getUtils'])
|
||||
->getMock();
|
||||
$oControllerMock->method('getUtils')->willReturn($oUtilsMock);
|
||||
|
||||
Registry::getSession()->setVariable(d3totp_conf::SESSION_CURRENTCLASS, 'currentClass');
|
||||
|
||||
$this->_oController = $oControllerMock;
|
||||
|
||||
$this->callMethod($this->_oController, 'render');
|
||||
@ -86,21 +88,23 @@ class d3totploginTest extends d3TotpUnitTestCase
|
||||
Registry::getSession()->setVariable(d3totp_conf::SESSION_CURRENTUSER, 'foo');
|
||||
|
||||
/** @var Utils|MockObject $oUtilsMock */
|
||||
$oUtilsMock = $this->getMockBuilder(Utils::class)
|
||||
$oUtilsMock = $this->d3getMockBuilder(Utils::class)
|
||||
->onlyMethods(['redirect'])
|
||||
->getMock();
|
||||
$oUtilsMock->expects($this->never())->method('redirect')->willReturn(true);
|
||||
|
||||
/** @var d3totplogin|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3totplogin::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3totplogin::class)
|
||||
->onlyMethods(['getUtils'])
|
||||
->getMock();
|
||||
$oControllerMock->method('getUtils')->willReturn($oUtilsMock);
|
||||
|
||||
$this->_oController = $oControllerMock;
|
||||
|
||||
Registry::getSession()->setVariable(d3totp_conf::SESSION_CURRENTCLASS, 'currentClass');
|
||||
|
||||
$this->assertSame(
|
||||
'd3totplogin.tpl',
|
||||
'@d3totp/tpl/d3totplogin',
|
||||
$this->callMethod($this->_oController, 'render')
|
||||
);
|
||||
}
|
||||
@ -129,19 +133,21 @@ class d3totploginTest extends d3TotpUnitTestCase
|
||||
public function getBackupCodeCountMessageReturnMessage()
|
||||
{
|
||||
/** @var d3backupcodelist|MockObject $oBackupCodesListMock */
|
||||
$oBackupCodesListMock = $this->getMockBuilder(d3backupcodelist::class)
|
||||
$oBackupCodesListMock = $this->d3getMockBuilder(d3backupcodelist::class)
|
||||
->onlyMethods(['getAvailableCodeCount'])
|
||||
->getMock();
|
||||
$oBackupCodesListMock->method('getAvailableCodeCount')->willReturn(1);
|
||||
|
||||
/** @var d3totplogin|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3totplogin::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3totplogin::class)
|
||||
->onlyMethods(['getBackupCodeListObject'])
|
||||
->getMock();
|
||||
$oControllerMock->method('getBackupCodeListObject')->willReturn($oBackupCodesListMock);
|
||||
|
||||
$this->_oController = $oControllerMock;
|
||||
|
||||
Registry::getSession()->setVariable(d3totp_conf::SESSION_CURRENTUSER, 'userId');
|
||||
|
||||
$this->assertGreaterThan(
|
||||
0,
|
||||
strpos(
|
||||
@ -159,17 +165,19 @@ class d3totploginTest extends d3TotpUnitTestCase
|
||||
public function getBackupCodeCountMessageReturnNoMessage()
|
||||
{
|
||||
/** @var d3backupcodelist|MockObject $oBackupCodesListMock */
|
||||
$oBackupCodesListMock = $this->getMockBuilder(d3backupcodelist::class)
|
||||
$oBackupCodesListMock = $this->d3getMockBuilder(d3backupcodelist::class)
|
||||
->onlyMethods(['getAvailableCodeCount'])
|
||||
->getMock();
|
||||
$oBackupCodesListMock->method('getAvailableCodeCount')->willReturn(1234);
|
||||
|
||||
/** @var d3totplogin|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3totplogin::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3totplogin::class)
|
||||
->onlyMethods(['getBackupCodeListObject'])
|
||||
->getMock();
|
||||
$oControllerMock->method('getBackupCodeListObject')->willReturn($oBackupCodesListMock);
|
||||
|
||||
Registry::getSession()->setVariable(d3totp_conf::SESSION_CURRENTUSER, 'userId');
|
||||
|
||||
$this->_oController = $oControllerMock;
|
||||
|
||||
$this->assertEmpty(
|
||||
@ -228,7 +236,7 @@ class d3totploginTest extends d3TotpUnitTestCase
|
||||
/**
|
||||
* @return array[]
|
||||
*/
|
||||
public function classIsOrderStepDataProvider(): array
|
||||
public static function classIsOrderStepDataProvider(): array
|
||||
{
|
||||
return [
|
||||
'order step class' => ['order', true],
|
||||
@ -262,7 +270,12 @@ class d3totploginTest extends d3TotpUnitTestCase
|
||||
*/
|
||||
public function canGetBreadCrumb()
|
||||
{
|
||||
$aBreadCrumb = $this->callMethod($this->_oController, 'getBreadCrumb');
|
||||
$controllerMock = $this->d3getMockBuilder(d3totplogin::class)
|
||||
->onlyMethods(['getLink'])
|
||||
->getMock();
|
||||
$controllerMock->method('getLink')->willReturn('linkFixture');
|
||||
|
||||
$aBreadCrumb = $this->callMethod($controllerMock, 'getBreadCrumb');
|
||||
|
||||
$this->assertIsString($aBreadCrumb[0]['title']);
|
||||
$this->assertTrue(strlen($aBreadCrumb[0]['title']) > 1);
|
@ -11,11 +11,11 @@
|
||||
* @link https://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
namespace D3\Totp\tests\unit\Application\Factory;
|
||||
namespace D3\Totp\Tests\Unit\Application\Factory;
|
||||
|
||||
use BaconQrCode\Renderer\ImageRenderer;
|
||||
use D3\Totp\Application\Factory\BaconQrCodeFactory;
|
||||
use D3\Totp\tests\unit\d3TotpUnitTestCase;
|
||||
use D3\Totp\Tests\Unit\d3TotpUnitTestCase;
|
||||
|
||||
class BaconQrCodeFactoryTest extends d3TotpUnitTestCase
|
||||
{
|
@ -13,11 +13,11 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Totp\tests\unit\Application\Model\Exceptions;
|
||||
namespace D3\Totp\Tests\Unit\Application\Model\Exceptions;
|
||||
|
||||
use D3\TestingTools\Development\CanAccessRestricted;
|
||||
use D3\Totp\Application\Model\Exceptions\d3totp_wrongOtpException;
|
||||
use D3\Totp\tests\unit\d3TotpUnitTestCase;
|
||||
use D3\Totp\Tests\Unit\d3TotpUnitTestCase;
|
||||
use ReflectionException;
|
||||
|
||||
class d3totp_wrongOtpExceptionTest extends d3TotpUnitTestCase
|
@ -13,11 +13,11 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Totp\tests\unit\Application\Model;
|
||||
namespace D3\Totp\Tests\Unit\Application\Model;
|
||||
|
||||
use D3\TestingTools\Development\CanAccessRestricted;
|
||||
use D3\Totp\Application\Model\d3RandomGenerator;
|
||||
use D3\Totp\tests\unit\d3TotpUnitTestCase;
|
||||
use D3\Totp\Tests\Unit\d3TotpUnitTestCase;
|
||||
use ReflectionException;
|
||||
|
||||
class d3RandomGeneratorTest extends d3TotpUnitTestCase
|
||||
@ -25,7 +25,7 @@ class d3RandomGeneratorTest extends d3TotpUnitTestCase
|
||||
use CanAccessRestricted;
|
||||
|
||||
/** @var d3RandomGenerator */
|
||||
protected $_oModel;
|
||||
protected d3RandomGenerator $_oModel;
|
||||
|
||||
/**
|
||||
* setup basic requirements
|
||||
@ -51,7 +51,7 @@ class d3RandomGeneratorTest extends d3TotpUnitTestCase
|
||||
*/
|
||||
public function getRandomTotpBackupCodeReturnsRightCode()
|
||||
{
|
||||
$this->assertRegExp(
|
||||
$this->assertMatchesRegularExpression(
|
||||
'@[0-9]{6}@',
|
||||
$this->callMethod($this->_oModel, 'getRandomTotpBackupCode')
|
||||
);
|
@ -13,12 +13,12 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Totp\tests\unit\Application\Model;
|
||||
namespace D3\Totp\Tests\Unit\Application\Model;
|
||||
|
||||
use D3\TestingTools\Development\CanAccessRestricted;
|
||||
use D3\Totp\Application\Model\d3backupcode;
|
||||
use D3\Totp\Application\Model\d3totp_conf;
|
||||
use D3\Totp\tests\unit\d3TotpUnitTestCase;
|
||||
use D3\Totp\Tests\Unit\d3TotpUnitTestCase;
|
||||
use OxidEsales\Eshop\Application\Model\User;
|
||||
use OxidEsales\Eshop\Core\Registry;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
@ -59,7 +59,7 @@ class d3backupcodeTest extends d3TotpUnitTestCase
|
||||
$sBackupCode = '123456';
|
||||
|
||||
/** @var d3backupcode|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3backupcode::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3backupcode::class)
|
||||
->onlyMethods([
|
||||
'getRandomTotpBackupCode',
|
||||
'd3EncodeBC',
|
||||
@ -87,7 +87,7 @@ class d3backupcodeTest extends d3TotpUnitTestCase
|
||||
*/
|
||||
public function getRandomTotpBackupCodePass()
|
||||
{
|
||||
$this->assertRegExp(
|
||||
$this->assertMatchesRegularExpression(
|
||||
'@[0-9]{6}@',
|
||||
$this->callMethod($this->_oModel, 'getRandomTotpBackupCode')
|
||||
);
|
||||
@ -101,9 +101,8 @@ class d3backupcodeTest extends d3TotpUnitTestCase
|
||||
public function d3EncodeBCPass()
|
||||
{
|
||||
/** @var User|MockObject $oUserMock */
|
||||
$oUserMock = $this->getMockBuilder(User::class)
|
||||
$oUserMock = $this->d3getMockBuilder(User::class)
|
||||
->onlyMethods(['load'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$oUserMock->method('load')->willReturn(true);
|
||||
$oUserMock->assign(
|
||||
@ -113,7 +112,7 @@ class d3backupcodeTest extends d3TotpUnitTestCase
|
||||
);
|
||||
|
||||
/** @var d3backupcode|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3backupcode::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3backupcode::class)
|
||||
->onlyMethods(['d3TotpGetUserObject'])
|
||||
->getMock();
|
||||
$oModelMock->method('d3TotpGetUserObject')->willReturn($oUserMock);
|
||||
@ -134,7 +133,7 @@ class d3backupcodeTest extends d3TotpUnitTestCase
|
||||
public function d3GetUserReturnCachedUser()
|
||||
{
|
||||
/** @var User|MockObject $oUserMock */
|
||||
$oUserMock = $this->getMockBuilder(User::class)
|
||||
$oUserMock = $this->d3getMockBuilder(User::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$oUserMock->assign(
|
@ -13,17 +13,22 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Totp\tests\unit\Application\Model;
|
||||
namespace D3\Totp\Tests\Unit\Application\Model;
|
||||
|
||||
use D3\TestingTools\Development\CanAccessRestricted;
|
||||
use D3\Totp\Application\Model\d3backupcode;
|
||||
use D3\Totp\Application\Model\d3backupcodelist;
|
||||
use D3\Totp\tests\unit\d3TotpUnitTestCase;
|
||||
use D3\Totp\Tests\Unit\d3TotpUnitTestCase;
|
||||
use Doctrine\DBAL\ForwardCompatibility\Result;
|
||||
use Doctrine\DBAL\Query\QueryBuilder;
|
||||
use OxidEsales\Eshop\Application\Controller\FrontendController;
|
||||
use OxidEsales\Eshop\Application\Model\User;
|
||||
use OxidEsales\Eshop\Core\Config;
|
||||
use OxidEsales\Eshop\Core\Database\Adapter\Doctrine\Database;
|
||||
use OxidEsales\EshopCommunity\Internal\Container\ContainerFactory;
|
||||
use OxidEsales\EshopCommunity\Internal\Framework\Database\ConnectionProviderInterface;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
use Psr\Container\ContainerExceptionInterface;
|
||||
use Psr\Container\NotFoundExceptionInterface;
|
||||
use ReflectionException;
|
||||
|
||||
class d3backupcodelistTest extends d3TotpUnitTestCase
|
||||
@ -31,7 +36,7 @@ class d3backupcodelistTest extends d3TotpUnitTestCase
|
||||
use CanAccessRestricted;
|
||||
|
||||
/** @var d3backupcodelist */
|
||||
protected $_oModel;
|
||||
protected d3backupcodelist $_oModel;
|
||||
|
||||
/**
|
||||
* setup basic requirements
|
||||
@ -58,32 +63,32 @@ class d3backupcodelistTest extends d3TotpUnitTestCase
|
||||
public function generateBackupCodes()
|
||||
{
|
||||
/** @var FrontendController|MockObject $oViewMock */
|
||||
$oViewMock = $this->getMockBuilder(FrontendController::class)
|
||||
$oViewMock = $this->d3getMockBuilder(FrontendController::class)
|
||||
->addMethods(['setBackupCodes'])
|
||||
->getMock();
|
||||
$oViewMock->expects($this->once())->method('setBackupCodes')->willReturn(true);
|
||||
|
||||
/** @var Config|MockObject $oConfigMock */
|
||||
$oConfigMock = $this->getMockBuilder(Config::class)
|
||||
$oConfigMock = $this->d3getMockBuilder(Config::class)
|
||||
->onlyMethods(['getActiveView'])
|
||||
->getMock();
|
||||
$oConfigMock->method('getActiveView')->willReturn($oViewMock);
|
||||
|
||||
/** @var d3backupcode|MockObject $oBackupCodeMock */
|
||||
$oBackupCodeMock = $this->getMockBuilder(d3backupcode::class)
|
||||
$oBackupCodeMock = $this->d3getMockBuilder(d3backupcode::class)
|
||||
->onlyMethods(['generateCode'])
|
||||
->getMock();
|
||||
$oBackupCodeMock->expects($this->exactly(10))->method('generateCode');
|
||||
|
||||
/** @var d3backupcodelist|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3backupcodelist::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3backupcodelist::class)
|
||||
->onlyMethods([
|
||||
'deleteAllFromUser',
|
||||
'getD3BackupCodeObject',
|
||||
'd3GetConfig',
|
||||
])
|
||||
->getMock();
|
||||
$oModelMock->expects($this->once())->method('deleteAllFromUser')->willReturn(true);
|
||||
$oModelMock->expects($this->once())->method('deleteAllFromUser');
|
||||
$oModelMock->method('getD3BackupCodeObject')->willReturn($oBackupCodeMock);
|
||||
$oModelMock->method('d3GetConfig')->willReturn($oConfigMock);
|
||||
|
||||
@ -126,7 +131,7 @@ class d3backupcodelistTest extends d3TotpUnitTestCase
|
||||
public function savePass()
|
||||
{
|
||||
/** @var d3backupcode|MockObject $oBackupCodeMock */
|
||||
$oBackupCodeMock = $this->getMockBuilder(d3backupcode::class)
|
||||
$oBackupCodeMock = $this->d3getMockBuilder(d3backupcode::class)
|
||||
->onlyMethods(['save'])
|
||||
->getMock();
|
||||
$oBackupCodeMock->expects($this->once())->method('save')->willReturn(true);
|
||||
@ -136,7 +141,7 @@ class d3backupcodelistTest extends d3TotpUnitTestCase
|
||||
];
|
||||
|
||||
/** @var d3backupcodelist|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3backupcodelist::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3backupcodelist::class)
|
||||
->onlyMethods(['getArray'])
|
||||
->getMock();
|
||||
$oModelMock->expects($this->once())->method('getArray')->willReturn($aBackupCodeArray);
|
||||
@ -161,45 +166,48 @@ class d3backupcodelistTest extends d3TotpUnitTestCase
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
* @throws ReflectionException
|
||||
* @covers \D3\Totp\Application\Model\d3backupcodelist::verify
|
||||
*/
|
||||
public function verifyFoundTotp()
|
||||
{
|
||||
/** @var User|MockObject $oUserMock */
|
||||
$oUserMock = $this->getMockBuilder(User::class)
|
||||
$oUserMock = $this->d3getMockBuilder(User::class)
|
||||
->onlyMethods(['getId'])
|
||||
->getMock();
|
||||
$oUserMock->method('getId')->willReturn('foobar');
|
||||
$oUserMock->assign(['oxpasssalt' => '6162636465666768696A6B']);
|
||||
|
||||
/** @var d3backupcode|MockObject $oBackupCodeMock */
|
||||
$oBackupCodeMock = $this->getMockBuilder(d3backupcode::class)
|
||||
->onlyMethods(['delete'])
|
||||
$oBackupCodeMock = $this->d3getMockBuilder(d3backupcode::class)
|
||||
->onlyMethods(['delete', 'd3TotpGetUserObject'])
|
||||
->getMock();
|
||||
$oBackupCodeMock->expects($this->once())->method('delete')->willReturn(true);
|
||||
$oBackupCodeMock->method('d3TotpGetUserObject')->willReturn($oUserMock);
|
||||
|
||||
/** @var Database|MockObject $oDbMock */
|
||||
$oDbMock = $this->getMockBuilder(Database::class)
|
||||
->onlyMethods([
|
||||
'getOne',
|
||||
'quoteIdentifier',
|
||||
'quote',
|
||||
])
|
||||
$resultMock = $this->d3getMockBuilder(Result::class)
|
||||
->disableOriginalConstructor()
|
||||
->onlyMethods(['fetchOne'])
|
||||
->getMock();
|
||||
$oDbMock->expects($this->once())->method('getOne')->willReturn('foobar');
|
||||
$oDbMock->method('quoteIdentifier')->willReturn(true);
|
||||
$oDbMock->method('quote')->willReturn(true);
|
||||
$resultMock->method('fetchOne')->willReturn('1');
|
||||
|
||||
$qbMock = $this->d3getMockBuilder(QueryBuilder::class)
|
||||
->setConstructorArgs([ContainerFactory::getInstance()->getContainer()->get(ConnectionProviderInterface::class)->get()])
|
||||
->onlyMethods(['execute'])
|
||||
->getMock();
|
||||
$qbMock->method('execute')->willReturn($resultMock);
|
||||
|
||||
/** @var d3backupcodelist|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3backupcodelist::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3backupcodelist::class)
|
||||
->onlyMethods([
|
||||
'd3GetDb',
|
||||
'getQueryBuilder',
|
||||
'getBaseObject',
|
||||
'd3GetUser',
|
||||
])
|
||||
->getMock();
|
||||
$oModelMock->method('d3GetDb')->willReturn($oDbMock);
|
||||
$oModelMock->method('getQueryBuilder')->willReturn($qbMock);
|
||||
$oModelMock->method('getBaseObject')->willReturn($oBackupCodeMock);
|
||||
$oModelMock->method('d3GetUser')->willReturn($oUserMock);
|
||||
|
||||
@ -212,45 +220,48 @@ class d3backupcodelistTest extends d3TotpUnitTestCase
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
* @throws ReflectionException
|
||||
* @covers \D3\Totp\Application\Model\d3backupcodelist::verify
|
||||
*/
|
||||
public function verifyNotFoundTotp()
|
||||
{
|
||||
/** @var User|MockObject $oUserMock */
|
||||
$oUserMock = $this->getMockBuilder(User::class)
|
||||
$oUserMock = $this->d3getMockBuilder(User::class)
|
||||
->onlyMethods(['getId'])
|
||||
->getMock();
|
||||
$oUserMock->method('getId')->willReturn('foobar');
|
||||
$oUserMock->assign(['oxpasssalt' => '6162636465666768696A6B']);
|
||||
|
||||
/** @var d3backupcode|MockObject $oBackupCodeMock */
|
||||
$oBackupCodeMock = $this->getMockBuilder(d3backupcode::class)
|
||||
->onlyMethods(['delete'])
|
||||
$oBackupCodeMock = $this->d3getMockBuilder(d3backupcode::class)
|
||||
->onlyMethods(['delete', 'd3TotpGetUserObject'])
|
||||
->getMock();
|
||||
$oBackupCodeMock->expects($this->never())->method('delete')->willReturn(true);
|
||||
$oBackupCodeMock->method('d3TotpGetUserObject')->willReturn($oUserMock);
|
||||
|
||||
/** @var Database|MockObject $oDbMock */
|
||||
$oDbMock = $this->getMockBuilder(Database::class)
|
||||
->onlyMethods([
|
||||
'getOne',
|
||||
'quoteIdentifier',
|
||||
'quote',
|
||||
])
|
||||
$resultMock = $this->d3getMockBuilder(Result::class)
|
||||
->disableOriginalConstructor()
|
||||
->onlyMethods(['fetchOne'])
|
||||
->getMock();
|
||||
$oDbMock->expects($this->once())->method('getOne')->willReturn(null);
|
||||
$oDbMock->method('quoteIdentifier')->willReturn(true);
|
||||
$oDbMock->method('quote')->willReturn(true);
|
||||
$resultMock->method('fetchOne')->willReturn('');
|
||||
|
||||
$qbMock = $this->d3getMockBuilder(QueryBuilder::class)
|
||||
->setConstructorArgs([ContainerFactory::getInstance()->getContainer()->get(ConnectionProviderInterface::class)->get()])
|
||||
->onlyMethods(['execute'])
|
||||
->getMock();
|
||||
$qbMock->method('execute')->willReturn($resultMock);
|
||||
|
||||
/** @var d3backupcodelist|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3backupcodelist::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3backupcodelist::class)
|
||||
->onlyMethods([
|
||||
'd3GetDb',
|
||||
'getQueryBuilder',
|
||||
'getBaseObject',
|
||||
'd3GetUser',
|
||||
])
|
||||
->getMock();
|
||||
$oModelMock->method('d3GetDb')->willReturn($oDbMock);
|
||||
$oModelMock->method('getQueryBuilder')->willReturn($qbMock);
|
||||
$oModelMock->method('getBaseObject')->willReturn($oBackupCodeMock);
|
||||
$oModelMock->method('d3GetUser')->willReturn($oUserMock);
|
||||
|
||||
@ -264,36 +275,16 @@ class d3backupcodelistTest extends d3TotpUnitTestCase
|
||||
/**
|
||||
* @test
|
||||
* @throws ReflectionException
|
||||
* @covers \D3\Totp\Application\Model\d3backupcodelist::d3GetDb
|
||||
*/
|
||||
public function d3GetDbReturnsRightInstance()
|
||||
{
|
||||
$this->assertInstanceOf(
|
||||
Database::class,
|
||||
$this->callMethod($this->_oModel, 'd3GetDb')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @throws ReflectionException
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
* @covers \D3\Totp\Application\Model\d3backupcodelist::deleteAllFromUser
|
||||
*/
|
||||
public function deleteAllFromUserCodesFound()
|
||||
{
|
||||
/** @var Database|MockObject $oDbMock */
|
||||
$oDbMock = $this->getMockBuilder(Database::class)
|
||||
->disableOriginalConstructor()
|
||||
->onlyMethods([
|
||||
'quoteIdentifier',
|
||||
'quote',
|
||||
])
|
||||
->getMock();
|
||||
$oDbMock->method('quoteIdentifier')->willReturn(true);
|
||||
$oDbMock->method('quote')->willReturn(true);
|
||||
$qbMock = new QueryBuilder(ContainerFactory::getInstance()->getContainer()->get(ConnectionProviderInterface::class)->get());
|
||||
|
||||
/** @var d3backupcode|MockObject $oBackupCodeMock */
|
||||
$oBackupCodeMock = $this->getMockBuilder(d3backupcode::class)
|
||||
$oBackupCodeMock = $this->d3getMockBuilder(d3backupcode::class)
|
||||
->onlyMethods(['delete'])
|
||||
->getMock();
|
||||
$oBackupCodeMock->expects($this->once())->method('delete')->willReturn(true);
|
||||
@ -303,16 +294,16 @@ class d3backupcodelistTest extends d3TotpUnitTestCase
|
||||
];
|
||||
|
||||
/** @var d3backupcodelist|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3backupcodelist::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3backupcodelist::class)
|
||||
->onlyMethods([
|
||||
'getArray',
|
||||
'selectString',
|
||||
'd3GetDb',
|
||||
'getQueryBuilder',
|
||||
])
|
||||
->getMock();
|
||||
$oModelMock->expects($this->once())->method('getArray')->willReturn($aBackupCodeArray);
|
||||
$oModelMock->expects($this->once())->method('selectString')->willReturn(true);
|
||||
$oModelMock->method('d3GetDb')->willReturn($oDbMock);
|
||||
$oModelMock->method('getQueryBuilder')->willReturn($qbMock);
|
||||
|
||||
$this->_oModel = $oModelMock;
|
||||
|
||||
@ -321,24 +312,17 @@ class d3backupcodelistTest extends d3TotpUnitTestCase
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
* @throws ReflectionException
|
||||
* @covers \D3\Totp\Application\Model\d3backupcodelist::deleteAllFromUser
|
||||
*/
|
||||
public function deleteAllFromUserNoCodesFound()
|
||||
{
|
||||
/** @var Database|MockObject $oDbMock */
|
||||
$oDbMock = $this->getMockBuilder(Database::class)
|
||||
->onlyMethods([
|
||||
'quoteIdentifier',
|
||||
'quote',
|
||||
])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$oDbMock->method('quoteIdentifier')->willReturn(true);
|
||||
$oDbMock->method('quote')->willReturn(true);
|
||||
$qbMock = new QueryBuilder(ContainerFactory::getInstance()->getContainer()->get(ConnectionProviderInterface::class)->get());
|
||||
|
||||
/** @var d3backupcode|MockObject $oBackupCodeMock */
|
||||
$oBackupCodeMock = $this->getMockBuilder(d3backupcode::class)
|
||||
$oBackupCodeMock = $this->d3getMockBuilder(d3backupcode::class)
|
||||
->onlyMethods(['delete'])
|
||||
->getMock();
|
||||
$oBackupCodeMock->expects($this->never())->method('delete')->willReturn(true);
|
||||
@ -346,16 +330,16 @@ class d3backupcodelistTest extends d3TotpUnitTestCase
|
||||
$aBackupCodeArray = [];
|
||||
|
||||
/** @var d3backupcodelist|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3backupcodelist::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3backupcodelist::class)
|
||||
->onlyMethods([
|
||||
'getArray',
|
||||
'selectString',
|
||||
'd3GetDb',
|
||||
'getQueryBuilder',
|
||||
])
|
||||
->getMock();
|
||||
$oModelMock->expects($this->once())->method('getArray')->willReturn($aBackupCodeArray);
|
||||
$oModelMock->expects($this->once())->method('selectString')->willReturn(true);
|
||||
$oModelMock->method('d3GetDb')->willReturn($oDbMock);
|
||||
$oModelMock->method('getQueryBuilder')->willReturn($qbMock);
|
||||
|
||||
$this->_oModel = $oModelMock;
|
||||
|
||||
@ -364,29 +348,30 @@ class d3backupcodelistTest extends d3TotpUnitTestCase
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
* @throws ReflectionException
|
||||
* @covers \D3\Totp\Application\Model\d3backupcodelist::getAvailableCodeCount
|
||||
*/
|
||||
public function getAvailableCodeCountPass()
|
||||
{
|
||||
/** @var Database|MockObject $oDbMock */
|
||||
$oDbMock = $this->getMockBuilder(Database::class)
|
||||
->onlyMethods([
|
||||
'getOne',
|
||||
'quoteIdentifier',
|
||||
'quote',
|
||||
])
|
||||
$resultMock = $this->d3getMockBuilder(Result::class)
|
||||
->disableOriginalConstructor()
|
||||
->onlyMethods(['fetchOne'])
|
||||
->getMock();
|
||||
$oDbMock->expects($this->once())->method('getOne')->willReturn('25');
|
||||
$oDbMock->method('quoteIdentifier')->willReturn(true);
|
||||
$oDbMock->method('quote')->willReturn(true);
|
||||
$resultMock->method('fetchOne')->willReturn(25);
|
||||
|
||||
$qbMock = $this->d3getMockBuilder(QueryBuilder::class)
|
||||
->setConstructorArgs([ContainerFactory::getInstance()->getContainer()->get(ConnectionProviderInterface::class)->get()])
|
||||
->onlyMethods(['execute'])
|
||||
->getMock();
|
||||
$qbMock->method('execute')->willReturn($resultMock);
|
||||
|
||||
/** @var d3backupcodelist|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3backupcodelist::class)
|
||||
->onlyMethods(['d3GetDb'])
|
||||
$oModelMock = $this->d3getMockBuilder(d3backupcodelist::class)
|
||||
->onlyMethods(['getQueryBuilder'])
|
||||
->getMock();
|
||||
$oModelMock->method('d3GetDb')->willReturn($oDbMock);
|
||||
$oModelMock->method('getQueryBuilder')->willReturn($qbMock);
|
||||
|
||||
$this->_oModel = $oModelMock;
|
||||
|
@ -13,29 +13,34 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Totp\tests\unit\Application\Model;
|
||||
namespace D3\Totp\Tests\Unit\Application\Model;
|
||||
|
||||
use BaconQrCode\Writer;
|
||||
use D3\TestingTools\Development\CanAccessRestricted;
|
||||
use D3\Totp\Application\Factory\BaconQrCodeFactory;
|
||||
use D3\Totp\Application\Model\d3backupcode;
|
||||
use D3\Totp\Application\Model\d3backupcodelist;
|
||||
use D3\Totp\Application\Model\d3totp;
|
||||
use D3\Totp\Application\Model\Exceptions\d3totp_wrongOtpException;
|
||||
use D3\Totp\tests\unit\d3TotpUnitTestCase;
|
||||
use D3\Totp\Tests\Unit\d3TotpUnitTestCase;
|
||||
use Doctrine\DBAL\ForwardCompatibility\Result;
|
||||
use Doctrine\DBAL\Query\QueryBuilder;
|
||||
use OTPHP\TOTP;
|
||||
use OxidEsales\Eshop\Application\Model\User;
|
||||
use OxidEsales\Eshop\Core\Database\Adapter\Doctrine\Database;
|
||||
use OxidEsales\Eshop\Core\Registry;
|
||||
use OxidEsales\EshopCommunity\Internal\Container\ContainerFactory;
|
||||
use OxidEsales\EshopCommunity\Internal\Framework\Database\ConnectionProviderInterface;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
use Psr\Container\ContainerExceptionInterface;
|
||||
use Psr\Container\NotFoundExceptionInterface;
|
||||
use ReflectionException;
|
||||
use stdClass;
|
||||
|
||||
class d3totpTest extends d3TotpUnitTestCase
|
||||
{
|
||||
use CanAccessRestricted;
|
||||
|
||||
/** @var d3totp */
|
||||
protected $_oModel;
|
||||
protected d3totp $_oModel;
|
||||
|
||||
/**
|
||||
* setup basic requirements
|
||||
@ -62,7 +67,7 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
public function constructCallsInit()
|
||||
{
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['init'])
|
||||
->getMock();
|
||||
$oModelMock->expects($this->once())->method('init');
|
||||
@ -75,25 +80,32 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
/**
|
||||
* @test
|
||||
* @throws ReflectionException
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
* @covers \D3\Totp\Application\Model\d3totp::loadByUserId
|
||||
*/
|
||||
public function loadByUserIdTableNotExist()
|
||||
{
|
||||
/** @var Database|MockObject $oDbMock */
|
||||
$oDbMock = $this->getMockBuilder(Database::class)
|
||||
$resultMock = $this->d3getMockBuilder(Result::class)
|
||||
->disableOriginalConstructor()
|
||||
->onlyMethods(['getOne'])
|
||||
->onlyMethods(['fetchOne'])
|
||||
->getMock();
|
||||
$oDbMock->expects($this->once())->method('getOne')->willReturnOnConsecutiveCalls(false, true);
|
||||
$resultMock->method('fetchOne')->willReturn('');
|
||||
|
||||
$qbMock = $this->d3getMockBuilder(QueryBuilder::class)
|
||||
->setConstructorArgs([ContainerFactory::getInstance()->getContainer()->get(ConnectionProviderInterface::class)->get()])
|
||||
->onlyMethods(['execute'])
|
||||
->getMock();
|
||||
$qbMock->method('execute')->willReturn($resultMock);
|
||||
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods([
|
||||
'd3GetDb',
|
||||
'getQueryBuilder',
|
||||
'load',
|
||||
])
|
||||
->getMock();
|
||||
$oModelMock->method('d3GetDb')->willReturn($oDbMock);
|
||||
$oModelMock->method('getQueryBuilder')->willReturn($qbMock);
|
||||
$oModelMock->expects($this->never())->method('load')->willReturn(true);
|
||||
|
||||
$this->_oModel = $oModelMock;
|
||||
@ -103,29 +115,33 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
* @throws ReflectionException
|
||||
* @covers \D3\Totp\Application\Model\d3totp::loadByUserId
|
||||
*/
|
||||
public function loadByUserIdTableExist()
|
||||
{
|
||||
/** @var Database|MockObject $oDbMock */
|
||||
$oDbMock = $this->getMockBuilder(Database::class)
|
||||
$resultMock = $this->d3getMockBuilder(Result::class)
|
||||
->disableOriginalConstructor()
|
||||
->onlyMethods([
|
||||
'getOne',
|
||||
'quote',
|
||||
])->getMock();
|
||||
$oDbMock->expects($this->exactly(2))->method('getOne')->willReturnOnConsecutiveCalls(true, true);
|
||||
$oDbMock->method('quote')->willReturn(true);
|
||||
->onlyMethods(['fetchOne'])
|
||||
->getMock();
|
||||
$resultMock->method('fetchOne')->willReturn('oxid');
|
||||
|
||||
$qbMock = $this->d3getMockBuilder(QueryBuilder::class)
|
||||
->setConstructorArgs([ContainerFactory::getInstance()->getContainer()->get(ConnectionProviderInterface::class)->get()])
|
||||
->onlyMethods(['execute'])
|
||||
->getMock();
|
||||
$qbMock->method('execute')->willReturn($resultMock);
|
||||
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods([
|
||||
'd3GetDb',
|
||||
'getQueryBuilder',
|
||||
'load',
|
||||
])
|
||||
->getMock();
|
||||
$oModelMock->method('d3GetDb')->willReturn($oDbMock);
|
||||
$oModelMock->method('getQueryBuilder')->willReturn($qbMock);
|
||||
$oModelMock->expects($this->once())->method('load')->willReturn(true);
|
||||
|
||||
$this->_oModel = $oModelMock;
|
||||
@ -141,13 +157,13 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
public function getUserFromMember()
|
||||
{
|
||||
/** @var User|MockObject $oUserMock */
|
||||
$oUserMock = $this->getMockBuilder(User::class)
|
||||
$oUserMock = $this->d3getMockBuilder(User::class)
|
||||
->onlyMethods(['load'])
|
||||
->getMock();
|
||||
$oUserMock->method('load')->with('foobar')->willReturn(true);
|
||||
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods([
|
||||
'd3GetUser',
|
||||
'getFieldData',
|
||||
@ -176,13 +192,13 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
$this->setValue($this->_oModel, 'userId', null);
|
||||
|
||||
/** @var User|MockObject $oUserMock */
|
||||
$oUserMock = $this->getMockBuilder(User::class)
|
||||
$oUserMock = $this->d3getMockBuilder(User::class)
|
||||
->onlyMethods(['load'])
|
||||
->getMock();
|
||||
$oUserMock->method('load')->with('barfoo')->willReturn(true);
|
||||
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods([
|
||||
'd3GetUser',
|
||||
'getFieldData',
|
||||
@ -201,27 +217,30 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
* @throws ReflectionException
|
||||
* @covers \D3\Totp\Application\Model\d3totp::checkIfAlreadyExist
|
||||
*/
|
||||
public function checkIfAlreadyExistPass()
|
||||
{
|
||||
/** @var Database|MockObject $oDbMock */
|
||||
$oDbMock = $this->getMockBuilder(Database::class)
|
||||
->onlyMethods([
|
||||
'getOne',
|
||||
'quote',
|
||||
])
|
||||
$resultMock = $this->d3getMockBuilder(Result::class)
|
||||
->disableOriginalConstructor()
|
||||
->onlyMethods(['fetchOne'])
|
||||
->getMock();
|
||||
$oDbMock->expects($this->once())->method('getOne')->willReturn(1);
|
||||
$oDbMock->method('quote')->willReturn(true);
|
||||
$resultMock->method('fetchOne')->willReturn(2);
|
||||
|
||||
$qbMock = $this->d3getMockBuilder(QueryBuilder::class)
|
||||
->setConstructorArgs([ContainerFactory::getInstance()->getContainer()->get(ConnectionProviderInterface::class)->get()])
|
||||
->onlyMethods(['execute'])
|
||||
->getMock();
|
||||
$qbMock->method('execute')->willReturn($resultMock);
|
||||
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['d3GetDb'])
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['getQueryBuilder'])
|
||||
->getMock();
|
||||
$oModelMock->method('d3GetDb')->willReturn($oDbMock);
|
||||
$oModelMock->method('getQueryBuilder')->willReturn($qbMock);
|
||||
|
||||
$this->_oModel = $oModelMock;
|
||||
|
||||
@ -230,19 +249,6 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @throws ReflectionException
|
||||
* @covers \D3\Totp\Application\Model\d3totp::d3GetDb
|
||||
*/
|
||||
public function d3GetDbReturnsRightInstance()
|
||||
{
|
||||
$this->assertInstanceOf(
|
||||
Database::class,
|
||||
$this->callMethod($this->_oModel, 'd3GetDb')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @throws ReflectionException
|
||||
@ -266,7 +272,7 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
Registry::getConfig()->setConfigParam('blDisableTotpGlobally', false);
|
||||
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['UserUseTotp'])
|
||||
->getMock();
|
||||
$oModelMock->method('UserUseTotp')->willReturn(true);
|
||||
@ -288,7 +294,7 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
Registry::getConfig()->setConfigParam('blDisableTotpGlobally', false);
|
||||
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['UserUseTotp'])
|
||||
->getMock();
|
||||
$oModelMock->method('UserUseTotp')->willReturn(false);
|
||||
@ -310,7 +316,7 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
Registry::getConfig()->setConfigParam('blDisableTotpGlobally', true);
|
||||
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['UserUseTotp'])
|
||||
->getMock();
|
||||
$oModelMock->method('UserUseTotp')->willReturn(true);
|
||||
@ -332,7 +338,7 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
Registry::getConfig()->setConfigParam('blDisableTotpGlobally', true);
|
||||
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['UserUseTotp'])
|
||||
->getMock();
|
||||
$oModelMock->method('UserUseTotp')->willReturn(false);
|
||||
@ -352,7 +358,7 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
public function UserUseTotpPass()
|
||||
{
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['getFieldData'])
|
||||
->getMock();
|
||||
$oModelMock->method('getFieldData')->willReturnOnConsecutiveCalls(true, true);
|
||||
@ -372,7 +378,7 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
public function UserUseTotpNoTotp()
|
||||
{
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['getFieldData'])
|
||||
->getMock();
|
||||
$oModelMock->method('getFieldData')->willReturnOnConsecutiveCalls(false, true);
|
||||
@ -392,7 +398,7 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
public function UserUseTotpNoSeed()
|
||||
{
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['getFieldData'])
|
||||
->getMock();
|
||||
$oModelMock->method('getFieldData')->willReturnOnConsecutiveCalls(true, false);
|
||||
@ -412,7 +418,7 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
public function UserUseTotpNoTotpAndNoSeed()
|
||||
{
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['getFieldData'])
|
||||
->getMock();
|
||||
$oModelMock->method('getFieldData')->willReturnOnConsecutiveCalls(false, false);
|
||||
@ -432,7 +438,7 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
public function getSavedSecretExistingSeed()
|
||||
{
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods([
|
||||
'getFieldData',
|
||||
'decrypt',
|
||||
@ -457,7 +463,7 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
public function getSavedSecretNoSeed()
|
||||
{
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods([
|
||||
'getFieldData',
|
||||
'decrypt',
|
||||
@ -481,7 +487,7 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
public function getSavedSecretCantDecrypt()
|
||||
{
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods([
|
||||
'getFieldData',
|
||||
'decrypt',
|
||||
@ -504,15 +510,12 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
*/
|
||||
public function getTotpReturnsCachedObject()
|
||||
{
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$otpMock = TOTP::createFromSecret('abc');
|
||||
|
||||
$this->setValue($this->_oModel, 'totp', $oTotpMock);
|
||||
$this->setValue($this->_oModel, 'totp', $otpMock);
|
||||
|
||||
$this->assertSame(
|
||||
$oTotpMock,
|
||||
$otpMock,
|
||||
$this->callMethod($this->_oModel, 'getTotp')
|
||||
);
|
||||
}
|
||||
@ -525,13 +528,13 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
public function getTotpReturnsNewObject()
|
||||
{
|
||||
/** @var User|MockObject $oUserMock */
|
||||
$oUserMock = $this->getMockBuilder(User::class)
|
||||
$oUserMock = $this->d3getMockBuilder(User::class)
|
||||
->onlyMethods(['getFieldData'])
|
||||
->getMock();
|
||||
$oUserMock->method('getFieldData')->willReturn('username');
|
||||
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods([
|
||||
'getUser',
|
||||
'getSavedSecret',
|
||||
@ -558,7 +561,7 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
public function getTotpReturnsNewObjectNoUserGivenSeed()
|
||||
{
|
||||
/** @var User|MockObject $oUserMock */
|
||||
$oUserMock = $this->getMockBuilder(User::class)
|
||||
$oUserMock = $this->d3getMockBuilder(User::class)
|
||||
->onlyMethods(['getFieldData'])
|
||||
->getMock();
|
||||
$oUserMock->method('getFieldData')->willReturnMap(
|
||||
@ -566,7 +569,7 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
);
|
||||
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods([
|
||||
'getUser',
|
||||
'getSavedSecret',
|
||||
@ -594,18 +597,15 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
{
|
||||
BaconQrCodeFactory::renderer(200);
|
||||
|
||||
/** @var stdClass|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(stdClass::class)
|
||||
->addMethods(['getProvisioningUri'])
|
||||
->getMock();
|
||||
$oTotpMock->method('getProvisioningUri')->willReturn('uri');
|
||||
$otpMock = TOTP::createFromSecret('abc');
|
||||
$otpMock->setLabel('label');
|
||||
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['getTotp'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$oModelMock->method('getTotp')->willReturn($oTotpMock);
|
||||
$oModelMock->method('getTotp')->willReturn($otpMock);
|
||||
|
||||
$this->_oModel = $oModelMock;
|
||||
|
||||
@ -636,17 +636,13 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
*/
|
||||
public function getSecretPass()
|
||||
{
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['getSecret'])
|
||||
->getMock();
|
||||
$oTotpMock->expects($this->once())->method('getSecret')->willReturn('fixture');
|
||||
$otpMock = TOTP::createFromSecret('abc');
|
||||
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['getTotp'])
|
||||
->getMock();
|
||||
$oModelMock->method('getTotp')->willReturn($oTotpMock);
|
||||
$oModelMock->method('getTotp')->willReturn($otpMock);
|
||||
|
||||
$this->_oModel = $oModelMock;
|
||||
|
||||
@ -662,7 +658,7 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
public function saveSecretPass()
|
||||
{
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['encrypt'])
|
||||
->getMock();
|
||||
$oModelMock->method('encrypt')->willReturn('enc_secret');
|
||||
@ -683,17 +679,30 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
*/
|
||||
public function verifyPass()
|
||||
{
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['verify'])
|
||||
$otpMock = TOTP::createFromSecret('abc');
|
||||
|
||||
$userMock = oxNew(User::class);
|
||||
$userMock->setId('foo');
|
||||
$userMock->assign(['oxpasssalt' => '6162636465666768696A6B']);
|
||||
|
||||
$backupCodeMock = $this->d3getMockBuilder(d3backupcode::class)
|
||||
->onlyMethods(['d3TotpGetUserObject'])
|
||||
->getMock();
|
||||
$oTotpMock->expects($this->once())->method('verify')->willReturn(true);
|
||||
$backupCodeMock->method('d3TotpGetUserObject')->willReturn($userMock);
|
||||
|
||||
$backupCodeListMock = $this->d3getMockBuilder(d3backupcodelist::class)
|
||||
->onlyMethods(['d3GetUser', 'getBaseObject', 'verify'])
|
||||
->getMock();
|
||||
$backupCodeListMock->method('d3GetUser')->willReturn($userMock);
|
||||
$backupCodeListMock->method('getBaseObject')->willReturn($backupCodeMock);
|
||||
$backupCodeListMock->method('verify')->willReturn(true);
|
||||
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['getTotp'])
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['getTotp', 'd3GetBackupCodeListObject'])
|
||||
->getMock();
|
||||
$oModelMock->method('getTotp')->willReturn($oTotpMock);
|
||||
$oModelMock->method('getTotp')->willReturn($otpMock);
|
||||
$oModelMock->method('d3GetBackupCodeListObject')->willReturn($backupCodeListMock);
|
||||
|
||||
$this->_oModel = $oModelMock;
|
||||
|
||||
@ -710,25 +719,21 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
public function verifyBackupCodePass()
|
||||
{
|
||||
/** @var d3backupcodelist|MockObject $oBackupCodeListMock */
|
||||
$oBackupCodeListMock = $this->getMockBuilder(d3backupcodelist::class)
|
||||
$oBackupCodeListMock = $this->d3getMockBuilder(d3backupcodelist::class)
|
||||
->onlyMethods(['verify'])
|
||||
->getMock();
|
||||
$oBackupCodeListMock->expects($this->once())->method('verify')->willReturn(true);
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['verify'])
|
||||
->getMock();
|
||||
$oTotpMock->expects($this->once())->method('verify')->willReturn(false);
|
||||
$otpMock = TOTP::createFromSecret('abc');
|
||||
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods([
|
||||
'getTotp',
|
||||
'd3GetBackupCodeListObject',
|
||||
])
|
||||
->getMock();
|
||||
$oModelMock->method('getTotp')->willReturn($oTotpMock);
|
||||
$oModelMock->method('getTotp')->willReturn($otpMock);
|
||||
$oModelMock->method('d3GetBackupCodeListObject')->willReturn($oBackupCodeListMock);
|
||||
|
||||
$this->_oModel = $oModelMock;
|
||||
@ -748,25 +753,21 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
$this->expectException(d3totp_wrongOtpException::class);
|
||||
|
||||
/** @var d3backupcodelist|MockObject $oBackupCodeListMock */
|
||||
$oBackupCodeListMock = $this->getMockBuilder(d3backupcodelist::class)
|
||||
$oBackupCodeListMock = $this->d3getMockBuilder(d3backupcodelist::class)
|
||||
->onlyMethods(['verify'])
|
||||
->getMock();
|
||||
$oBackupCodeListMock->expects($this->once())->method('verify')->willReturn(false);
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['verify'])
|
||||
->getMock();
|
||||
$oTotpMock->expects($this->once())->method('verify')->willReturn(false);
|
||||
$otpMock = TOTP::createFromSecret('abc');
|
||||
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods([
|
||||
'getTotp',
|
||||
'd3GetBackupCodeListObject',
|
||||
])
|
||||
->getMock();
|
||||
$oModelMock->method('getTotp')->willReturn($oTotpMock);
|
||||
$oModelMock->method('getTotp')->willReturn($otpMock);
|
||||
$oModelMock->method('d3GetBackupCodeListObject')->willReturn($oBackupCodeListMock);
|
||||
|
||||
$this->_oModel = $oModelMock;
|
||||
@ -784,25 +785,21 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
$this->expectException(d3totp_wrongOtpException::class);
|
||||
|
||||
/** @var d3backupcodelist|MockObject $oBackupCodeListMock */
|
||||
$oBackupCodeListMock = $this->getMockBuilder(d3backupcodelist::class)
|
||||
$oBackupCodeListMock = $this->d3getMockBuilder(d3backupcodelist::class)
|
||||
->onlyMethods(['verify'])
|
||||
->getMock();
|
||||
$oBackupCodeListMock->expects($this->never())->method('verify')->willReturn(false);
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['verify'])
|
||||
->getMock();
|
||||
$oTotpMock->expects($this->once())->method('verify')->willReturn(false);
|
||||
$otpMock = TOTP::createFromSecret('abc');
|
||||
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods([
|
||||
'getTotp',
|
||||
'd3GetBackupCodeListObject',
|
||||
])
|
||||
->getMock();
|
||||
$oModelMock->method('getTotp')->willReturn($oTotpMock);
|
||||
$oModelMock->method('getTotp')->willReturn($otpMock);
|
||||
$oModelMock->method('d3GetBackupCodeListObject')->willReturn($oBackupCodeListMock);
|
||||
|
||||
$this->_oModel = $oModelMock;
|
||||
@ -863,7 +860,7 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
public function decryptFailed()
|
||||
{
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['d3Base64_decode'])
|
||||
->getMock();
|
||||
$oModelMock->method('d3Base64_decode')->willReturn(
|
||||
@ -902,22 +899,20 @@ class d3totpTest extends d3TotpUnitTestCase
|
||||
public function deletePass()
|
||||
{
|
||||
/** @var d3backupcodelist|MockObject $oBackupCodeListMock */
|
||||
$oBackupCodeListMock = $this->getMockBuilder(d3backupcodelist::class)
|
||||
$oBackupCodeListMock = $this->d3getMockBuilder(d3backupcodelist::class)
|
||||
->onlyMethods(['deleteAllFromUser'])
|
||||
->getMock();
|
||||
$oBackupCodeListMock->expects($this->once())->method('deleteAllFromUser')->willReturn(true);
|
||||
$oBackupCodeListMock->expects($this->once())->method('deleteAllFromUser');
|
||||
|
||||
/** @var d3totp|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(d3totp::class)
|
||||
$oModelMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods([
|
||||
'd3GetBackupCodeListObject',
|
||||
'getFieldData',
|
||||
'canDelete',
|
||||
])
|
||||
->getMock();
|
||||
$oModelMock->method('d3GetBackupCodeListObject')->willReturn($oBackupCodeListMock);
|
||||
$oModelMock->method('getFieldData')->willReturn('newId');
|
||||
$oModelMock->method('canDelete')->willReturn(false);
|
||||
|
||||
$this->_oModel = $oModelMock;
|
||||
|
@ -13,14 +13,14 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Totp\tests\unit\Modules\Application\Component;
|
||||
namespace D3\Totp\Tests\Unit\Modules\Application\Component;
|
||||
|
||||
use D3\TestingTools\Development\CanAccessRestricted;
|
||||
use D3\Totp\Application\Model\d3totp;
|
||||
use D3\Totp\Application\Model\d3totp_conf;
|
||||
use D3\Totp\Application\Model\Exceptions\d3totp_wrongOtpException;
|
||||
use D3\Totp\Modules\Application\Component\d3_totp_UserComponent;
|
||||
use D3\Totp\tests\unit\d3TotpUnitTestCase;
|
||||
use D3\Totp\Tests\Unit\d3TotpUnitTestCase;
|
||||
use InvalidArgumentException;
|
||||
use OxidEsales\Eshop\Application\Component\UserComponent;
|
||||
use OxidEsales\Eshop\Application\Model\User;
|
||||
@ -39,33 +39,33 @@ class d3_totp_UserComponentTest extends d3TotpUnitTestCase
|
||||
/**
|
||||
* @test
|
||||
* @throws ReflectionException
|
||||
* @covers \D3\Totp\Modules\Application\Component\d3_totp_UserComponent::_afterLogin
|
||||
* @covers \D3\Totp\Modules\Application\Component\d3_totp_UserComponent::afterLogin
|
||||
*/
|
||||
public function afterLoginFailsIfNoUserLoggedIn()
|
||||
{
|
||||
$oUser = false;
|
||||
|
||||
/** @var Utils|MockObject $oUtilsMock */
|
||||
$oUtilsMock = $this->getMockBuilder(Utils::class)
|
||||
$oUtilsMock = $this->d3getMockBuilder(Utils::class)
|
||||
->onlyMethods(['redirect'])
|
||||
->getMock();
|
||||
$oUtilsMock->expects($this->never())->method('redirect')->willReturn(true);
|
||||
|
||||
/** @var Session|MockObject $oSessionMock */
|
||||
$oSessionMock = $this->getMockBuilder(Session::class)
|
||||
$oSessionMock = $this->d3getMockBuilder(Session::class)
|
||||
->onlyMethods(['setVariable'])
|
||||
->getMock();
|
||||
$oSessionMock->expects($this->never())->method('setVariable');
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['isActive'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$oTotpMock->expects($this->never())->method('isActive')->willReturn(false);
|
||||
|
||||
/** @var UserComponent|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(UserComponent::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(UserComponent::class)
|
||||
->onlyMethods([
|
||||
'd3GetTotpObject',
|
||||
'd3TotpGetSession',
|
||||
@ -79,19 +79,19 @@ class d3_totp_UserComponentTest extends d3TotpUnitTestCase
|
||||
|
||||
$this->expectException(InvalidArgumentException::class);
|
||||
|
||||
$this->callMethod($oControllerMock, '_afterLogin', [$oUser]);
|
||||
$this->callMethod($oControllerMock, 'afterLogin', [$oUser]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @throws ReflectionException
|
||||
* @covers \D3\Totp\Modules\Application\Component\d3_totp_UserComponent::_afterLogin
|
||||
* @covers \D3\Totp\Modules\Application\Component\d3_totp_UserComponent::afterLogin
|
||||
* @dataProvider afterLoginFailTotpNotActiveOrAlreadyCheckedDataProvider
|
||||
*/
|
||||
public function afterLoginFailTotpNotActiveOrAlreadyChecked($isActive, $checked)
|
||||
{
|
||||
/** @var User|MockObject $oUserMock */
|
||||
$oUserMock = $this->getMockBuilder(User::class)
|
||||
$oUserMock = $this->d3getMockBuilder(User::class)
|
||||
->onlyMethods([
|
||||
'logout',
|
||||
'getId',
|
||||
@ -101,20 +101,20 @@ class d3_totp_UserComponentTest extends d3TotpUnitTestCase
|
||||
$oUserMock->method('getId')->willReturn('foo');
|
||||
|
||||
/** @var Utils|MockObject $oUtilsMock */
|
||||
$oUtilsMock = $this->getMockBuilder(Utils::class)
|
||||
$oUtilsMock = $this->d3getMockBuilder(Utils::class)
|
||||
->onlyMethods(['redirect'])
|
||||
->getMock();
|
||||
$oUtilsMock->expects($this->never())->method('redirect')->willReturn(true);
|
||||
|
||||
/** @var Session|MockObject $oSessionMock */
|
||||
$oSessionMock = $this->getMockBuilder(Session::class)
|
||||
$oSessionMock = $this->d3getMockBuilder(Session::class)
|
||||
->onlyMethods(['setVariable', 'getVariable'])
|
||||
->getMock();
|
||||
$oSessionMock->expects($this->never())->method('setVariable');
|
||||
$oSessionMock->method('getVariable')->willReturn($checked);
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods([
|
||||
'isActive',
|
||||
'loadByUserId',
|
||||
@ -122,10 +122,10 @@ class d3_totp_UserComponentTest extends d3TotpUnitTestCase
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$oTotpMock->expects($this->once())->method('isActive')->willReturn($isActive);
|
||||
$oTotpMock->method('loadByUserId')->willReturn(true);
|
||||
$oTotpMock->method('loadByUserId');
|
||||
|
||||
/** @var UserComponent|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(UserComponent::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(UserComponent::class)
|
||||
->onlyMethods([
|
||||
'd3GetTotpObject',
|
||||
'd3TotpGetSession',
|
||||
@ -136,7 +136,7 @@ class d3_totp_UserComponentTest extends d3TotpUnitTestCase
|
||||
$oControllerMock->method('d3TotpGetSession')->willReturn($oSessionMock);
|
||||
$oControllerMock->method('d3TotpGetUtils')->willReturn($oUtilsMock);
|
||||
|
||||
$this->callMethod($oControllerMock, '_afterLogin', [$oUserMock]);
|
||||
$this->callMethod($oControllerMock, 'afterLogin', [$oUserMock]);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -154,12 +154,12 @@ class d3_totp_UserComponentTest extends d3TotpUnitTestCase
|
||||
/**
|
||||
* @test
|
||||
* @throws ReflectionException
|
||||
* @covers \D3\Totp\Modules\Application\Component\d3_totp_UserComponent::_afterLogin
|
||||
* @covers \D3\Totp\Modules\Application\Component\d3_totp_UserComponent::afterLogin
|
||||
*/
|
||||
public function afterLoginPass()
|
||||
{
|
||||
/** @var User|MockObject $oUserMock */
|
||||
$oUserMock = $this->getMockBuilder(User::class)
|
||||
$oUserMock = $this->d3getMockBuilder(User::class)
|
||||
->onlyMethods([
|
||||
'logout',
|
||||
'getId',
|
||||
@ -169,26 +169,26 @@ class d3_totp_UserComponentTest extends d3TotpUnitTestCase
|
||||
$oUserMock->method('getId')->willReturn('foo');
|
||||
|
||||
/** @var Utils|MockObject $oUtilsMock */
|
||||
$oUtilsMock = $this->getMockBuilder(Utils::class)
|
||||
$oUtilsMock = $this->d3getMockBuilder(Utils::class)
|
||||
->onlyMethods(['redirect'])
|
||||
->getMock();
|
||||
$oUtilsMock->expects($this->once())->method('redirect')->willReturn(true);
|
||||
|
||||
/** @var Session|MockObject $oSessionMock */
|
||||
$oSessionMock = $this->getMockBuilder(Session::class)
|
||||
$oSessionMock = $this->d3getMockBuilder(Session::class)
|
||||
->onlyMethods(['setVariable', 'getVariable'])
|
||||
->getMock();
|
||||
$oSessionMock->expects($this->atLeast(3))->method('setVariable');
|
||||
$oSessionMock->method('getVariable')->willReturn(null);
|
||||
|
||||
/** @var BaseController|MockObject $oParentMock */
|
||||
$oParentMock = $this->getMockBuilder(BaseController::class)
|
||||
$oParentMock = $this->d3getMockBuilder(BaseController::class)
|
||||
->onlyMethods(['getClassKey'])
|
||||
->getMock();
|
||||
$oParentMock->method('getClassKey')->willReturn('foo');
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods([
|
||||
'isActive',
|
||||
'loadByUserId',
|
||||
@ -196,10 +196,10 @@ class d3_totp_UserComponentTest extends d3TotpUnitTestCase
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$oTotpMock->expects($this->once())->method('isActive')->willReturn(true);
|
||||
$oTotpMock->method('loadByUserId')->willReturn(true);
|
||||
$oTotpMock->method('loadByUserId');
|
||||
|
||||
/** @var UserComponent|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(UserComponent::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(UserComponent::class)
|
||||
->onlyMethods([
|
||||
'd3GetTotpObject',
|
||||
'd3TotpGetSession',
|
||||
@ -212,7 +212,7 @@ class d3_totp_UserComponentTest extends d3TotpUnitTestCase
|
||||
$oControllerMock->method('d3TotpGetSession')->willReturn($oSessionMock);
|
||||
$oControllerMock->method('d3TotpGetUtils')->willReturn($oUtilsMock);
|
||||
|
||||
$this->callMethod($oControllerMock, '_afterLogin', [$oUserMock]);
|
||||
$this->callMethod($oControllerMock, 'afterLogin', [$oUserMock]);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -239,20 +239,20 @@ class d3_totp_UserComponentTest extends d3TotpUnitTestCase
|
||||
public function checkTotploginNoTotpLogin()
|
||||
{
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['loadByUserId'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$oTotpMock->method('loadByUserId')->willReturn(true);
|
||||
$oTotpMock->method('loadByUserId');
|
||||
|
||||
/** @var Session|MockObject $oSessionMock */
|
||||
$oSessionMock = $this->getMockBuilder(Session::class)
|
||||
$oSessionMock = $this->d3getMockBuilder(Session::class)
|
||||
->onlyMethods(['setVariable'])
|
||||
->getMock();
|
||||
$oSessionMock->expects($this->never())->method('setVariable');
|
||||
|
||||
/** @var UserComponent|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(UserComponent::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(UserComponent::class)
|
||||
->onlyMethods([
|
||||
'd3TotpIsNoTotpOrNoLogin',
|
||||
'd3TotpHasValidTotp',
|
||||
@ -265,6 +265,8 @@ class d3_totp_UserComponentTest extends d3TotpUnitTestCase
|
||||
$oControllerMock->method('d3GetTotpObject')->willReturn($oTotpMock);
|
||||
$oControllerMock->method('d3TotpGetSession')->willReturn($oSessionMock);
|
||||
|
||||
Registry::getSession()->setVariable(d3totp_conf::SESSION_CURRENTUSER, 'oxid');
|
||||
|
||||
$this->assertSame(
|
||||
'd3totplogin',
|
||||
$this->callMethod($oControllerMock, 'd3TotpCheckTotpLogin')
|
||||
@ -279,31 +281,31 @@ class d3_totp_UserComponentTest extends d3TotpUnitTestCase
|
||||
public function checkTotploginUnvalidTotp()
|
||||
{
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['loadByUserId'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$oTotpMock->method('loadByUserId')->willReturn(true);
|
||||
$oTotpMock->method('loadByUserId');
|
||||
|
||||
/** @var Session|MockObject $oSessionMock */
|
||||
$oSessionMock = $this->getMockBuilder(Session::class)
|
||||
$oSessionMock = $this->d3getMockBuilder(Session::class)
|
||||
->onlyMethods(['setVariable'])
|
||||
->getMock();
|
||||
$oSessionMock->expects($this->never())->method('setVariable');
|
||||
|
||||
/** @var d3totp_wrongOtpException|MockObject $oTotpExceptionMock */
|
||||
$oTotpExceptionMock = $this->getMockBuilder(d3totp_wrongOtpException::class)
|
||||
$oTotpExceptionMock = $this->d3getMockBuilder(d3totp_wrongOtpException::class)
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
/** @var UtilsView|MockObject $oUtilsViewMock */
|
||||
$oUtilsViewMock = $this->getMockBuilder(UtilsView::class)
|
||||
$oUtilsViewMock = $this->d3getMockBuilder(UtilsView::class)
|
||||
->onlyMethods(['addErrorToDisplay'])
|
||||
->getMock();
|
||||
$oUtilsViewMock->expects($this->atLeast(1))->method('addErrorToDisplay')->willReturn(true);
|
||||
|
||||
/** @var UserComponent|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(UserComponent::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(UserComponent::class)
|
||||
->onlyMethods([
|
||||
'd3TotpIsNoTotpOrNoLogin',
|
||||
'd3TotpHasValidTotp',
|
||||
@ -318,6 +320,8 @@ class d3_totp_UserComponentTest extends d3TotpUnitTestCase
|
||||
$oControllerMock->method('d3GetTotpObject')->willReturn($oTotpMock);
|
||||
$oControllerMock->method('d3TotpGetSession')->willReturn($oSessionMock);
|
||||
|
||||
Registry::getSession()->setVariable(d3totp_conf::SESSION_CURRENTUSER, 'oxid');
|
||||
|
||||
$this->assertSame(
|
||||
'd3totplogin',
|
||||
$this->callMethod($oControllerMock, 'd3TotpCheckTotpLogin')
|
||||
@ -332,26 +336,26 @@ class d3_totp_UserComponentTest extends d3TotpUnitTestCase
|
||||
public function checkTotploginValidTotp()
|
||||
{
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['loadByUserId'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$oTotpMock->method('loadByUserId')->willReturn(true);
|
||||
$oTotpMock->method('loadByUserId');
|
||||
|
||||
/** @var Session|MockObject $oSessionMock */
|
||||
$oSessionMock = $this->getMockBuilder(Session::class)
|
||||
$oSessionMock = $this->d3getMockBuilder(Session::class)
|
||||
->onlyMethods(['setVariable'])
|
||||
->getMock();
|
||||
$oSessionMock->expects($this->atLeast(2))->method('setVariable');
|
||||
|
||||
/** @var UtilsView|MockObject $oUtilsViewMock */
|
||||
$oUtilsViewMock = $this->getMockBuilder(UtilsView::class)
|
||||
$oUtilsViewMock = $this->d3getMockBuilder(UtilsView::class)
|
||||
->onlyMethods(['addErrorToDisplay'])
|
||||
->getMock();
|
||||
$oUtilsViewMock->expects($this->never())->method('addErrorToDisplay')->willReturn(true);
|
||||
|
||||
/** @var UserComponent|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(UserComponent::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(UserComponent::class)
|
||||
->onlyMethods([
|
||||
'd3TotpIsNoTotpOrNoLogin',
|
||||
'd3TotpHasValidTotp',
|
||||
@ -370,6 +374,8 @@ class d3_totp_UserComponentTest extends d3TotpUnitTestCase
|
||||
$this->identicalTo(USER_LOGIN_SUCCESS)
|
||||
);
|
||||
|
||||
Registry::getSession()->setVariable(d3totp_conf::SESSION_CURRENTUSER, 'oxid');
|
||||
|
||||
$this->assertFalse(
|
||||
$this->callMethod($oControllerMock, 'd3TotpCheckTotpLogin')
|
||||
);
|
||||
@ -415,10 +421,10 @@ class d3_totp_UserComponentTest extends d3TotpUnitTestCase
|
||||
public function canCancelTotpLogin()
|
||||
{
|
||||
/** @var UserComponent|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(UserComponent::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(UserComponent::class)
|
||||
->onlyMethods(['d3TotpClearSessionVariables'])
|
||||
->getMock();
|
||||
$oControllerMock->expects($this->once())->method('d3TotpClearSessionVariables')->willReturn(false);
|
||||
$oControllerMock->expects($this->once())->method('d3TotpClearSessionVariables');
|
||||
|
||||
$this->callMethod($oControllerMock, 'd3TotpCancelTotpLogin');
|
||||
}
|
||||
@ -433,7 +439,7 @@ class d3_totp_UserComponentTest extends d3TotpUnitTestCase
|
||||
Registry::getSession()->setVariable(d3totp_conf::SESSION_CURRENTUSER, false);
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['isActive'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
@ -457,7 +463,7 @@ class d3_totp_UserComponentTest extends d3TotpUnitTestCase
|
||||
Registry::getSession()->setVariable(d3totp_conf::SESSION_CURRENTUSER, true);
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['isActive'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
@ -481,7 +487,7 @@ class d3_totp_UserComponentTest extends d3TotpUnitTestCase
|
||||
Registry::getSession()->setVariable(d3totp_conf::SESSION_CURRENTUSER, true);
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['isActive'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
@ -505,7 +511,7 @@ class d3_totp_UserComponentTest extends d3TotpUnitTestCase
|
||||
Registry::getSession()->setVariable(d3totp_conf::SESSION_AUTH, true);
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['verify'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
@ -529,7 +535,7 @@ class d3_totp_UserComponentTest extends d3TotpUnitTestCase
|
||||
Registry::getSession()->setVariable(d3totp_conf::SESSION_AUTH, false);
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['verify'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
@ -553,7 +559,7 @@ class d3_totp_UserComponentTest extends d3TotpUnitTestCase
|
||||
Registry::getSession()->setVariable(d3totp_conf::SESSION_AUTH, false);
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['verify'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
@ -563,7 +569,7 @@ class d3_totp_UserComponentTest extends d3TotpUnitTestCase
|
||||
$oController = oxNew(UserComponent::class);
|
||||
|
||||
$this->expectException(d3totp_wrongOtpException::class);
|
||||
$this->callMethod($oController, 'd3TotpHasValidTotp', [null, $oTotpMock]);
|
||||
$this->callMethod($oController, 'd3TotpHasValidTotp', ['', $oTotpMock]);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -576,7 +582,7 @@ class d3_totp_UserComponentTest extends d3TotpUnitTestCase
|
||||
Registry::getSession()->setVariable(d3totp_conf::SESSION_AUTH, false);
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['verify'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
@ -598,13 +604,13 @@ class d3_totp_UserComponentTest extends d3TotpUnitTestCase
|
||||
public function d3TotpClearSessionVariablesPass()
|
||||
{
|
||||
/** @var Session|MockObject $oSessionMock */
|
||||
$oSessionMock = $this->getMockBuilder(Session::class)
|
||||
$oSessionMock = $this->d3getMockBuilder(Session::class)
|
||||
->onlyMethods(['deleteVariable'])
|
||||
->getMock();
|
||||
$oSessionMock->expects($this->atLeast(3))->method('deleteVariable')->willReturn(false);
|
||||
|
||||
/** @var UserComponent|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(UserComponent::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(UserComponent::class)
|
||||
->onlyMethods(['d3TotpGetSession'])
|
||||
->getMock();
|
||||
$oControllerMock->method('d3TotpGetSession')->willReturn($oSessionMock);
|
@ -13,14 +13,14 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Totp\tests\unit\Modules\Application\Controller\Admin;
|
||||
namespace D3\Totp\Tests\Unit\Modules\Application\Controller\Admin;
|
||||
|
||||
use D3\TestingTools\Development\CanAccessRestricted;
|
||||
use D3\Totp\Application\Model\d3totp;
|
||||
use D3\Totp\Application\Model\d3totp_conf;
|
||||
use D3\Totp\Modules\Application\Controller\Admin\d3_totp_LoginController;
|
||||
use D3\Totp\Modules\Application\Model\d3_totp_user;
|
||||
use D3\Totp\tests\unit\d3TotpUnitTestCase;
|
||||
use D3\Totp\Tests\Unit\d3TotpUnitTestCase;
|
||||
use OxidEsales\Eshop\Application\Controller\Admin\LoginController;
|
||||
use OxidEsales\Eshop\Application\Model\User;
|
||||
use OxidEsales\Eshop\Core\Language;
|
||||
@ -89,7 +89,7 @@ class d3_totp_LoginControllerTest extends d3TotpUnitTestCase
|
||||
$fixture = 'returnString';
|
||||
|
||||
/** @var d3_totp_LoginController|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3_totp_LoginController::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3_totp_LoginController::class)
|
||||
->onlyMethods(['d3CallMockableFunction'])
|
||||
->getMock();
|
||||
$oControllerMock->method('d3CallMockableFunction')->willReturn($fixture);
|
||||
@ -120,7 +120,7 @@ class d3_totp_LoginControllerTest extends d3TotpUnitTestCase
|
||||
public function canRunTotpAfterLogin($selectedProfile, $setCookie, $expectedCookie, $setSession)
|
||||
{
|
||||
/** @var Session|MockObject $sessionMock */
|
||||
$sessionMock = $this->getMockBuilder(Session::class)
|
||||
$sessionMock = $this->d3getMockBuilder(Session::class)
|
||||
->onlyMethods(['getVariable', 'setVariable'])
|
||||
->getMock();
|
||||
$variableMap = [
|
||||
@ -135,7 +135,7 @@ class d3_totp_LoginControllerTest extends d3TotpUnitTestCase
|
||||
$sessionMock->expects($setSession)->method('setVariable')->willReturnMap($variableMap);
|
||||
|
||||
/** @var UtilsServer|MockObject $utilsServerMock */
|
||||
$utilsServerMock = $this->getMockBuilder(UtilsServer::class)
|
||||
$utilsServerMock = $this->d3getMockBuilder(UtilsServer::class)
|
||||
->onlyMethods(['setOxCookie'])
|
||||
->getMock();
|
||||
$utilsServerMock->expects($setCookie)->method('setOxCookie')->with(
|
||||
@ -144,12 +144,12 @@ class d3_totp_LoginControllerTest extends d3TotpUnitTestCase
|
||||
);
|
||||
|
||||
/** @var d3_totp_LoginController|MockObject $sut */
|
||||
$sut = $this->getMockBuilder(LoginController::class)
|
||||
$sut = $this->d3getMockBuilder(LoginController::class)
|
||||
->onlyMethods(['d3TotpGetUtilsServer', 'd3TotpGetSession', 'd3totpAfterLoginSetLanguage'])
|
||||
->getMock();
|
||||
$sut->method('d3TotpGetUtilsServer')->willReturn($utilsServerMock);
|
||||
$sut->method('d3TotpGetSession')->willReturn($sessionMock);
|
||||
$sut->expects($this->once())->method('d3totpAfterLoginSetLanguage')->willReturn($sessionMock);
|
||||
$sut->expects($this->once())->method('d3totpAfterLoginSetLanguage');
|
||||
|
||||
$this->callMethod(
|
||||
$sut,
|
||||
@ -178,25 +178,25 @@ class d3_totp_LoginControllerTest extends d3TotpUnitTestCase
|
||||
public function canRunTotpAfterLoginSetLanguage($languageId)
|
||||
{
|
||||
/** @var Session|MockObject $sessionMock */
|
||||
$sessionMock = $this->getMockBuilder(Session::class)
|
||||
$sessionMock = $this->d3getMockBuilder(Session::class)
|
||||
->onlyMethods(['getVariable'])
|
||||
->getMock();
|
||||
$sessionMock->method('getVariable')->willReturn($languageId);
|
||||
|
||||
/** @var UtilsServer|MockObject $utilsServerMock */
|
||||
$utilsServerMock = $this->getMockBuilder(UtilsServer::class)
|
||||
$utilsServerMock = $this->d3getMockBuilder(UtilsServer::class)
|
||||
->onlyMethods(['setOxCookie'])
|
||||
->getMock();
|
||||
$utilsServerMock->expects($this->once())->method('setOxCookie');
|
||||
|
||||
/** @var Language|MockObject $langMock */
|
||||
$langMock = $this->getMockBuilder(Language::class)
|
||||
$langMock = $this->d3getMockBuilder(Language::class)
|
||||
->onlyMethods(['setTplLanguage'])
|
||||
->getMock();
|
||||
$langMock->expects($this->once())->method('setTplLanguage');
|
||||
|
||||
/** @var d3_totp_LoginController|MockObject $sut */
|
||||
$sut = $this->getMockBuilder(LoginController::class)
|
||||
$sut = $this->d3getMockBuilder(LoginController::class)
|
||||
->onlyMethods(['d3TotpGetUtilsServer', 'd3TotpGetSession', 'd3TotpGetLangObject'])
|
||||
->getMock();
|
||||
$sut->method('d3TotpGetUtilsServer')->willReturn($utilsServerMock);
|
||||
@ -233,20 +233,20 @@ class d3_totp_LoginControllerTest extends d3TotpUnitTestCase
|
||||
public function d3TotpLoginMissingTest($totpActive, $loggedin, $expected)
|
||||
{
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->disableOriginalConstructor()
|
||||
->onlyMethods(['isActive'])
|
||||
->getMock();
|
||||
$oTotpMock->method('isActive')->willReturn($totpActive);
|
||||
|
||||
/** @var Session|MockObject $oSessionMock */
|
||||
$oSessionMock = $this->getMockBuilder(Session::class)
|
||||
$oSessionMock = $this->d3getMockBuilder(Session::class)
|
||||
->onlyMethods(['getVariable'])
|
||||
->getMock();
|
||||
$oSessionMock->method('getVariable')->with(d3totp_conf::SESSION_ADMIN_AUTH)->willReturn($loggedin);
|
||||
|
||||
/** @var d3_totp_LoginController|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder(d3_totp_LoginController::class)
|
||||
$oControllerMock = $this->d3getMockBuilder(d3_totp_LoginController::class)
|
||||
->onlyMethods([
|
||||
'd3TotpGetSession',
|
||||
])
|
@ -13,11 +13,11 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Totp\tests\unit\Modules\Application\Controller;
|
||||
namespace D3\Totp\Tests\Unit\Modules\Application\Controller;
|
||||
|
||||
use D3\Totp\Modules\Application\Controller\d3_totp_OrderController;
|
||||
use D3\Totp\Modules\Application\Controller\d3_totp_OrderController_parent;
|
||||
use D3\Totp\tests\unit\d3TotpUnitTestCase;
|
||||
use D3\Totp\Tests\Unit\d3TotpUnitTestCase;
|
||||
use OxidEsales\Eshop\Application\Controller\OrderController;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
|
@ -13,10 +13,10 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Totp\tests\unit\Modules\Application\Controller;
|
||||
namespace D3\Totp\Tests\Unit\Modules\Application\Controller;
|
||||
|
||||
use D3\Totp\Modules\Application\Controller\d3_totp_PaymentController;
|
||||
use D3\Totp\tests\unit\d3TotpUnitTestCase;
|
||||
use D3\Totp\Tests\Unit\d3TotpUnitTestCase;
|
||||
use OxidEsales\Eshop\Application\Controller\PaymentController;
|
||||
|
||||
class d3_totp_PaymentControllerTest extends d3TotpUnitTestCase
|
@ -13,10 +13,10 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Totp\tests\unit\Modules\Application\Controller;
|
||||
namespace D3\Totp\Tests\Unit\Modules\Application\Controller;
|
||||
|
||||
use D3\Totp\Modules\Application\Controller\d3_totp_UserController;
|
||||
use D3\Totp\tests\unit\d3TotpUnitTestCase;
|
||||
use D3\Totp\Tests\Unit\d3TotpUnitTestCase;
|
||||
use OxidEsales\Eshop\Application\Controller\UserController;
|
||||
|
||||
class d3_totp_UserControllerTest extends d3TotpUnitTestCase
|
@ -13,7 +13,7 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Totp\tests\unit\Modules\Application\Controller;
|
||||
namespace D3\Totp\Tests\Unit\Modules\Application\Controller;
|
||||
|
||||
use D3\TestingTools\Development\CanAccessRestricted;
|
||||
use D3\Totp\Application\Model\d3totp;
|
||||
@ -29,20 +29,24 @@ trait d3_totp_getUserTestTrait
|
||||
{
|
||||
use CanAccessRestricted;
|
||||
|
||||
protected $userFixtureId = 'userIdFixture1';
|
||||
protected string $userFixtureId = 'userIdFixture1';
|
||||
|
||||
/** @var User */
|
||||
protected $userFixture;
|
||||
protected User $userFixture;
|
||||
|
||||
public function setUp(): void
|
||||
{
|
||||
$this->userFixture = oxNew(User::class);
|
||||
$this->userFixture->setId($this->userFixtureId);
|
||||
$this->userFixture->assign(['oxlname' => __METHOD__]);
|
||||
$this->userFixture->assign(['oxlname' => __METHOD__, 'oxusername' => __METHOD__, 'oxpassword' => __METHOD__]);
|
||||
$this->userFixture->save();
|
||||
$this->userFixture->load($this->userFixtureId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function tearDown(): void
|
||||
{
|
||||
$this->userFixture->delete($this->userFixtureId);
|
||||
@ -55,13 +59,14 @@ trait d3_totp_getUserTestTrait
|
||||
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_PaymentController::getUser
|
||||
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_UserController::getUser
|
||||
*/
|
||||
public function getUserHasNoUser()
|
||||
public function getUserHasNoUser(): void
|
||||
{
|
||||
/** @var d3_totp_orderController|d3_totp_UserController|d3_totp_PaymentController|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder($this->sControllerClass)
|
||||
->onlyMethods(['d3GetTotpObject'])
|
||||
$oControllerMock = $this->d3getMockBuilder($this->sControllerClass)
|
||||
->onlyMethods(['d3GetTotpObject', 'd3CallMockableFunction'])
|
||||
->getMock();
|
||||
$oControllerMock->expects($this->never())->method('d3GetTotpObject');
|
||||
$oControllerMock->method('d3CallMockableFunction')->willReturn(false);
|
||||
|
||||
$this->assertFalse(
|
||||
$this->callMethod($oControllerMock, 'getUser')
|
||||
@ -75,16 +80,16 @@ trait d3_totp_getUserTestTrait
|
||||
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_PaymentController::getUser
|
||||
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_UserController::getUser
|
||||
*/
|
||||
public function getUserTotpNotActive()
|
||||
public function getUserTotpNotActive(): void
|
||||
{
|
||||
/** @var Session|MockObject $oSessionMock */
|
||||
$oSessionMock = $this->getMockBuilder(Session::class)
|
||||
$oSessionMock = $this->d3getMockBuilder(Session::class)
|
||||
->onlyMethods(['getVariable'])
|
||||
->getMock();
|
||||
$oSessionMock->method('getVariable')->willReturn(true);
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->disableOriginalConstructor()
|
||||
->onlyMethods([
|
||||
'isActive',
|
||||
@ -92,10 +97,10 @@ trait d3_totp_getUserTestTrait
|
||||
])
|
||||
->getMock();
|
||||
$oTotpMock->method('isActive')->willReturn(false);
|
||||
$oTotpMock->method('loadByUserId')->willReturn(true);
|
||||
$oTotpMock->method('loadByUserId');
|
||||
|
||||
/** @var d3_totp_orderController|d3_totp_UserController|d3_totp_PaymentController|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder($this->sControllerClass)
|
||||
$oControllerMock = $this->d3getMockBuilder($this->sControllerClass)
|
||||
->onlyMethods([
|
||||
'd3GetTotpObject',
|
||||
'd3TotpGetSessionObject',
|
||||
@ -120,26 +125,26 @@ trait d3_totp_getUserTestTrait
|
||||
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_PaymentController::getUser
|
||||
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_UserController::getUser
|
||||
*/
|
||||
public function getUserTotpFinished()
|
||||
public function getUserTotpFinished(): void
|
||||
{
|
||||
/** @var Session|MockObject $oSessionMock */
|
||||
$oSessionMock = $this->getMockBuilder(Session::class)
|
||||
$oSessionMock = $this->d3getMockBuilder(Session::class)
|
||||
->onlyMethods(['getVariable'])
|
||||
->getMock();
|
||||
$oSessionMock->method('getVariable')->willReturn(true);
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods([
|
||||
'isActive',
|
||||
'loadByUserId',
|
||||
])
|
||||
->getMock();
|
||||
$oTotpMock->method('isActive')->willReturn(true);
|
||||
$oTotpMock->method('loadByUserId')->willReturn(true);
|
||||
$oTotpMock->method('loadByUserId');
|
||||
|
||||
/** @var d3_totp_orderController|d3_totp_UserController|d3_totp_PaymentController|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder($this->sControllerClass)
|
||||
$oControllerMock = $this->d3getMockBuilder($this->sControllerClass)
|
||||
->onlyMethods([
|
||||
'd3GetTotpObject',
|
||||
'd3TotpGetSessionObject',
|
||||
@ -164,16 +169,16 @@ trait d3_totp_getUserTestTrait
|
||||
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_PaymentController::getUser
|
||||
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_UserController::getUser
|
||||
*/
|
||||
public function getUserTotpNotFinished()
|
||||
public function getUserTotpNotFinished(): void
|
||||
{
|
||||
/** @var Session|MockObject $oSessionMock */
|
||||
$oSessionMock = $this->getMockBuilder(Session::class)
|
||||
$oSessionMock = $this->d3getMockBuilder(Session::class)
|
||||
->onlyMethods(['getVariable'])
|
||||
->getMock();
|
||||
$oSessionMock->method('getVariable')->willReturn(false);
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->disableOriginalConstructor()
|
||||
->onlyMethods([
|
||||
'isActive',
|
||||
@ -181,10 +186,10 @@ trait d3_totp_getUserTestTrait
|
||||
])
|
||||
->getMock();
|
||||
$oTotpMock->method('isActive')->willReturn(true);
|
||||
$oTotpMock->method('loadByUserId')->willReturn(true);
|
||||
$oTotpMock->method('loadByUserId');
|
||||
|
||||
/** @var d3_totp_orderController|d3_totp_UserController|d3_totp_PaymentController|MockObject $oControllerMock */
|
||||
$oControllerMock = $this->getMockBuilder($this->sControllerClass)
|
||||
$oControllerMock = $this->d3getMockBuilder($this->sControllerClass)
|
||||
->onlyMethods([
|
||||
'd3GetTotpObject',
|
||||
'd3TotpGetSessionObject',
|
||||
@ -208,7 +213,7 @@ trait d3_totp_getUserTestTrait
|
||||
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_PaymentController::d3GetTotpObject
|
||||
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_UserController::d3GetTotpObject
|
||||
*/
|
||||
public function d3GetTotpObjectReturnsRightObject()
|
||||
public function d3GetTotpObjectReturnsRightObject(): void
|
||||
{
|
||||
/** @var d3_totp_UserController|d3_totp_PaymentController|d3_totp_OrderController $oController */
|
||||
$oController = oxNew($this->sControllerClass);
|
||||
@ -226,7 +231,7 @@ trait d3_totp_getUserTestTrait
|
||||
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_PaymentController::d3TotpGetSessionObject
|
||||
* @covers \D3\Totp\Modules\Application\Controller\d3_totp_UserController::d3TotpGetSessionObject
|
||||
*/
|
||||
public function d3GetSessionObjectReturnsRightObject()
|
||||
public function d3GetSessionObjectReturnsRightObject(): void
|
||||
{
|
||||
/** @var d3_totp_UserController|d3_totp_PaymentController|d3_totp_OrderController $oController */
|
||||
$oController = oxNew($this->sControllerClass);
|
@ -13,13 +13,13 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Totp\tests\unit\Modules\Application\Model;
|
||||
namespace D3\Totp\Tests\Unit\Modules\Application\Model;
|
||||
|
||||
use D3\TestingTools\Development\CanAccessRestricted;
|
||||
use D3\Totp\Application\Model\d3totp;
|
||||
use D3\Totp\Application\Model\d3totp_conf;
|
||||
use D3\Totp\Modules\Application\Model\d3_totp_user;
|
||||
use D3\Totp\tests\unit\d3TotpUnitTestCase;
|
||||
use D3\Totp\Tests\Unit\d3TotpUnitTestCase;
|
||||
use OxidEsales\Eshop\Application\Model\User;
|
||||
use OxidEsales\Eshop\Core\Session;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
@ -37,13 +37,13 @@ class d3_totp_userTest extends d3TotpUnitTestCase
|
||||
public function logout()
|
||||
{
|
||||
/** @var Session|MockObject $oSessionMock */
|
||||
$oSessionMock = $this->getMockBuilder(Session::class)
|
||||
$oSessionMock = $this->d3getMockBuilder(Session::class)
|
||||
->onlyMethods(['deleteVariable'])
|
||||
->getMock();
|
||||
$oSessionMock->expects($this->atLeast(2))->method('deleteVariable')->willReturn(true);
|
||||
|
||||
/** @var d3_totp_user|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(User::class)
|
||||
$oModelMock = $this->d3getMockBuilder(User::class)
|
||||
->onlyMethods(['d3TotpGetSession'])
|
||||
->getMock();
|
||||
$oModelMock->method('d3TotpGetSession')->willReturn($oSessionMock);
|
||||
@ -109,7 +109,7 @@ class d3_totp_userTest extends d3TotpUnitTestCase
|
||||
public function d3TotpGetCurrentUserTest($currentUser, $isAdmin, $adminAuth, $frontendAuth, $expected)
|
||||
{
|
||||
/** @var Session|MockObject $oSessionMock */
|
||||
$oSessionMock = $this->getMockBuilder(Session::class)
|
||||
$oSessionMock = $this->d3getMockBuilder(Session::class)
|
||||
->onlyMethods(['hasVariable', 'getVariable'])
|
||||
->getMock();
|
||||
$oSessionMock->expects($this->once())->method('hasVariable')->willReturn((bool) $currentUser);
|
||||
@ -122,7 +122,7 @@ class d3_totp_userTest extends d3TotpUnitTestCase
|
||||
$oSessionMock->method('getVariable')->willReturnMap($getVariableMap);
|
||||
|
||||
/** @var d3_totp_user|MockObject $oModelMock */
|
||||
$oModelMock = $this->getMockBuilder(User::class)
|
||||
$oModelMock = $this->d3getMockBuilder(User::class)
|
||||
->onlyMethods(['d3TotpGetSession', 'isAdmin'])
|
||||
->getMock();
|
||||
$oModelMock->method('d3TotpGetSession')->willReturn($oSessionMock);
|
@ -13,17 +13,19 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Totp\tests\unit\Modules\Core;
|
||||
namespace D3\Totp\Tests\Unit\Modules\Core;
|
||||
|
||||
use D3\TestingTools\Development\CanAccessRestricted;
|
||||
use D3\Totp\Application\Model\d3totp;
|
||||
use D3\Totp\Application\Model\d3totp_conf;
|
||||
use D3\Totp\Modules\Core\d3_totp_utils;
|
||||
use D3\Totp\tests\unit\d3TotpUnitTestCase;
|
||||
use D3\Totp\Tests\Unit\d3TotpUnitTestCase;
|
||||
use OxidEsales\Eshop\Core\Config;
|
||||
use OxidEsales\Eshop\Core\Registry;
|
||||
use OxidEsales\Eshop\Core\Session;
|
||||
use OxidEsales\Eshop\Core\Utils;
|
||||
use OxidEsales\EshopCommunity\Internal\Framework\Module\Configuration\DataObject\ModuleConfiguration;
|
||||
use OxidEsales\EshopCommunity\Internal\Framework\Module\Setting\Setting;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
use ReflectionException;
|
||||
|
||||
@ -61,24 +63,26 @@ class d3_totp_utilsTest extends d3TotpUnitTestCase
|
||||
Registry::getSession()->setVariable(d3totp_conf::OXID_ADMIN_AUTH, false);
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods([
|
||||
'loadByUserId',
|
||||
'isActive',
|
||||
])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$oTotpMock->method('loadByUserId')->willReturn(true);
|
||||
$oTotpMock->method('loadByUserId');
|
||||
$oTotpMock->method('isActive')->willReturn(false);
|
||||
|
||||
/** @var d3_totp_utils|MockObject $oCoreMock */
|
||||
$oCoreMock = $this->getMockBuilder(Utils::class)
|
||||
$oCoreMock = $this->d3getMockBuilder(Utils::class)
|
||||
->onlyMethods(['d3GetTotpObject'])
|
||||
->getMock();
|
||||
$oCoreMock->method('d3GetTotpObject')->willReturn($oTotpMock);
|
||||
|
||||
$this->_oCoreClass = $oCoreMock;
|
||||
|
||||
Registry::getSession()->setVariable(d3totp_conf::OXID_ADMIN_AUTH, 'oxid');
|
||||
|
||||
$this->assertFalse(
|
||||
$this->callMethod($this->_oCoreClass, 'checkAccessRights')
|
||||
);
|
||||
@ -94,18 +98,18 @@ class d3_totp_utilsTest extends d3TotpUnitTestCase
|
||||
Registry::getSession()->setVariable(d3totp_conf::OXID_ADMIN_AUTH, false);
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods([
|
||||
'loadByUserId',
|
||||
'isActive',
|
||||
])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$oTotpMock->method('loadByUserId')->willReturn(true);
|
||||
$oTotpMock->method('loadByUserId');
|
||||
$oTotpMock->method('isActive')->willReturn(false);
|
||||
|
||||
/** @var d3_totp_utils|MockObject $oCoreMock */
|
||||
$oCoreMock = $this->getMockBuilder(Utils::class)
|
||||
$oCoreMock = $this->d3getMockBuilder(Utils::class)
|
||||
->onlyMethods(['d3GetTotpObject', 'd3AuthHook', 'redirect', 'd3IsAdminForce2FA'])
|
||||
->getMock();
|
||||
$oCoreMock->method('d3GetTotpObject')->willReturn($oTotpMock);
|
||||
@ -116,6 +120,8 @@ class d3_totp_utilsTest extends d3TotpUnitTestCase
|
||||
|
||||
$this->_oCoreClass = $oCoreMock;
|
||||
|
||||
Registry::getSession()->setVariable(d3totp_conf::OXID_ADMIN_AUTH, 'oxid');
|
||||
|
||||
$this->assertTrue(
|
||||
$this->callMethod($this->_oCoreClass, 'checkAccessRights')
|
||||
);
|
||||
@ -131,18 +137,18 @@ class d3_totp_utilsTest extends d3TotpUnitTestCase
|
||||
Registry::getSession()->setVariable(d3totp_conf::OXID_ADMIN_AUTH, 'foo');
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods([
|
||||
'loadByUserId',
|
||||
'isActive',
|
||||
])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$oTotpMock->method('loadByUserId')->willReturn(true);
|
||||
$oTotpMock->method('loadByUserId');
|
||||
$oTotpMock->method('isActive')->willReturn(false);
|
||||
|
||||
/** @var d3_totp_utils|MockObject $oCoreMock */
|
||||
$oCoreMock = $this->getMockBuilder(Utils::class)
|
||||
$oCoreMock = $this->d3getMockBuilder(Utils::class)
|
||||
->onlyMethods([
|
||||
'd3GetTotpObject',
|
||||
'fetchRightsForUser',
|
||||
@ -168,24 +174,24 @@ class d3_totp_utilsTest extends d3TotpUnitTestCase
|
||||
Registry::getSession()->setVariable(d3totp_conf::OXID_ADMIN_AUTH, 'foo');
|
||||
|
||||
/** @var Session|MockObject $oSessionMock */
|
||||
$oSessionMock = $this->getMockBuilder(Session::class)
|
||||
$oSessionMock = $this->d3getMockBuilder(Session::class)
|
||||
->onlyMethods(['getVariable'])
|
||||
->getMock();
|
||||
$oSessionMock->method('getVariable')->will($this->onConsecutiveCalls('foo', true));
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods([
|
||||
'loadByUserId',
|
||||
'isActive',
|
||||
])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$oTotpMock->method('loadByUserId')->willReturn(true);
|
||||
$oTotpMock->method('loadByUserId');
|
||||
$oTotpMock->method('isActive')->willReturn(true);
|
||||
|
||||
/** @var d3_totp_utils|MockObject $oCoreMock */
|
||||
$oCoreMock = $this->getMockBuilder(Utils::class)
|
||||
$oCoreMock = $this->d3getMockBuilder(Utils::class)
|
||||
->onlyMethods([
|
||||
'd3GetTotpObject',
|
||||
'd3TotpGetSessionObject',
|
||||
@ -215,30 +221,30 @@ class d3_totp_utilsTest extends d3TotpUnitTestCase
|
||||
Registry::getSession()->setVariable(d3totp_conf::OXID_ADMIN_AUTH, 'foo');
|
||||
|
||||
/** @var Session|MockObject $oSessionMock */
|
||||
$oSessionMock = $this->getMockBuilder(Session::class)
|
||||
$oSessionMock = $this->d3getMockBuilder(Session::class)
|
||||
->onlyMethods(['getVariable'])
|
||||
->getMock();
|
||||
$oSessionMock->method('getVariable')->will($this->onConsecutiveCalls('foo', false));
|
||||
|
||||
/** @var Session|MockObject $oSessionMock */
|
||||
$oSessionMock = $this->getMockBuilder(Session::class)
|
||||
$oSessionMock = $this->d3getMockBuilder(Session::class)
|
||||
->onlyMethods(['getVariable'])
|
||||
->getMock();
|
||||
$oSessionMock->method('getVariable')->will($this->onConsecutiveCalls('foo', false));
|
||||
|
||||
/** @var d3totp|MockObject $oTotpMock */
|
||||
$oTotpMock = $this->getMockBuilder(d3totp::class)
|
||||
$oTotpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods([
|
||||
'loadByUserId',
|
||||
'isActive',
|
||||
])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$oTotpMock->method('loadByUserId')->willReturn(true);
|
||||
$oTotpMock->method('loadByUserId');
|
||||
$oTotpMock->method('isActive')->willReturn(true);
|
||||
|
||||
/** @var d3_totp_utils|MockObject $oCoreMock */
|
||||
$oCoreMock = $this->getMockBuilder(Utils::class)
|
||||
$oCoreMock = $this->d3getMockBuilder(Utils::class)
|
||||
->onlyMethods([
|
||||
'd3GetTotpObject',
|
||||
'd3TotpGetSessionObject',
|
||||
@ -309,18 +315,29 @@ class d3_totp_utilsTest extends d3TotpUnitTestCase
|
||||
public function d3IsAdminForce2FA($isAdmin, $hasConfig, $expected)
|
||||
{
|
||||
/** @var Config|MockObject $configMock */
|
||||
$configMock = $this->getMockBuilder(Config::class)
|
||||
$configMock = $this->d3getMockBuilder(Config::class)
|
||||
->disableOriginalConstructor()
|
||||
->onlyMethods(['getConfigParam'])
|
||||
->getMock();
|
||||
$configMock->method('getConfigParam')->with($this->equalTo('D3_TOTP_ADMIN_FORCE_2FA'))->willReturn($hasConfig);
|
||||
|
||||
$settingMock = $this->d3getMockBuilder(Setting::class)
|
||||
->onlyMethods(['getValue'])
|
||||
->getMock();
|
||||
$settingMock->method('getValue')->willReturn($hasConfig);
|
||||
|
||||
$moduleConfigurationMock = $this->d3getMockBuilder(ModuleConfiguration::class)
|
||||
->onlyMethods(['getModuleSetting'])
|
||||
->getMock();
|
||||
$moduleConfigurationMock->method('getModuleSetting')->willReturn($settingMock);
|
||||
|
||||
/** @var d3_totp_utils|MockObject $oCoreMock */
|
||||
$oCoreMock = $this->getMockBuilder(Utils::class)
|
||||
->onlyMethods(['isAdmin', 'd3GetConfig'])
|
||||
$oCoreMock = $this->d3getMockBuilder(Utils::class)
|
||||
->onlyMethods(['isAdmin', 'd3GetConfig', 'getModuleConfiguration'])
|
||||
->getMock();
|
||||
$oCoreMock->method('isAdmin')->willReturn($isAdmin);
|
||||
$oCoreMock->method('d3GetConfig')->willReturn($configMock);
|
||||
$oCoreMock->method('getModuleConfiguration')->willReturn($moduleConfigurationMock);
|
||||
|
||||
$this->_oCoreClass = $oCoreMock;
|
||||
|
||||
@ -339,9 +356,9 @@ class d3_totp_utilsTest extends d3TotpUnitTestCase
|
||||
public function d3IsAdminForce2FADataProvider(): array
|
||||
{
|
||||
return [
|
||||
//'noAdmin, noConfig' => [false, false, false],
|
||||
//'noAdmin' => [false, true, false],
|
||||
//'noConfig' => [true, false, false],
|
||||
'noAdmin, noConfig' => [false, false, false],
|
||||
'noAdmin' => [false, true, false],
|
||||
'noConfig' => [true, false, false],
|
||||
'passed' => [true, true, true],
|
||||
];
|
||||
}
|
@ -19,15 +19,16 @@ use D3\TestingTools\Development\CanAccessRestricted;
|
||||
use D3\Totp\Application\Model\d3totp;
|
||||
use D3\Totp\Modules\Application\Model\d3_totp_user;
|
||||
use D3\Totp\Modules\Core\totpSystemEventHandler;
|
||||
use D3\Totp\Tests\Unit\d3TotpUnitTestCase;
|
||||
use OxidEsales\Eshop\Application\Model\User;
|
||||
use OxidEsales\Eshop\Core\Session;
|
||||
use OxidEsales\Eshop\Core\SystemEventHandler;
|
||||
use OxidEsales\Eshop\Core\Utils;
|
||||
use OxidEsales\TestingLibrary\UnitTestCase;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use ReflectionException;
|
||||
|
||||
class totpSystemEventHandlerTest extends UnitTestCase
|
||||
class totpSystemEventHandlerTest extends d3TotpUnitTestCase
|
||||
{
|
||||
use CanAccessRestricted;
|
||||
|
||||
@ -40,12 +41,12 @@ class totpSystemEventHandlerTest extends UnitTestCase
|
||||
public function runOnAdminLogin()
|
||||
{
|
||||
/** @var totpSystemEventHandler|MockObject $sut */
|
||||
$sut = $this->getMockBuilder(SystemEventHandler::class)
|
||||
$sut = $this->d3getMockBuilder(SystemEventHandler::class)
|
||||
->onlyMethods(['d3CallMockableFunction', 'd3requestTotp'])
|
||||
->getMock();
|
||||
|
||||
$sut->method('d3CallMockableFunction')->willReturn(true);
|
||||
$sut->expects($this->once())->method('d3requestTotp')->willReturn(true);
|
||||
$sut->expects($this->once())->method('d3requestTotp');
|
||||
|
||||
$this->callMethod(
|
||||
$sut,
|
||||
@ -68,31 +69,31 @@ class totpSystemEventHandlerTest extends UnitTestCase
|
||||
public function canRequestTotp($totpMissing, $doLogout, $doRedirect)
|
||||
{
|
||||
/** @var Session|MockObject $sessionMock */
|
||||
$sessionMock = $this->getMockBuilder(Session::class)
|
||||
$sessionMock = $this->d3getMockBuilder(Session::class)
|
||||
->onlyMethods(['getVariable'])
|
||||
->getMock();
|
||||
$sessionMock->method('getVariable')->willReturn('myUserId');
|
||||
|
||||
/** @var d3_totp_user|MockObject $userMock */
|
||||
$userMock = $this->getMockBuilder(User::class)
|
||||
$userMock = $this->d3getMockBuilder(User::class)
|
||||
->onlyMethods(['logout'])
|
||||
->getMock();
|
||||
$userMock->expects($doLogout)->method('logout')->willReturn(true);
|
||||
|
||||
/** @var Utils|MockObject $utilsMock */
|
||||
$utilsMock = $this->getMockBuilder(Utils::class)
|
||||
$utilsMock = $this->d3getMockBuilder(Utils::class)
|
||||
->onlyMethods(['redirect'])
|
||||
->getMock();
|
||||
$utilsMock->expects($doRedirect)->method('redirect')->willReturn(true);
|
||||
|
||||
/** @var d3totp|MockObject $totpMock */
|
||||
$totpMock = $this->getMockBuilder(d3totp::class)
|
||||
$totpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['loadByUserId'])
|
||||
->getMock();
|
||||
$totpMock->expects($this->atLeastOnce())->method('loadByUserId')->with('myUserId')->willReturn(1);
|
||||
$totpMock->expects($this->atLeastOnce())->method('loadByUserId')->with('myUserId');
|
||||
|
||||
/** @var totpSystemEventHandler|MockObject $sut */
|
||||
$sut = $this->getMockBuilder(SystemEventHandler::class)
|
||||
$sut = $this->d3getMockBuilder(SystemEventHandler::class)
|
||||
->onlyMethods(['d3GetTotpObject', 'd3TotpGetSession', 'd3TotpLoginMissing',
|
||||
'd3TotpGetUserObject', 'getUtilsObject', ])
|
||||
->getMock();
|
||||
@ -212,19 +213,19 @@ class totpSystemEventHandlerTest extends UnitTestCase
|
||||
public function checkTotpLoginMissing($isActive, $hasTotpAuth, $expected)
|
||||
{
|
||||
/** @var Session|MockObject $sessionMock */
|
||||
$sessionMock = $this->getMockBuilder(Session::class)
|
||||
$sessionMock = $this->d3getMockBuilder(Session::class)
|
||||
->onlyMethods(['getVariable'])
|
||||
->getMock();
|
||||
$sessionMock->method('getVariable')->willReturn($hasTotpAuth);
|
||||
|
||||
/** @var d3totp|MockObject $totpMock */
|
||||
$totpMock = $this->getMockBuilder(d3totp::class)
|
||||
$totpMock = $this->d3getMockBuilder(d3totp::class)
|
||||
->onlyMethods(['isActive'])
|
||||
->getMock();
|
||||
$totpMock->method('isActive')->willReturn($isActive);
|
||||
|
||||
/** @var totpSystemEventHandler|MockObject $sut */
|
||||
$sut = $this->getMockBuilder(SystemEventHandler::class)
|
||||
$sut = $this->d3getMockBuilder(SystemEventHandler::class)
|
||||
->onlyMethods(['d3TotpGetSession'])
|
||||
->getMock();
|
||||
$sut->method('d3TotpGetSession')->willReturn($sessionMock);
|
33
Tests/Unit/d3TotpUnitTestCase.php
Normal file
33
Tests/Unit/d3TotpUnitTestCase.php
Normal file
@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*
|
||||
* https://www.d3data.de
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
|
||||
* @link https://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Totp\Tests\Unit;
|
||||
|
||||
use OxidEsales\Eshop\Core\Registry as RegistryAlias;
|
||||
use PHPUnit\Framework\MockObject\MockBuilder;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
abstract class d3TotpUnitTestCase extends TestCase
|
||||
{
|
||||
public function d3getMockBuilder($className): MockBuilder
|
||||
{
|
||||
if (strpos($className, '\\') === false) {
|
||||
$className = strtolower($className);
|
||||
}
|
||||
$editionClassName = RegistryAlias::getUtilsObject()->getClassName($className);
|
||||
|
||||
return parent::getMockBuilder($editionClassName);
|
||||
}
|
||||
}
|
@ -1,29 +1,30 @@
|
||||
<phpunit backupGlobals="true"
|
||||
<?xml version="1.0"?>
|
||||
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
backupGlobals="true"
|
||||
bootstrap="../../../../source/bootstrap.php"
|
||||
colors="true"
|
||||
backupStaticAttributes="false"
|
||||
cacheTokens="true"
|
||||
colors="false"
|
||||
convertErrorsToExceptions="true"
|
||||
convertNoticesToExceptions="false"
|
||||
convertWarningsToExceptions="true"
|
||||
convertWarningsToExceptions="false"
|
||||
forceCoversAnnotation="false"
|
||||
processIsolation="false"
|
||||
stopOnError="false"
|
||||
stopOnFailure="false"
|
||||
stopOnIncomplete="false"
|
||||
stopOnSkipped="false"
|
||||
verbose="false">
|
||||
<filter>
|
||||
<whitelist processUncoveredFilesFromWhitelist="true">
|
||||
<directory suffix=".php">../Application</directory>
|
||||
<directory suffix=".php">../Modules</directory>
|
||||
<directory suffix=".php">../Setup</directory>
|
||||
<exclude>
|
||||
<directory suffix=".php">../Application/views</directory>
|
||||
<directory suffix=".php">../Application/translations</directory>
|
||||
</exclude>
|
||||
</whitelist>
|
||||
</filter>
|
||||
<logging>
|
||||
<log type="junit" target="reports/logfile.xml"/>
|
||||
</logging>
|
||||
beStrictAboutTestsThatDoNotTestAnything="false"
|
||||
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.6/phpunit.xsd">
|
||||
<testsuites>
|
||||
<testsuite name="Unit">
|
||||
<directory>Unit/</directory>
|
||||
</testsuite>
|
||||
<!-- <testsuite name="Integration">-->
|
||||
<!-- <directory>integration/</directory>-->
|
||||
<!-- </testsuite>-->
|
||||
</testsuites>
|
||||
<coverage includeUncoveredFiles="true" />
|
||||
<php>
|
||||
<const name="OXID_PHP_UNIT" value="true"/>
|
||||
</php>
|
||||
</phpunit>
|
||||
|
@ -1,22 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*
|
||||
* https://www.d3data.de
|
||||
*
|
||||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
|
||||
* @link https://www.oxidmodule.com
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace D3\Totp\tests\unit;
|
||||
|
||||
use OxidEsales\TestingLibrary\UnitTestCase;
|
||||
|
||||
abstract class d3TotpUnitTestCase extends UnitTestCase
|
||||
{
|
||||
}
|
@ -49,7 +49,7 @@
|
||||
"beberlei/assert": "^v3.3.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit" : "^10.5",
|
||||
"phpunit/phpunit" : "^9.6",
|
||||
"friendsofphp/php-cs-fixer": "^3.9",
|
||||
"phpstan/phpstan": "^1.8",
|
||||
"boxblinkracer/phpunuhi": "^1.12"
|
||||
@ -61,13 +61,14 @@
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"D3\\Totp\\tests\\": "Tests"
|
||||
"D3\\Totp\\Tests\\": "Tests"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"php-cs-fixer": "./vendor/bin/php-cs-fixer fix --config=vendor/d3/oxid-twofactor-onetimepassword/.php-cs-fixer.php",
|
||||
"phpstan": "./vendor/bin/phpstan --configuration=./vendor/d3/oxid-twofactor-onetimepassword/phpstan.neon",
|
||||
"phpunuhi": "./vendor/bin/phpunuhi --configuration=vendor/d3/oxid-twofactor-onetimepassword/phpunuhi.xml validate"
|
||||
"php-cs-fixer": "./vendor/bin/php-cs-fixer fix --config=vendor/d3/oxid-twofactor-onetimepassword/.php-cs-fixer.php",
|
||||
"phpstan": "./vendor/bin/phpstan --configuration=./vendor/d3/oxid-twofactor-onetimepassword/phpstan.neon",
|
||||
"phpunit": "XDEBUG_MODE=off vendor/bin/phpunit --config=vendor/d3/oxid-twofactor-onetimepassword/Tests/",
|
||||
"phpunuhi": "./vendor/bin/phpunuhi --configuration=vendor/d3/oxid-twofactor-onetimepassword/phpunuhi.xml validate"
|
||||
},
|
||||
"suggest": {
|
||||
"d3/oxid-twofactor-passwordless": "Passwordless login with FIDO2 hardware token."
|
||||
|
Loading…
x
Reference in New Issue
Block a user