add admin controller tests, improve controller classes
This commit is contained in:
parent
3bbfde7794
commit
f74d6985fb
@ -42,7 +42,7 @@ class d3user_webauthn extends AdminDetailsController
|
|||||||
*/
|
*/
|
||||||
public function render(): string
|
public function render(): string
|
||||||
{
|
{
|
||||||
$this->addTplParam('readonly', !$this->getWebauthnObject()->isAvailable());
|
$this->addTplParam('readonly', !$this->d3GetWebauthnObject()->isAvailable());
|
||||||
|
|
||||||
$this->d3CallMockableParent('render');
|
$this->d3CallMockableParent('render');
|
||||||
|
|
||||||
@ -50,7 +50,7 @@ class d3user_webauthn extends AdminDetailsController
|
|||||||
|
|
||||||
if (isset($soxId) && $soxId != "-1") {
|
if (isset($soxId) && $soxId != "-1") {
|
||||||
/** @var d3_User_Webauthn $oUser */
|
/** @var d3_User_Webauthn $oUser */
|
||||||
$oUser = $this->getUserObject();
|
$oUser = $this->d3GetUserObject();
|
||||||
if ($oUser->load($soxId)) {
|
if ($oUser->load($soxId)) {
|
||||||
$this->addTplParam("oxid", $oUser->getId());
|
$this->addTplParam("oxid", $oUser->getId());
|
||||||
} else {
|
} else {
|
||||||
@ -75,10 +75,10 @@ class d3user_webauthn extends AdminDetailsController
|
|||||||
$this->setPageType( 'requestnew' );
|
$this->setPageType( 'requestnew' );
|
||||||
$this->setAuthnRegister();
|
$this->setAuthnRegister();
|
||||||
} catch (Exception|ContainerExceptionInterface|NotFoundExceptionInterface|DoctrineDriverException $e) {
|
} catch (Exception|ContainerExceptionInterface|NotFoundExceptionInterface|DoctrineDriverException $e) {
|
||||||
$this->getUtilsViewObject()->addErrorToDisplay($e);
|
$this->d3GetUtilsViewObject()->addErrorToDisplay($e);
|
||||||
$this->getLoggerObject()->error($e->getMessage(), ['UserId' => $this->getEditObjectId()]);
|
$this->d3GetLoggerObject()->error($e->getMessage(), ['UserId' => $this->getEditObjectId()]);
|
||||||
$this->getLoggerObject()->debug($e->getTraceAsString());
|
$this->d3GetLoggerObject()->debug($e->getTraceAsString());
|
||||||
$this->getUtilsObject()->redirect('index.php?cl=d3user_webauthn');
|
$this->d3GetUtilsObject()->redirect('index.php?cl=d3user_webauthn');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,13 +97,13 @@ class d3user_webauthn extends AdminDetailsController
|
|||||||
|
|
||||||
$credential = Registry::getRequest()->getRequestEscapedParameter('credential');
|
$credential = Registry::getRequest()->getRequestEscapedParameter('credential');
|
||||||
if ( strlen((string) $credential) ) {
|
if ( strlen((string) $credential) ) {
|
||||||
$webauthn = $this->getWebauthnObject();
|
$webauthn = $this->d3GetWebauthnObject();
|
||||||
$webauthn->saveAuthn($credential, Registry::getRequest()->getRequestEscapedParameter( 'keyname' ) );
|
$webauthn->saveAuthn($credential, Registry::getRequest()->getRequestEscapedParameter( 'keyname' ) );
|
||||||
}
|
}
|
||||||
} catch (WebauthnException|Exception|NotFoundExceptionInterface|ContainerExceptionInterface|DoctrineDriverException $e) {
|
} catch (WebauthnException|Exception|NotFoundExceptionInterface|ContainerExceptionInterface|DoctrineDriverException $e) {
|
||||||
$this->getLoggerObject()->error($e->getDetailedErrorMessage(), ['UserId' => $this->getEditObjectId()]);
|
$this->d3GetLoggerObject()->error($e->getDetailedErrorMessage(), ['UserId' => $this->getEditObjectId()]);
|
||||||
$this->getLoggerObject()->debug($e->getTraceAsString());
|
$this->d3GetLoggerObject()->debug($e->getTraceAsString());
|
||||||
$this->getUtilsViewObject()->addErrorToDisplay($e);
|
$this->d3GetUtilsViewObject()->addErrorToDisplay($e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -122,9 +122,9 @@ class d3user_webauthn extends AdminDetailsController
|
|||||||
*/
|
*/
|
||||||
public function setAuthnRegister(): void
|
public function setAuthnRegister(): void
|
||||||
{
|
{
|
||||||
$authn = $this->getWebauthnObject();
|
$authn = $this->d3GetWebauthnObject();
|
||||||
|
|
||||||
$user = $this->getUserObject();
|
$user = $this->d3GetUserObject();
|
||||||
$user->load($this->getEditObjectId());
|
$user->load($this->getEditObjectId());
|
||||||
$publicKeyCredentialCreationOptions = $authn->getCreationOptions($user);
|
$publicKeyCredentialCreationOptions = $authn->getCreationOptions($user);
|
||||||
|
|
||||||
@ -148,10 +148,10 @@ class d3user_webauthn extends AdminDetailsController
|
|||||||
*/
|
*/
|
||||||
public function getCredentialList($userId): array
|
public function getCredentialList($userId): array
|
||||||
{
|
{
|
||||||
$oUser = $this->getUserObject();
|
$oUser = $this->d3GetUserObject();
|
||||||
$oUser->load($userId);
|
$oUser->load($userId);
|
||||||
|
|
||||||
$publicKeyCredentials = $this->getPublicKeyCredentialListObject();
|
$publicKeyCredentials = $this->d3GetPublicKeyCredentialListObject();
|
||||||
return $publicKeyCredentials->getAllFromUser($oUser)->getArray();
|
return $publicKeyCredentials->getAllFromUser($oUser)->getArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -160,7 +160,7 @@ class d3user_webauthn extends AdminDetailsController
|
|||||||
*/
|
*/
|
||||||
public function deleteKey(): void
|
public function deleteKey(): void
|
||||||
{
|
{
|
||||||
$credential = $this->getPublicKeyCredentialObject();
|
$credential = $this->d3GetPublicKeyCredentialObject();
|
||||||
$credential->delete(Registry::getRequest()->getRequestEscapedParameter('deleteoxid'));
|
$credential->delete(Registry::getRequest()->getRequestEscapedParameter('deleteoxid'));
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -15,6 +15,8 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace D3\Webauthn\Application\Controller\Admin;
|
namespace D3\Webauthn\Application\Controller\Admin;
|
||||||
|
|
||||||
|
use D3\TestingTools\Production\IsMockable;
|
||||||
|
use D3\Webauthn\Application\Controller\Traits\helpersTrait;
|
||||||
use D3\Webauthn\Application\Model\Exceptions\WebauthnGetException;
|
use D3\Webauthn\Application\Model\Exceptions\WebauthnGetException;
|
||||||
use D3\Webauthn\Application\Model\Webauthn;
|
use D3\Webauthn\Application\Model\Webauthn;
|
||||||
use D3\Webauthn\Application\Model\WebauthnConf;
|
use D3\Webauthn\Application\Model\WebauthnConf;
|
||||||
@ -28,12 +30,16 @@ use OxidEsales\Eshop\Application\Controller\Admin\LoginController;
|
|||||||
use OxidEsales\Eshop\Application\Controller\FrontendController;
|
use OxidEsales\Eshop\Application\Controller\FrontendController;
|
||||||
use OxidEsales\Eshop\Application\Model\User;
|
use OxidEsales\Eshop\Application\Model\User;
|
||||||
use OxidEsales\Eshop\Core\Registry;
|
use OxidEsales\Eshop\Core\Registry;
|
||||||
|
use OxidEsales\Eshop\Core\Routing\ControllerClassNameResolver;
|
||||||
use OxidEsales\Eshop\Core\Utils;
|
use OxidEsales\Eshop\Core\Utils;
|
||||||
use Psr\Container\ContainerExceptionInterface;
|
use Psr\Container\ContainerExceptionInterface;
|
||||||
use Psr\Container\NotFoundExceptionInterface;
|
use Psr\Container\NotFoundExceptionInterface;
|
||||||
|
|
||||||
class d3webauthnadminlogin extends AdminController
|
class d3webauthnadminlogin extends AdminController
|
||||||
{
|
{
|
||||||
|
use helpersTrait;
|
||||||
|
use IsMockable;
|
||||||
|
|
||||||
protected $_sThisTemplate = 'd3webauthnadminlogin.tpl';
|
protected $_sThisTemplate = 'd3webauthnadminlogin.tpl';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -53,8 +59,8 @@ class d3webauthnadminlogin extends AdminController
|
|||||||
*/
|
*/
|
||||||
public function render(): string
|
public function render(): string
|
||||||
{
|
{
|
||||||
if (Registry::getSession()->hasVariable(WebauthnConf::WEBAUTHN_SESSION_AUTH) ||
|
if ($this->d3GetSession()->hasVariable(WebauthnConf::WEBAUTHN_SESSION_AUTH) ||
|
||||||
!Registry::getSession()->hasVariable(WebauthnConf::WEBAUTHN_SESSION_CURRENTUSER)
|
!$this->d3GetSession()->hasVariable(WebauthnConf::WEBAUTHN_SESSION_CURRENTUSER)
|
||||||
) {
|
) {
|
||||||
$this->getUtils()->redirect('index.php?cl=admin_start');
|
$this->getUtils()->redirect('index.php?cl=admin_start');
|
||||||
if (!defined('OXID_PHP_UNIT')) {
|
if (!defined('OXID_PHP_UNIT')) {
|
||||||
@ -66,7 +72,9 @@ class d3webauthnadminlogin extends AdminController
|
|||||||
|
|
||||||
$this->generateCredentialRequest();
|
$this->generateCredentialRequest();
|
||||||
|
|
||||||
return parent::render();
|
$this->addTplParam('navFormParams', $this->d3GetSession()->getVariable(WebauthnConf::WEBAUTHN_SESSION_NAVFORMPARAMS));
|
||||||
|
|
||||||
|
return $this->d3CallMockableParent('render');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -78,19 +86,19 @@ class d3webauthnadminlogin extends AdminController
|
|||||||
*/
|
*/
|
||||||
public function generateCredentialRequest(): void
|
public function generateCredentialRequest(): void
|
||||||
{
|
{
|
||||||
$userId = Registry::getSession()->getVariable(WebauthnConf::WEBAUTHN_SESSION_CURRENTUSER);
|
$userId = $this->d3GetSession()->getVariable(WebauthnConf::WEBAUTHN_SESSION_CURRENTUSER);
|
||||||
try {
|
try {
|
||||||
/** @var Webauthn $webauthn */
|
/** @var Webauthn $webauthn */
|
||||||
$webauthn = oxNew(Webauthn::class);
|
$webauthn = $this->d3GetWebauthnObject();
|
||||||
$publicKeyCredentialRequestOptions = $webauthn->getRequestOptions($userId);
|
$publicKeyCredentialRequestOptions = $webauthn->getRequestOptions($userId);
|
||||||
Registry::getSession()->setVariable(WebauthnConf::WEBAUTHN_LOGIN_OBJECT, $publicKeyCredentialRequestOptions);
|
$this->d3GetSession()->setVariable(WebauthnConf::WEBAUTHN_LOGIN_OBJECT, $publicKeyCredentialRequestOptions);
|
||||||
$this->addTplParam('webauthn_publickey_login', $publicKeyCredentialRequestOptions);
|
$this->addTplParam('webauthn_publickey_login', $publicKeyCredentialRequestOptions);
|
||||||
$this->addTplParam('isAdmin', isAdmin());
|
$this->addTplParam('isAdmin', isAdmin());
|
||||||
} catch (WebauthnException $e) {
|
} catch (WebauthnException $e) {
|
||||||
Registry::getSession()->setVariable(WebauthnConf::GLOBAL_SWITCH, true);
|
$this->d3GetSession()->setVariable(WebauthnConf::GLOBAL_SWITCH, true);
|
||||||
Registry::getUtilsView()->addErrorToDisplay($e);
|
Registry::getUtilsView()->addErrorToDisplay($e);
|
||||||
Registry::getLogger()->error($e->getDetailedErrorMessage(), ['UserId' => $userId]);
|
$this->d3GetLoggerObject()->error($e->getDetailedErrorMessage(), ['UserId' => $userId]);
|
||||||
Registry::getLogger()->debug($e->getTraceAsString());
|
$this->d3GetLoggerObject()->debug($e->getTraceAsString());
|
||||||
$this->getUtils()->redirect('index.php?cl=login');
|
$this->getUtils()->redirect('index.php?cl=login');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -101,8 +109,8 @@ class d3webauthnadminlogin extends AdminController
|
|||||||
public function d3AssertAuthn(): ?string
|
public function d3AssertAuthn(): ?string
|
||||||
{
|
{
|
||||||
/** @var d3_User_Webauthn $user */
|
/** @var d3_User_Webauthn $user */
|
||||||
$user = oxNew(User::class);
|
$user = $this->d3GetUserObject();
|
||||||
$userId = Registry::getSession()->getVariable(WebauthnConf::WEBAUTHN_SESSION_CURRENTUSER);
|
$userId = $this->d3GetSession()->getVariable(WebauthnConf::WEBAUTHN_SESSION_CURRENTUSER);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$error = Registry::getRequest()->getRequestEscapedParameter('error');
|
$error = Registry::getRequest()->getRequestEscapedParameter('error');
|
||||||
@ -114,19 +122,19 @@ class d3webauthnadminlogin extends AdminController
|
|||||||
|
|
||||||
$credential = Registry::getRequest()->getRequestEscapedParameter('credential');
|
$credential = Registry::getRequest()->getRequestEscapedParameter('credential');
|
||||||
if (strlen((string) $credential)) {
|
if (strlen((string) $credential)) {
|
||||||
$webAuthn = oxNew( Webauthn::class );
|
$webAuthn = $this->d3GetWebauthnObject();
|
||||||
$webAuthn->assertAuthn($credential);
|
$webAuthn->assertAuthn($credential);
|
||||||
$user->load($userId);
|
$user->load($userId);
|
||||||
Registry::getSession()->setVariable(WebauthnConf::WEBAUTHN_SESSION_AUTH, true);
|
$this->d3GetSession()->setVariable(WebauthnConf::WEBAUTHN_SESSION_AUTH, true);
|
||||||
|
|
||||||
/** @var d3_webauthn_UserComponent $userCmp */
|
/** @var d3_webauthn_UserComponent $userCmp */
|
||||||
$loginController = oxNew(LoginController::class);
|
$loginController = oxNew(LoginController::class);
|
||||||
return $loginController->checklogin();
|
return $loginController->checklogin();
|
||||||
}
|
}
|
||||||
} catch (WebauthnException $e) {
|
} catch (WebauthnException $e) {
|
||||||
Registry::getUtilsView()->addErrorToDisplay($e);
|
$this->d3GetUtilsViewObject()->addErrorToDisplay($e);
|
||||||
Registry::getLogger()->error($e->getDetailedErrorMessage(), ['UserId' => $userId]);
|
$this->d3GetLoggerObject()->error($e->getDetailedErrorMessage(), ['UserId' => $userId]);
|
||||||
Registry::getLogger()->debug($e->getTraceAsString());
|
$this->d3GetLoggerObject()->debug($e->getTraceAsString());
|
||||||
$user->logout();
|
$user->logout();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -146,7 +154,7 @@ class d3webauthnadminlogin extends AdminController
|
|||||||
*/
|
*/
|
||||||
public function getPreviousClass(): ?string
|
public function getPreviousClass(): ?string
|
||||||
{
|
{
|
||||||
return Registry::getSession()->getVariable(WebauthnConf::WEBAUTHN_SESSION_CURRENTCLASS);
|
return $this->d3GetSession()->getVariable(WebauthnConf::WEBAUTHN_SESSION_CURRENTCLASS);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -154,8 +162,8 @@ class d3webauthnadminlogin extends AdminController
|
|||||||
*/
|
*/
|
||||||
public function previousClassIsOrderStep(): bool
|
public function previousClassIsOrderStep(): bool
|
||||||
{
|
{
|
||||||
$sClassKey = Registry::getSession()->getVariable(WebauthnConf::WEBAUTHN_SESSION_CURRENTCLASS);
|
$sClassKey = $this->d3GetSession()->getVariable(WebauthnConf::WEBAUTHN_SESSION_CURRENTCLASS);
|
||||||
$resolvedClass = Registry::getControllerClassNameResolver()->getClassNameById($sClassKey);
|
$resolvedClass = $this->d3GetControllerClassNameResolver()->getClassNameById($sClassKey);
|
||||||
$resolvedClass = $resolvedClass ?: 'start';
|
$resolvedClass = $resolvedClass ?: 'start';
|
||||||
|
|
||||||
/** @var FrontendController $oController */
|
/** @var FrontendController $oController */
|
||||||
@ -170,22 +178,4 @@ class d3webauthnadminlogin extends AdminController
|
|||||||
{
|
{
|
||||||
return $this->previousClassIsOrderStep();
|
return $this->previousClassIsOrderStep();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns Bread Crumb - you are here page1/page2/page3...
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function getBreadCrumb(): array
|
|
||||||
{
|
|
||||||
$aPaths = [];
|
|
||||||
$aPath = [];
|
|
||||||
$iBaseLanguage = Registry::getLang()->getBaseLanguage();
|
|
||||||
$aPath['title'] = Registry::getLang()->translateString('D3_WEBAUTHN_BREADCRUMB', $iBaseLanguage, false);
|
|
||||||
$aPath['link'] = $this->getLink();
|
|
||||||
|
|
||||||
$aPaths[] = $aPath;
|
|
||||||
|
|
||||||
return $aPaths;
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -7,6 +7,8 @@ use D3\Webauthn\Application\Model\Credential\PublicKeyCredentialList;
|
|||||||
use D3\Webauthn\Application\Model\Webauthn;
|
use D3\Webauthn\Application\Model\Webauthn;
|
||||||
use OxidEsales\Eshop\Application\Model\User;
|
use OxidEsales\Eshop\Application\Model\User;
|
||||||
use OxidEsales\Eshop\Core\Registry;
|
use OxidEsales\Eshop\Core\Registry;
|
||||||
|
use OxidEsales\Eshop\Core\Routing\ControllerClassNameResolver;
|
||||||
|
use OxidEsales\Eshop\Core\Session;
|
||||||
use OxidEsales\Eshop\Core\Utils;
|
use OxidEsales\Eshop\Core\Utils;
|
||||||
use OxidEsales\Eshop\Core\UtilsView;
|
use OxidEsales\Eshop\Core\UtilsView;
|
||||||
use Psr\Log\LoggerInterface;
|
use Psr\Log\LoggerInterface;
|
||||||
@ -16,7 +18,7 @@ trait helpersTrait
|
|||||||
/**
|
/**
|
||||||
* @return User
|
* @return User
|
||||||
*/
|
*/
|
||||||
public function getUserObject(): User
|
public function d3GetUserObject(): User
|
||||||
{
|
{
|
||||||
return oxNew(User::class);
|
return oxNew(User::class);
|
||||||
}
|
}
|
||||||
@ -24,7 +26,7 @@ trait helpersTrait
|
|||||||
/**
|
/**
|
||||||
* @return Webauthn
|
* @return Webauthn
|
||||||
*/
|
*/
|
||||||
public function getWebauthnObject(): Webauthn
|
public function d3GetWebauthnObject(): Webauthn
|
||||||
{
|
{
|
||||||
return oxNew(Webauthn::class);
|
return oxNew(Webauthn::class);
|
||||||
}
|
}
|
||||||
@ -32,7 +34,7 @@ trait helpersTrait
|
|||||||
/**
|
/**
|
||||||
* @return LoggerInterface
|
* @return LoggerInterface
|
||||||
*/
|
*/
|
||||||
public function getLoggerObject(): LoggerInterface
|
public function d3GetLoggerObject(): LoggerInterface
|
||||||
{
|
{
|
||||||
return Registry::getLogger();
|
return Registry::getLogger();
|
||||||
}
|
}
|
||||||
@ -40,7 +42,7 @@ trait helpersTrait
|
|||||||
/**
|
/**
|
||||||
* @return Utils
|
* @return Utils
|
||||||
*/
|
*/
|
||||||
public function getUtilsObject(): Utils
|
public function d3GetUtilsObject(): Utils
|
||||||
{
|
{
|
||||||
return Registry::getUtils();
|
return Registry::getUtils();
|
||||||
}
|
}
|
||||||
@ -48,7 +50,7 @@ trait helpersTrait
|
|||||||
/**
|
/**
|
||||||
* @return UtilsView
|
* @return UtilsView
|
||||||
*/
|
*/
|
||||||
public function getUtilsViewObject(): UtilsView
|
public function d3GetUtilsViewObject(): UtilsView
|
||||||
{
|
{
|
||||||
return Registry::getUtilsView();
|
return Registry::getUtilsView();
|
||||||
}
|
}
|
||||||
@ -56,7 +58,7 @@ trait helpersTrait
|
|||||||
/**
|
/**
|
||||||
* @return PublicKeyCredentialList
|
* @return PublicKeyCredentialList
|
||||||
*/
|
*/
|
||||||
public function getPublicKeyCredentialListObject(): PublicKeyCredentialList
|
public function d3GetPublicKeyCredentialListObject(): PublicKeyCredentialList
|
||||||
{
|
{
|
||||||
return oxNew(PublicKeyCredentialList::class);
|
return oxNew(PublicKeyCredentialList::class);
|
||||||
}
|
}
|
||||||
@ -64,8 +66,24 @@ trait helpersTrait
|
|||||||
/**
|
/**
|
||||||
* @return PublicKeyCredential
|
* @return PublicKeyCredential
|
||||||
*/
|
*/
|
||||||
public function getPublicKeyCredentialObject(): PublicKeyCredential
|
public function d3GetPublicKeyCredentialObject(): PublicKeyCredential
|
||||||
{
|
{
|
||||||
return oxNew(PublicKeyCredential::class);
|
return oxNew(PublicKeyCredential::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Session
|
||||||
|
*/
|
||||||
|
public function d3GetSession(): Session
|
||||||
|
{
|
||||||
|
return Registry::getSession();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return ControllerClassNameResolver
|
||||||
|
*/
|
||||||
|
public function d3GetControllerClassNameResolver(): ControllerClassNameResolver
|
||||||
|
{
|
||||||
|
return Registry::getControllerClassNameResolver();
|
||||||
|
}
|
||||||
}
|
}
|
@ -43,7 +43,7 @@ class d3_account_webauthn extends AccountController
|
|||||||
$sRet = parent::render();
|
$sRet = parent::render();
|
||||||
|
|
||||||
$this->addTplParam('user', $this->getUser());
|
$this->addTplParam('user', $this->getUser());
|
||||||
$this->addTplParam('readonly', !($this->getWebauthnObject()->isAvailable()));
|
$this->addTplParam('readonly', !($this->d3GetWebauthnObject()->isAvailable()));
|
||||||
|
|
||||||
return $sRet;
|
return $sRet;
|
||||||
}
|
}
|
||||||
@ -58,7 +58,7 @@ class d3_account_webauthn extends AccountController
|
|||||||
public function getCredentialList(): PublicKeyCredentialList
|
public function getCredentialList(): PublicKeyCredentialList
|
||||||
{
|
{
|
||||||
$oUser = $this->getUser();
|
$oUser = $this->getUser();
|
||||||
$credentialList = $this->getPublicKeyCredentialListObject();
|
$credentialList = $this->d3GetPublicKeyCredentialListObject();
|
||||||
return $credentialList->getAllFromUser($oUser);
|
return $credentialList->getAllFromUser($oUser);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -75,9 +75,9 @@ class d3_account_webauthn extends AccountController
|
|||||||
$this->setAuthnRegister();
|
$this->setAuthnRegister();
|
||||||
$this->setPageType('requestnew');
|
$this->setPageType('requestnew');
|
||||||
} catch (WebauthnException $e) {
|
} catch (WebauthnException $e) {
|
||||||
$this->getLoggerObject()->error($e->getDetailedErrorMessage(), ['UserId: ' => $this->getUser()->getId()]);
|
$this->d3GetLoggerObject()->error($e->getDetailedErrorMessage(), ['UserId: ' => $this->getUser()->getId()]);
|
||||||
$this->getLoggerObject()->debug($e->getTraceAsString());
|
$this->d3GetLoggerObject()->debug($e->getTraceAsString());
|
||||||
$this->getUtilsViewObject()->addErrorToDisplay($e);
|
$this->d3GetUtilsViewObject()->addErrorToDisplay($e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -100,7 +100,7 @@ class d3_account_webauthn extends AccountController
|
|||||||
*/
|
*/
|
||||||
public function setAuthnRegister(): void
|
public function setAuthnRegister(): void
|
||||||
{
|
{
|
||||||
$publicKeyCredentialCreationOptions = $this->getWebauthnObject()->getCreationOptions($this->getUser());
|
$publicKeyCredentialCreationOptions = $this->d3GetWebauthnObject()->getCreationOptions($this->getUser());
|
||||||
|
|
||||||
$this->addTplParam('webauthn_publickey_create', $publicKeyCredentialCreationOptions);
|
$this->addTplParam('webauthn_publickey_create', $publicKeyCredentialCreationOptions);
|
||||||
$this->addTplParam('isAdmin', isAdmin());
|
$this->addTplParam('isAdmin', isAdmin());
|
||||||
@ -126,11 +126,11 @@ class d3_account_webauthn extends AccountController
|
|||||||
|
|
||||||
$credential = Registry::getRequest()->getRequestEscapedParameter('credential');
|
$credential = Registry::getRequest()->getRequestEscapedParameter('credential');
|
||||||
if (strlen((string) $credential)) {
|
if (strlen((string) $credential)) {
|
||||||
$webauthn = $this->getWebauthnObject();
|
$webauthn = $this->d3GetWebauthnObject();
|
||||||
$webauthn->saveAuthn($credential, Registry::getRequest()->getRequestEscapedParameter('keyname'));
|
$webauthn->saveAuthn($credential, Registry::getRequest()->getRequestEscapedParameter('keyname'));
|
||||||
}
|
}
|
||||||
} catch (WebauthnException $e) {
|
} catch (WebauthnException $e) {
|
||||||
$this->getUtilsViewObject()->addErrorToDisplay( $e );
|
$this->d3GetUtilsViewObject()->addErrorToDisplay( $e );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -141,7 +141,7 @@ class d3_account_webauthn extends AccountController
|
|||||||
{
|
{
|
||||||
$deleteId = Registry::getRequest()->getRequestEscapedParameter('deleteoxid');
|
$deleteId = Registry::getRequest()->getRequestEscapedParameter('deleteoxid');
|
||||||
if ($deleteId) {
|
if ($deleteId) {
|
||||||
$credential = $this->getPublicKeyCredentialObject();
|
$credential = $this->d3GetPublicKeyCredentialObject();
|
||||||
$credential->delete($deleteId);
|
$credential->delete($deleteId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,23 +16,24 @@ declare(strict_types=1);
|
|||||||
namespace D3\Webauthn\Application\Controller;
|
namespace D3\Webauthn\Application\Controller;
|
||||||
|
|
||||||
use D3\TestingTools\Production\IsMockable;
|
use D3\TestingTools\Production\IsMockable;
|
||||||
|
use D3\Webauthn\Application\Controller\Traits\helpersTrait;
|
||||||
|
use D3\Webauthn\Application\Model\Exceptions\WebauthnGetException;
|
||||||
use D3\Webauthn\Application\Model\Webauthn;
|
use D3\Webauthn\Application\Model\Webauthn;
|
||||||
use D3\Webauthn\Application\Model\WebauthnConf;
|
use D3\Webauthn\Application\Model\WebauthnConf;
|
||||||
use D3\Webauthn\Application\Model\Exceptions\WebauthnException;
|
use D3\Webauthn\Application\Model\Exceptions\WebauthnException;
|
||||||
|
use D3\Webauthn\Modules\Application\Model\d3_User_Webauthn;
|
||||||
use Doctrine\DBAL\Driver\Exception as DoctrineDriverException;
|
use Doctrine\DBAL\Driver\Exception as DoctrineDriverException;
|
||||||
use Doctrine\DBAL\Exception as DoctrineException;
|
use Doctrine\DBAL\Exception as DoctrineException;
|
||||||
use OxidEsales\Eshop\Application\Controller\FrontendController;
|
use OxidEsales\Eshop\Application\Controller\FrontendController;
|
||||||
use OxidEsales\Eshop\Core\Registry;
|
use OxidEsales\Eshop\Core\Registry;
|
||||||
use OxidEsales\Eshop\Core\Routing\ControllerClassNameResolver;
|
|
||||||
use OxidEsales\Eshop\Core\Session;
|
|
||||||
use OxidEsales\Eshop\Core\Utils;
|
use OxidEsales\Eshop\Core\Utils;
|
||||||
use Psr\Container\ContainerExceptionInterface;
|
use Psr\Container\ContainerExceptionInterface;
|
||||||
use Psr\Container\NotFoundExceptionInterface;
|
use Psr\Container\NotFoundExceptionInterface;
|
||||||
use Psr\Log\LoggerInterface;
|
|
||||||
|
|
||||||
class d3webauthnlogin extends FrontendController
|
class d3webauthnlogin extends FrontendController
|
||||||
{
|
{
|
||||||
use IsMockable;
|
use IsMockable;
|
||||||
|
use helpersTrait;
|
||||||
|
|
||||||
protected $_sThisTemplate = 'd3webauthnlogin.tpl';
|
protected $_sThisTemplate = 'd3webauthnlogin.tpl';
|
||||||
|
|
||||||
@ -76,7 +77,7 @@ class d3webauthnlogin extends FrontendController
|
|||||||
|
|
||||||
$this->addTplParam('navFormParams', $this->d3GetSession()->getVariable(WebauthnConf::WEBAUTHN_SESSION_NAVFORMPARAMS));
|
$this->addTplParam('navFormParams', $this->d3GetSession()->getVariable(WebauthnConf::WEBAUTHN_SESSION_NAVFORMPARAMS));
|
||||||
|
|
||||||
return parent::render();
|
return $this->d3CallMockableParent('render');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -98,8 +99,8 @@ class d3webauthnlogin extends FrontendController
|
|||||||
$this->addTplParam('isAdmin', isAdmin());
|
$this->addTplParam('isAdmin', isAdmin());
|
||||||
} catch (WebauthnException $e) {
|
} catch (WebauthnException $e) {
|
||||||
$this->d3GetSession()->setVariable(WebauthnConf::GLOBAL_SWITCH, true);
|
$this->d3GetSession()->setVariable(WebauthnConf::GLOBAL_SWITCH, true);
|
||||||
$this->d3GetLogger()->error($e->getDetailedErrorMessage(), ['UserId' => $userId]);
|
$this->d3GetLoggerObject()->error($e->getDetailedErrorMessage(), ['UserId' => $userId]);
|
||||||
$this->d3GetLogger()->debug($e->getTraceAsString());
|
$this->d3GetLoggerObject()->debug($e->getTraceAsString());
|
||||||
Registry::getUtilsView()->addErrorToDisplay($e);
|
Registry::getUtilsView()->addErrorToDisplay($e);
|
||||||
$this->getUtils()->redirect('index.php?cl=start');
|
$this->getUtils()->redirect('index.php?cl=start');
|
||||||
}
|
}
|
||||||
@ -127,7 +128,7 @@ class d3webauthnlogin extends FrontendController
|
|||||||
public function previousClassIsOrderStep(): bool
|
public function previousClassIsOrderStep(): bool
|
||||||
{
|
{
|
||||||
$sClassKey = $this->d3GetSession()->getVariable(WebauthnConf::WEBAUTHN_SESSION_CURRENTCLASS);
|
$sClassKey = $this->d3GetSession()->getVariable(WebauthnConf::WEBAUTHN_SESSION_CURRENTCLASS);
|
||||||
$resolvedClass = $this->getControllerClassNameResolver()->getClassNameById($sClassKey);
|
$resolvedClass = $this->d3GetControllerClassNameResolver()->getClassNameById($sClassKey);
|
||||||
$resolvedClass = $resolvedClass ?: 'start';
|
$resolvedClass = $resolvedClass ?: 'start';
|
||||||
|
|
||||||
/** @var FrontendController $oController */
|
/** @var FrontendController $oController */
|
||||||
@ -144,6 +145,55 @@ class d3webauthnlogin extends FrontendController
|
|||||||
return $this->previousClassIsOrderStep();
|
return $this->previousClassIsOrderStep();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function d3AssertAuthn(): void
|
||||||
|
{
|
||||||
|
/** @var d3_User_Webauthn $user */
|
||||||
|
$user = $this->d3GetUserObject();
|
||||||
|
$userId = $this->d3GetSession()->getVariable(WebauthnConf::WEBAUTHN_SESSION_CURRENTUSER);
|
||||||
|
|
||||||
|
try {
|
||||||
|
$error = Registry::getRequest()->getRequestEscapedParameter('error');
|
||||||
|
if (strlen((string) $error)) {
|
||||||
|
/** @var WebauthnGetException $e */
|
||||||
|
$e = oxNew(WebauthnGetException::class, $error);
|
||||||
|
throw $e;
|
||||||
|
}
|
||||||
|
|
||||||
|
$credential = Registry::getRequest()->getRequestEscapedParameter('credential');
|
||||||
|
if (strlen((string) $credential)) {
|
||||||
|
$webAuthn = $this->d3GetWebauthnObject();
|
||||||
|
$webAuthn->assertAuthn($credential);
|
||||||
|
$user->load($userId);
|
||||||
|
|
||||||
|
// relogin, don't extract from this try block
|
||||||
|
$setSessionCookie = Registry::getRequest()->getRequestParameter('lgn_cook');
|
||||||
|
$this->d3GetSession()->setVariable(WebauthnConf::WEBAUTHN_SESSION_AUTH, $credential);
|
||||||
|
$this->d3GetSession()->setVariable('usr', $user->getId());
|
||||||
|
$this->setUser(null);
|
||||||
|
$this->setLoginStatus(USER_LOGIN_SUCCESS);
|
||||||
|
|
||||||
|
// cookie must be set ?
|
||||||
|
if ($setSessionCookie && Registry::getConfig()->getConfigParam('blShowRememberMe')) {
|
||||||
|
Registry::getUtilsServer()->setUserCookie(
|
||||||
|
$user->oxuser__oxusername->value,
|
||||||
|
$user->oxuser__oxpassword->value,
|
||||||
|
Registry::getConfig()->getShopId()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->_afterLogin($user);
|
||||||
|
}
|
||||||
|
} catch (WebauthnException $e) {
|
||||||
|
$this->d3GetUtilsViewObject()->addErrorToDisplay($e);
|
||||||
|
$this->d3GetLoggerObject()->error($e->getDetailedErrorMessage(), ['UserId' => $userId]);
|
||||||
|
$this->d3GetLoggerObject()->debug($e->getTraceAsString());
|
||||||
|
$user->logout();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
@ -159,36 +209,4 @@ class d3webauthnlogin extends FrontendController
|
|||||||
|
|
||||||
return $aPaths;
|
return $aPaths;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @return Session
|
|
||||||
*/
|
|
||||||
public function d3GetSession(): Session
|
|
||||||
{
|
|
||||||
return Registry::getSession();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return Webauthn
|
|
||||||
*/
|
|
||||||
public function d3GetWebauthnObject(): Webauthn
|
|
||||||
{
|
|
||||||
return oxNew(Webauthn::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return LoggerInterface
|
|
||||||
*/
|
|
||||||
public function d3GetLogger(): LoggerInterface
|
|
||||||
{
|
|
||||||
return Registry::getLogger();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return ControllerClassNameResolver
|
|
||||||
*/
|
|
||||||
public function getControllerClassNameResolver(): ControllerClassNameResolver
|
|
||||||
{
|
|
||||||
return Registry::getControllerClassNameResolver();
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -15,18 +15,14 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace D3\Webauthn\Modules\Application\Component;
|
namespace D3\Webauthn\Modules\Application\Component;
|
||||||
|
|
||||||
use Assert\AssertionFailedException;
|
|
||||||
use D3\Webauthn\Application\Model\Exceptions\WebauthnGetException;
|
|
||||||
use D3\Webauthn\Application\Model\WebauthnConf;
|
use D3\Webauthn\Application\Model\WebauthnConf;
|
||||||
use D3\Webauthn\Application\Model\Webauthn;
|
use D3\Webauthn\Application\Model\Webauthn;
|
||||||
use D3\Webauthn\Application\Model\Exceptions\WebauthnException;
|
|
||||||
use D3\Webauthn\Modules\Application\Model\d3_User_Webauthn;
|
use D3\Webauthn\Modules\Application\Model\d3_User_Webauthn;
|
||||||
use Doctrine\DBAL\Driver\Exception as DoctrineDriverException;
|
use Doctrine\DBAL\Driver\Exception as DoctrineDriverException;
|
||||||
use Doctrine\DBAL\Exception;
|
use Doctrine\DBAL\Exception;
|
||||||
use OxidEsales\Eshop\Application\Model\User;
|
use OxidEsales\Eshop\Application\Model\User;
|
||||||
use OxidEsales\Eshop\Core\Registry;
|
use OxidEsales\Eshop\Core\Registry;
|
||||||
use OxidEsales\Eshop\Core\Session;
|
use OxidEsales\Eshop\Core\Session;
|
||||||
use OxidEsales\Eshop\Core\UtilsView;
|
|
||||||
use Psr\Container\ContainerExceptionInterface;
|
use Psr\Container\ContainerExceptionInterface;
|
||||||
use Psr\Container\NotFoundExceptionInterface;
|
use Psr\Container\NotFoundExceptionInterface;
|
||||||
|
|
||||||
@ -109,55 +105,4 @@ class d3_webauthn_UserComponent extends d3_webauthn_UserComponent_parent
|
|||||||
{
|
{
|
||||||
return Registry::getSession();
|
return Registry::getSession();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function d3AssertAuthn(): void
|
|
||||||
{
|
|
||||||
/** @var d3_User_Webauthn $user */
|
|
||||||
$user = oxNew(User::class);
|
|
||||||
|
|
||||||
try {
|
|
||||||
$error = Registry::getRequest()->getRequestEscapedParameter('error');
|
|
||||||
if (strlen((string) $error)) {
|
|
||||||
/** @var WebauthnGetException $e */
|
|
||||||
$e = oxNew(WebauthnGetException::class, $error);
|
|
||||||
throw $e;
|
|
||||||
}
|
|
||||||
|
|
||||||
$credential = Registry::getRequest()->getRequestEscapedParameter('credential');
|
|
||||||
if (strlen((string) $credential)) {
|
|
||||||
$webAuthn = oxNew( Webauthn::class );
|
|
||||||
$webAuthn->assertAuthn($credential);
|
|
||||||
$user->load(Registry::getSession()->getVariable(WebauthnConf::WEBAUTHN_SESSION_CURRENTUSER));
|
|
||||||
|
|
||||||
// relogin, don't extract from this try block
|
|
||||||
$setSessionCookie = Registry::getRequest()->getRequestParameter('lgn_cook');
|
|
||||||
$this->d3WebauthnGetSession()->setVariable(WebauthnConf::WEBAUTHN_SESSION_AUTH, $credential);
|
|
||||||
$this->d3WebauthnGetSession()->setVariable('usr', $user->getId());
|
|
||||||
$this->setUser(null);
|
|
||||||
$this->setLoginStatus(USER_LOGIN_SUCCESS);
|
|
||||||
|
|
||||||
// cookie must be set ?
|
|
||||||
if ($setSessionCookie && Registry::getConfig()->getConfigParam('blShowRememberMe')) {
|
|
||||||
Registry::getUtilsServer()->setUserCookie(
|
|
||||||
$user->oxuser__oxusername->value,
|
|
||||||
$user->oxuser__oxpassword->value,
|
|
||||||
Registry::getConfig()->getShopId()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->_afterLogin($user);
|
|
||||||
}
|
|
||||||
} catch (WebauthnException $e) {
|
|
||||||
Registry::getUtilsView()->addErrorToDisplay($e);
|
|
||||||
Registry::getLogger()->error(
|
|
||||||
$e->getDetailedErrorMessage(),
|
|
||||||
['UserId' => Registry::getSession()->getVariable(WebauthnConf::WEBAUTHN_SESSION_CURRENTUSER)]
|
|
||||||
);
|
|
||||||
Registry::getLogger()->debug($e->getTraceAsString());
|
|
||||||
$user->logout();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -11,7 +11,7 @@
|
|||||||
* @link https://www.oxidmodule.com
|
* @link https://www.oxidmodule.com
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace D3\Totp\tests\unit\Application\Controller;
|
namespace D3\Webauthn\tests\unit\Application\Controller\Admin;
|
||||||
|
|
||||||
use D3\TestingTools\Development\CanAccessRestricted;
|
use D3\TestingTools\Development\CanAccessRestricted;
|
||||||
use D3\Webauthn\Application\Controller\Admin\d3user_webauthn;
|
use D3\Webauthn\Application\Controller\Admin\d3user_webauthn;
|
||||||
@ -65,16 +65,16 @@ class d3user_webauthnTest extends TestCase
|
|||||||
/** @var d3user_webauthn|MockObject $sutMock */
|
/** @var d3user_webauthn|MockObject $sutMock */
|
||||||
$sutMock = $this->getMockBuilder(d3user_webauthn::class)
|
$sutMock = $this->getMockBuilder(d3user_webauthn::class)
|
||||||
->onlyMethods([
|
->onlyMethods([
|
||||||
'getWebauthnObject',
|
'd3GetWebauthnObject',
|
||||||
'd3CallMockableParent',
|
'd3CallMockableParent',
|
||||||
'getEditObjectId',
|
'getEditObjectId',
|
||||||
'getUserObject'
|
'd3GetUserObject'
|
||||||
])
|
])
|
||||||
->getMock();
|
->getMock();
|
||||||
$sutMock->method('getWebauthnObject')->willReturn($webauthnMock);
|
$sutMock->method('d3GetWebauthnObject')->willReturn($webauthnMock);
|
||||||
$sutMock->method('d3CallMockableParent')->willReturn(true);
|
$sutMock->method('d3CallMockableParent')->willReturn(true);
|
||||||
$sutMock->method('getEditObjectId')->willReturn('editObjectId');
|
$sutMock->method('getEditObjectId')->willReturn('editObjectId');
|
||||||
$sutMock->method('getUserObject')->willReturn($userMock);
|
$sutMock->method('d3GetUserObject')->willReturn($userMock);
|
||||||
|
|
||||||
$this->setValue(
|
$this->setValue(
|
||||||
$sutMock,
|
$sutMock,
|
||||||
@ -130,14 +130,14 @@ class d3user_webauthnTest extends TestCase
|
|||||||
->onlyMethods([
|
->onlyMethods([
|
||||||
'setPageType',
|
'setPageType',
|
||||||
'setAuthnRegister',
|
'setAuthnRegister',
|
||||||
'getLoggerObject',
|
'd3GetLoggerObject',
|
||||||
'getUtilsObject'
|
'd3GetUtilsObject'
|
||||||
])
|
])
|
||||||
->getMock();
|
->getMock();
|
||||||
$sutMock->expects($this->atLeastOnce())->method('setPageType');
|
$sutMock->expects($this->atLeastOnce())->method('setPageType');
|
||||||
$sutMock->expects($this->atLeastOnce())->method('setAuthnRegister');
|
$sutMock->expects($this->atLeastOnce())->method('setAuthnRegister');
|
||||||
$sutMock->expects($this->never())->method('getLoggerObject')->willReturn($loggerMock);
|
$sutMock->expects($this->never())->method('d3GetLoggerObject')->willReturn($loggerMock);
|
||||||
$sutMock->expects($this->never())->method('getUtilsObject')->willReturn($utilsMock);
|
$sutMock->expects($this->never())->method('d3GetUtilsObject')->willReturn($utilsMock);
|
||||||
|
|
||||||
$this->callMethod(
|
$this->callMethod(
|
||||||
$sutMock,
|
$sutMock,
|
||||||
@ -169,14 +169,14 @@ class d3user_webauthnTest extends TestCase
|
|||||||
->onlyMethods([
|
->onlyMethods([
|
||||||
'setPageType',
|
'setPageType',
|
||||||
'setAuthnRegister',
|
'setAuthnRegister',
|
||||||
'getLoggerObject',
|
'd3GetLoggerObject',
|
||||||
'getUtilsObject'
|
'd3GetUtilsObject'
|
||||||
])
|
])
|
||||||
->getMock();
|
->getMock();
|
||||||
$sutMock->expects($this->atLeastOnce())->method('setPageType');
|
$sutMock->expects($this->atLeastOnce())->method('setPageType');
|
||||||
$sutMock->expects($this->atLeastOnce())->method('setAuthnRegister')->willThrowException(oxNew(WebauthnException::class));
|
$sutMock->expects($this->atLeastOnce())->method('setAuthnRegister')->willThrowException(oxNew(WebauthnException::class));
|
||||||
$sutMock->expects($this->atLeastOnce())->method('getLoggerObject')->willReturn($loggerMock);
|
$sutMock->expects($this->atLeastOnce())->method('d3GetLoggerObject')->willReturn($loggerMock);
|
||||||
$sutMock->expects($this->atLeastOnce())->method('getUtilsObject')->willReturn($utilsMock);
|
$sutMock->expects($this->atLeastOnce())->method('d3GetUtilsObject')->willReturn($utilsMock);
|
||||||
|
|
||||||
$this->callMethod(
|
$this->callMethod(
|
||||||
$sutMock,
|
$sutMock,
|
||||||
@ -207,10 +207,10 @@ class d3user_webauthnTest extends TestCase
|
|||||||
|
|
||||||
/** @var d3user_webauthn|MockObject $oControllerMock */
|
/** @var d3user_webauthn|MockObject $oControllerMock */
|
||||||
$oControllerMock = $this->getMockBuilder(d3user_webauthn::class)
|
$oControllerMock = $this->getMockBuilder(d3user_webauthn::class)
|
||||||
->onlyMethods(['getUtilsViewObject', 'getLoggerObject'])
|
->onlyMethods(['d3GetUtilsViewObject', 'd3GetLoggerObject'])
|
||||||
->getMock();
|
->getMock();
|
||||||
$oControllerMock->method('getUtilsViewObject')->willReturn($utilsViewMock);
|
$oControllerMock->method('d3GetUtilsViewObject')->willReturn($utilsViewMock);
|
||||||
$oControllerMock->expects($this->atLeastOnce())->method('getLoggerObject')->willReturn($loggerMock);
|
$oControllerMock->expects($this->atLeastOnce())->method('d3GetLoggerObject')->willReturn($loggerMock);
|
||||||
|
|
||||||
$this->callMethod(
|
$this->callMethod(
|
||||||
$oControllerMock,
|
$oControllerMock,
|
||||||
@ -243,10 +243,10 @@ class d3user_webauthnTest extends TestCase
|
|||||||
|
|
||||||
/** @var d3user_webauthn|MockObject $oControllerMock */
|
/** @var d3user_webauthn|MockObject $oControllerMock */
|
||||||
$oControllerMock = $this->getMockBuilder(d3user_webauthn::class)
|
$oControllerMock = $this->getMockBuilder(d3user_webauthn::class)
|
||||||
->onlyMethods(['getWebauthnObject', 'getUtilsViewObject'])
|
->onlyMethods(['d3GetWebauthnObject', 'd3GetUtilsViewObject'])
|
||||||
->getMock();
|
->getMock();
|
||||||
$oControllerMock->method('getWebauthnObject')->willReturn($webauthnMock);
|
$oControllerMock->method('d3GetWebauthnObject')->willReturn($webauthnMock);
|
||||||
$oControllerMock->method('getUtilsViewObject')->willReturn($utilsViewMock);
|
$oControllerMock->method('d3GetUtilsViewObject')->willReturn($utilsViewMock);
|
||||||
|
|
||||||
$this->callMethod(
|
$this->callMethod(
|
||||||
$oControllerMock,
|
$oControllerMock,
|
||||||
@ -285,11 +285,11 @@ class d3user_webauthnTest extends TestCase
|
|||||||
|
|
||||||
/** @var d3user_webauthn|MockObject $oControllerMock */
|
/** @var d3user_webauthn|MockObject $oControllerMock */
|
||||||
$oControllerMock = $this->getMockBuilder(d3user_webauthn::class)
|
$oControllerMock = $this->getMockBuilder(d3user_webauthn::class)
|
||||||
->onlyMethods(['getWebauthnObject', 'getUtilsViewObject', 'getLoggerObject'])
|
->onlyMethods(['d3GetWebauthnObject', 'd3GetUtilsViewObject', 'd3GetLoggerObject'])
|
||||||
->getMock();
|
->getMock();
|
||||||
$oControllerMock->method('getWebauthnObject')->willReturn($webauthnMock);
|
$oControllerMock->method('d3GetWebauthnObject')->willReturn($webauthnMock);
|
||||||
$oControllerMock->method('getUtilsViewObject')->willReturn($utilsViewMock);
|
$oControllerMock->method('d3GetUtilsViewObject')->willReturn($utilsViewMock);
|
||||||
$oControllerMock->method('getLoggerObject')->willReturn($loggerMock);
|
$oControllerMock->method('d3GetLoggerObject')->willReturn($loggerMock);
|
||||||
|
|
||||||
$this->callMethod(
|
$this->callMethod(
|
||||||
$oControllerMock,
|
$oControllerMock,
|
||||||
@ -339,9 +339,9 @@ class d3user_webauthnTest extends TestCase
|
|||||||
|
|
||||||
/** @var d3user_webauthn|MockObject $oControllerMock */
|
/** @var d3user_webauthn|MockObject $oControllerMock */
|
||||||
$oControllerMock = $this->getMockBuilder(d3user_webauthn::class)
|
$oControllerMock = $this->getMockBuilder(d3user_webauthn::class)
|
||||||
->onlyMethods(['getWebauthnObject', 'addTplParam', 'getUser'])
|
->onlyMethods(['d3GetWebauthnObject', 'addTplParam', 'getUser'])
|
||||||
->getMock();
|
->getMock();
|
||||||
$oControllerMock->method('getWebauthnObject')->willReturn($webAuthnMock);
|
$oControllerMock->method('d3GetWebauthnObject')->willReturn($webAuthnMock);
|
||||||
$oControllerMock->expects($throwExc ? $this->never() : $this->atLeast(3))
|
$oControllerMock->expects($throwExc ? $this->never() : $this->atLeast(3))
|
||||||
->method('addTplParam');
|
->method('addTplParam');
|
||||||
$oControllerMock->method('getUser')->willReturn(oxNew(User::class));
|
$oControllerMock->method('getUser')->willReturn(oxNew(User::class));
|
||||||
@ -391,10 +391,10 @@ class d3user_webauthnTest extends TestCase
|
|||||||
|
|
||||||
/** @var d3user_webauthn|MockObject $oControllerMock */
|
/** @var d3user_webauthn|MockObject $oControllerMock */
|
||||||
$oControllerMock = $this->getMockBuilder(d3user_webauthn::class)
|
$oControllerMock = $this->getMockBuilder(d3user_webauthn::class)
|
||||||
->onlyMethods(['getUserObject', 'getPublicKeyCredentialListObject'])
|
->onlyMethods(['d3GetUserObject', 'd3GetPublicKeyCredentialListObject'])
|
||||||
->getMock();
|
->getMock();
|
||||||
$oControllerMock->method('getUserObject')->willReturn($oUser);
|
$oControllerMock->method('d3GetUserObject')->willReturn($oUser);
|
||||||
$oControllerMock->method('getPublicKeyCredentialListObject')->willReturn($publicKeyCredentialListMock);
|
$oControllerMock->method('d3GetPublicKeyCredentialListObject')->willReturn($publicKeyCredentialListMock);
|
||||||
|
|
||||||
$this->assertIsArray(
|
$this->assertIsArray(
|
||||||
$this->callMethod(
|
$this->callMethod(
|
||||||
@ -409,9 +409,9 @@ class d3user_webauthnTest extends TestCase
|
|||||||
* @test
|
* @test
|
||||||
* @return void
|
* @return void
|
||||||
* @throws ReflectionException
|
* @throws ReflectionException
|
||||||
* @covers \D3\Webauthn\Application\Controller\Admin\d3user_webauthn::getUserObject
|
* @covers \D3\Webauthn\Application\Controller\Admin\d3user_webauthn::d3GetUserObject
|
||||||
*/
|
*/
|
||||||
public function getUserObjectReturnsRightInstance()
|
public function d3GetUserObjectReturnsRightInstance()
|
||||||
{
|
{
|
||||||
/** @var d3user_webauthn $sut */
|
/** @var d3user_webauthn $sut */
|
||||||
$sut = oxNew(d3user_webauthn::class);
|
$sut = oxNew(d3user_webauthn::class);
|
||||||
@ -420,7 +420,7 @@ class d3user_webauthnTest extends TestCase
|
|||||||
User::class,
|
User::class,
|
||||||
$this->callMethod(
|
$this->callMethod(
|
||||||
$sut,
|
$sut,
|
||||||
'getUserObject'
|
'd3GetUserObject'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -445,9 +445,9 @@ class d3user_webauthnTest extends TestCase
|
|||||||
|
|
||||||
/** @var d3user_webauthn|MockObject $oControllerMock */
|
/** @var d3user_webauthn|MockObject $oControllerMock */
|
||||||
$oControllerMock = $this->getMockBuilder(d3user_webauthn::class)
|
$oControllerMock = $this->getMockBuilder(d3user_webauthn::class)
|
||||||
->onlyMethods(['getPublicKeyCredentialObject'])
|
->onlyMethods(['d3GetPublicKeyCredentialObject'])
|
||||||
->getMock();
|
->getMock();
|
||||||
$oControllerMock->method('getPublicKeyCredentialObject')->willReturn($publicKeyCredentialMock);
|
$oControllerMock->method('d3GetPublicKeyCredentialObject')->willReturn($publicKeyCredentialMock);
|
||||||
|
|
||||||
$this->callMethod($oControllerMock, 'deleteKey');
|
$this->callMethod($oControllerMock, 'deleteKey');
|
||||||
}
|
}
|
||||||
@ -466,7 +466,7 @@ class d3user_webauthnTest extends TestCase
|
|||||||
* @test
|
* @test
|
||||||
* @return void
|
* @return void
|
||||||
* @throws ReflectionException
|
* @throws ReflectionException
|
||||||
* @covers \D3\Webauthn\Application\Controller\Admin\d3user_webauthn::getUtilsObject
|
* @covers \D3\Webauthn\Application\Controller\Admin\d3user_webauthn::d3GetUtilsObject
|
||||||
*/
|
*/
|
||||||
public function getUtilsObjectReturnsRightInstance()
|
public function getUtilsObjectReturnsRightInstance()
|
||||||
{
|
{
|
||||||
@ -476,7 +476,7 @@ class d3user_webauthnTest extends TestCase
|
|||||||
Utils::class,
|
Utils::class,
|
||||||
$this->callMethod(
|
$this->callMethod(
|
||||||
$sut,
|
$sut,
|
||||||
'getUtilsObject'
|
'd3GetUtilsObject'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,138 @@
|
|||||||
|
<?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\Webauthn\tests\unit\Application\Controller\Admin;
|
||||||
|
|
||||||
|
use D3\TestingTools\Development\CanAccessRestricted;
|
||||||
|
use D3\Webauthn\Application\Controller\Admin\d3webauthnadminlogin;
|
||||||
|
use D3\Webauthn\tests\unit\Application\Controller\d3webauthnloginTest;
|
||||||
|
use ReflectionException;
|
||||||
|
|
||||||
|
class d3webauthnadminloginTest extends d3webauthnloginTest
|
||||||
|
{
|
||||||
|
use CanAccessRestricted;
|
||||||
|
|
||||||
|
protected $sutClassName = d3webauthnadminlogin::class;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @test
|
||||||
|
* @return void
|
||||||
|
* @throws ReflectionException
|
||||||
|
* @covers \D3\Webauthn\Application\Controller\Admin\d3webauthnadminlogin::_authorize
|
||||||
|
*/
|
||||||
|
public function canAuthorize()
|
||||||
|
{
|
||||||
|
$sut = oxNew(d3webauthnadminlogin::class);
|
||||||
|
|
||||||
|
$this->assertTrue(
|
||||||
|
$this->callMethod(
|
||||||
|
$sut,
|
||||||
|
'_authorize'
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function canGetNavigationParams()
|
||||||
|
{}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @test
|
||||||
|
* @return void
|
||||||
|
* @throws ReflectionException
|
||||||
|
* @covers \D3\Webauthn\Application\Controller\Admin\d3webauthnadminlogin::render
|
||||||
|
* @dataProvider canRenderDataProvider
|
||||||
|
*/
|
||||||
|
public function canRender($auth, $userFromLogin, $startRedirect, $redirectController = 'admin_start')
|
||||||
|
{
|
||||||
|
parent::canRender($auth, $userFromLogin, $startRedirect, 'admin_start');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @test
|
||||||
|
* @return void
|
||||||
|
* @throws ReflectionException
|
||||||
|
* @covers \D3\Webauthn\Application\Controller\Admin\d3webauthnadminlogin::generateCredentialRequest
|
||||||
|
*/
|
||||||
|
public function canGenerateCredentialRequest()
|
||||||
|
{
|
||||||
|
parent::canGenerateCredentialRequest();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @test
|
||||||
|
* @return void
|
||||||
|
* @throws ReflectionException
|
||||||
|
* @covers \D3\Webauthn\Application\Controller\Admin\d3webauthnadminlogin::generateCredentialRequest
|
||||||
|
*/
|
||||||
|
public function generateCredentialRequestFailed($redirectClass = 'login')
|
||||||
|
{
|
||||||
|
parent::generateCredentialRequestFailed($redirectClass);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @test
|
||||||
|
* @return void
|
||||||
|
* @throws ReflectionException
|
||||||
|
* @covers \D3\Webauthn\Application\Controller\Admin\d3webauthnadminlogin::getUtils
|
||||||
|
*/
|
||||||
|
public function getUtilsReturnsRightInstance()
|
||||||
|
{
|
||||||
|
parent::getUtilsReturnsRightInstance();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @test
|
||||||
|
* @return void
|
||||||
|
* @throws ReflectionException
|
||||||
|
* @covers \D3\Webauthn\Application\Controller\Admin\d3webauthnadminlogin::getPreviousClass
|
||||||
|
*/
|
||||||
|
public function canGetPreviousClass()
|
||||||
|
{
|
||||||
|
parent::canGetPreviousClass();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @test
|
||||||
|
* @param $currClass
|
||||||
|
* @param $isOrderStep
|
||||||
|
* @return void
|
||||||
|
* @throws ReflectionException
|
||||||
|
* @covers \D3\Webauthn\Application\Controller\Admin\d3webauthnadminlogin::previousClassIsOrderStep
|
||||||
|
* @dataProvider canPreviousClassIsOrderStepDataProvider
|
||||||
|
*/
|
||||||
|
public function canPreviousClassIsOrderStep($currClass, $isOrderStep)
|
||||||
|
{
|
||||||
|
parent::canPreviousClassIsOrderStep($currClass, $isOrderStep);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @test
|
||||||
|
* @return void
|
||||||
|
* @throws ReflectionException
|
||||||
|
* @covers \D3\Webauthn\Application\Controller\Admin\d3webauthnadminlogin::getIsOrderStep
|
||||||
|
* @dataProvider canGetIsOrderStepDataProvider
|
||||||
|
*/
|
||||||
|
public function canGetIsOrderStep($boolean)
|
||||||
|
{
|
||||||
|
parent::canGetIsOrderStep($boolean);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function canGetBreadCrumb()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
@ -11,7 +11,7 @@
|
|||||||
* @link https://www.oxidmodule.com
|
* @link https://www.oxidmodule.com
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace D3\Totp\tests\unit\Application\Controller;
|
namespace D3\Webauthn\tests\unit\Application\Controller;
|
||||||
|
|
||||||
use D3\TestingTools\Development\CanAccessRestricted;
|
use D3\TestingTools\Development\CanAccessRestricted;
|
||||||
use D3\Webauthn\Application\Controller\d3_account_webauthn;
|
use D3\Webauthn\Application\Controller\d3_account_webauthn;
|
||||||
@ -77,10 +77,10 @@ class d3_account_webauthnTest extends UnitTestCase
|
|||||||
|
|
||||||
/** @var d3_account_webauthn|MockObject $oControllerMock */
|
/** @var d3_account_webauthn|MockObject $oControllerMock */
|
||||||
$oControllerMock = $this->getMockBuilder(d3_account_webauthn::class)
|
$oControllerMock = $this->getMockBuilder(d3_account_webauthn::class)
|
||||||
->onlyMethods(['getUser', 'getWebauthnObject'])
|
->onlyMethods(['getUser', 'd3GetWebauthnObject'])
|
||||||
->getMock();
|
->getMock();
|
||||||
$oControllerMock->method('getUser')->willReturn($oUser);
|
$oControllerMock->method('getUser')->willReturn($oUser);
|
||||||
$oControllerMock->method('getWebauthnObject')->willReturn($webAuthnMock);
|
$oControllerMock->method('d3GetWebauthnObject')->willReturn($webAuthnMock);
|
||||||
|
|
||||||
$this->_oController = $oControllerMock;
|
$this->_oController = $oControllerMock;
|
||||||
|
|
||||||
@ -109,10 +109,10 @@ class d3_account_webauthnTest extends UnitTestCase
|
|||||||
|
|
||||||
/** @var d3_account_webauthn|MockObject $oControllerMock */
|
/** @var d3_account_webauthn|MockObject $oControllerMock */
|
||||||
$oControllerMock = $this->getMockBuilder(d3_account_webauthn::class)
|
$oControllerMock = $this->getMockBuilder(d3_account_webauthn::class)
|
||||||
->onlyMethods(['getUser', 'getWebauthnObject'])
|
->onlyMethods(['getUser', 'd3GetWebauthnObject'])
|
||||||
->getMock();
|
->getMock();
|
||||||
$oControllerMock->method('getUser')->willReturn($oUser);
|
$oControllerMock->method('getUser')->willReturn($oUser);
|
||||||
$oControllerMock->method('getWebauthnObject')->willReturn($webAuthnMock);
|
$oControllerMock->method('d3GetWebauthnObject')->willReturn($webAuthnMock);
|
||||||
|
|
||||||
$this->_oController = $oControllerMock;
|
$this->_oController = $oControllerMock;
|
||||||
|
|
||||||
@ -147,10 +147,10 @@ class d3_account_webauthnTest extends UnitTestCase
|
|||||||
|
|
||||||
/** @var d3_account_webauthn|MockObject $oControllerMock */
|
/** @var d3_account_webauthn|MockObject $oControllerMock */
|
||||||
$oControllerMock = $this->getMockBuilder(d3_account_webauthn::class)
|
$oControllerMock = $this->getMockBuilder(d3_account_webauthn::class)
|
||||||
->onlyMethods(['getUser', 'getPublicKeyCredentialListObject'])
|
->onlyMethods(['getUser', 'd3GetPublicKeyCredentialListObject'])
|
||||||
->getMock();
|
->getMock();
|
||||||
$oControllerMock->method('getUser')->willReturn($oUser);
|
$oControllerMock->method('getUser')->willReturn($oUser);
|
||||||
$oControllerMock->method('getPublicKeyCredentialListObject')->willReturn($publicKeyCredentialListMock);
|
$oControllerMock->method('d3GetPublicKeyCredentialListObject')->willReturn($publicKeyCredentialListMock);
|
||||||
|
|
||||||
$this->_oController = $oControllerMock;
|
$this->_oController = $oControllerMock;
|
||||||
|
|
||||||
@ -186,12 +186,12 @@ class d3_account_webauthnTest extends UnitTestCase
|
|||||||
|
|
||||||
/** @var d3_account_webauthn|MockObject $oControllerMock */
|
/** @var d3_account_webauthn|MockObject $oControllerMock */
|
||||||
$oControllerMock = $this->getMockBuilder(d3_account_webauthn::class)
|
$oControllerMock = $this->getMockBuilder(d3_account_webauthn::class)
|
||||||
->onlyMethods(['setAuthnRegister', 'setPageType', 'getUser', 'getLoggerObject'])
|
->onlyMethods(['setAuthnRegister', 'setPageType', 'getUser', 'd3GetLoggerObject'])
|
||||||
->getMock();
|
->getMock();
|
||||||
$oControllerMock->expects($this->atLeastOnce())->method('setAuthnRegister');
|
$oControllerMock->expects($this->atLeastOnce())->method('setAuthnRegister');
|
||||||
$oControllerMock->expects($this->atLeastOnce())->method('setPageType');
|
$oControllerMock->expects($this->atLeastOnce())->method('setPageType');
|
||||||
$oControllerMock->method('getUser')->willReturn($oUser);
|
$oControllerMock->method('getUser')->willReturn($oUser);
|
||||||
$oControllerMock->method('getLoggerObject')->willReturn($loggerMock);
|
$oControllerMock->method('d3GetLoggerObject')->willReturn($loggerMock);
|
||||||
|
|
||||||
$this->_oController = $oControllerMock;
|
$this->_oController = $oControllerMock;
|
||||||
|
|
||||||
@ -224,13 +224,13 @@ class d3_account_webauthnTest extends UnitTestCase
|
|||||||
|
|
||||||
/** @var d3_account_webauthn|MockObject $oControllerMock */
|
/** @var d3_account_webauthn|MockObject $oControllerMock */
|
||||||
$oControllerMock = $this->getMockBuilder(d3_account_webauthn::class)
|
$oControllerMock = $this->getMockBuilder(d3_account_webauthn::class)
|
||||||
->onlyMethods(['setAuthnRegister', 'setPageType', 'getUser', 'getLoggerObject'])
|
->onlyMethods(['setAuthnRegister', 'setPageType', 'getUser', 'd3GetLoggerObject'])
|
||||||
->getMock();
|
->getMock();
|
||||||
$oControllerMock->expects($this->atLeastOnce())->method('setAuthnRegister')
|
$oControllerMock->expects($this->atLeastOnce())->method('setAuthnRegister')
|
||||||
->willThrowException(oxNew(WebauthnException::class));
|
->willThrowException(oxNew(WebauthnException::class));
|
||||||
$oControllerMock->expects($this->never())->method('setPageType');
|
$oControllerMock->expects($this->never())->method('setPageType');
|
||||||
$oControllerMock->method('getUser')->willReturn($oUser);
|
$oControllerMock->method('getUser')->willReturn($oUser);
|
||||||
$oControllerMock->method('getLoggerObject')->willReturn($loggerMock);
|
$oControllerMock->method('d3GetLoggerObject')->willReturn($loggerMock);
|
||||||
|
|
||||||
$this->_oController = $oControllerMock;
|
$this->_oController = $oControllerMock;
|
||||||
|
|
||||||
@ -262,9 +262,9 @@ class d3_account_webauthnTest extends UnitTestCase
|
|||||||
|
|
||||||
/** @var d3_account_webauthn|MockObject $oControllerMock */
|
/** @var d3_account_webauthn|MockObject $oControllerMock */
|
||||||
$oControllerMock = $this->getMockBuilder(d3_account_webauthn::class)
|
$oControllerMock = $this->getMockBuilder(d3_account_webauthn::class)
|
||||||
->onlyMethods(['getWebauthnObject', 'addTplParam', 'getUser'])
|
->onlyMethods(['d3GetWebauthnObject', 'addTplParam', 'getUser'])
|
||||||
->getMock();
|
->getMock();
|
||||||
$oControllerMock->method('getWebauthnObject')->willReturn($webAuthnMock);
|
$oControllerMock->method('d3GetWebauthnObject')->willReturn($webAuthnMock);
|
||||||
$oControllerMock->expects($throwExc ? $this->never() : $this->atLeast(3))
|
$oControllerMock->expects($throwExc ? $this->never() : $this->atLeast(3))
|
||||||
->method('addTplParam');
|
->method('addTplParam');
|
||||||
$oControllerMock->method('getUser')->willReturn(oxNew(User::class));
|
$oControllerMock->method('getUser')->willReturn(oxNew(User::class));
|
||||||
@ -341,10 +341,10 @@ class d3_account_webauthnTest extends UnitTestCase
|
|||||||
|
|
||||||
/** @var d3_account_webauthn|MockObject $oControllerMock */
|
/** @var d3_account_webauthn|MockObject $oControllerMock */
|
||||||
$oControllerMock = $this->getMockBuilder(d3_account_webauthn::class)
|
$oControllerMock = $this->getMockBuilder(d3_account_webauthn::class)
|
||||||
->onlyMethods(['getUtilsViewObject', 'getLoggerObject'])
|
->onlyMethods(['d3GetUtilsViewObject', 'd3GetLoggerObject'])
|
||||||
->getMock();
|
->getMock();
|
||||||
$oControllerMock->method('getUtilsViewObject')->willReturn($utilsViewMock);
|
$oControllerMock->method('d3GetUtilsViewObject')->willReturn($utilsViewMock);
|
||||||
$oControllerMock->method('getLoggerObject')->willReturn($loggerMock);
|
$oControllerMock->method('d3GetLoggerObject')->willReturn($loggerMock);
|
||||||
|
|
||||||
$this->_oController = $oControllerMock;
|
$this->_oController = $oControllerMock;
|
||||||
|
|
||||||
@ -379,10 +379,10 @@ class d3_account_webauthnTest extends UnitTestCase
|
|||||||
|
|
||||||
/** @var d3_account_webauthn|MockObject $oControllerMock */
|
/** @var d3_account_webauthn|MockObject $oControllerMock */
|
||||||
$oControllerMock = $this->getMockBuilder(d3_account_webauthn::class)
|
$oControllerMock = $this->getMockBuilder(d3_account_webauthn::class)
|
||||||
->onlyMethods(['getWebauthnObject', 'getUtilsViewObject'])
|
->onlyMethods(['d3GetWebauthnObject', 'd3GetUtilsViewObject'])
|
||||||
->getMock();
|
->getMock();
|
||||||
$oControllerMock->method('getWebauthnObject')->willReturn($webauthnMock);
|
$oControllerMock->method('d3GetWebauthnObject')->willReturn($webauthnMock);
|
||||||
$oControllerMock->method('getUtilsViewObject')->willReturn($utilsViewMock);
|
$oControllerMock->method('d3GetUtilsViewObject')->willReturn($utilsViewMock);
|
||||||
|
|
||||||
$this->_oController = $oControllerMock;
|
$this->_oController = $oControllerMock;
|
||||||
|
|
||||||
@ -418,10 +418,10 @@ class d3_account_webauthnTest extends UnitTestCase
|
|||||||
|
|
||||||
/** @var d3_account_webauthn|MockObject $oControllerMock */
|
/** @var d3_account_webauthn|MockObject $oControllerMock */
|
||||||
$oControllerMock = $this->getMockBuilder(d3_account_webauthn::class)
|
$oControllerMock = $this->getMockBuilder(d3_account_webauthn::class)
|
||||||
->onlyMethods(['getWebauthnObject', 'getUtilsViewObject'])
|
->onlyMethods(['d3GetWebauthnObject', 'd3GetUtilsViewObject'])
|
||||||
->getMock();
|
->getMock();
|
||||||
$oControllerMock->method('getWebauthnObject')->willReturn($webauthnMock);
|
$oControllerMock->method('d3GetWebauthnObject')->willReturn($webauthnMock);
|
||||||
$oControllerMock->method('getUtilsViewObject')->willReturn($utilsViewMock);
|
$oControllerMock->method('d3GetUtilsViewObject')->willReturn($utilsViewMock);
|
||||||
|
|
||||||
$this->_oController = $oControllerMock;
|
$this->_oController = $oControllerMock;
|
||||||
|
|
||||||
@ -451,9 +451,9 @@ class d3_account_webauthnTest extends UnitTestCase
|
|||||||
|
|
||||||
/** @var d3_account_webauthn|MockObject $oControllerMock */
|
/** @var d3_account_webauthn|MockObject $oControllerMock */
|
||||||
$oControllerMock = $this->getMockBuilder(d3_account_webauthn::class)
|
$oControllerMock = $this->getMockBuilder(d3_account_webauthn::class)
|
||||||
->onlyMethods(['getPublicKeyCredentialObject'])
|
->onlyMethods(['d3GetPublicKeyCredentialObject'])
|
||||||
->getMock();
|
->getMock();
|
||||||
$oControllerMock->method('getPublicKeyCredentialObject')->willReturn($publicKeyCredentialMock);
|
$oControllerMock->method('d3GetPublicKeyCredentialObject')->willReturn($publicKeyCredentialMock);
|
||||||
|
|
||||||
$this->_oController = $oControllerMock;
|
$this->_oController = $oControllerMock;
|
||||||
|
|
||||||
@ -490,23 +490,7 @@ class d3_account_webauthnTest extends UnitTestCase
|
|||||||
/**
|
/**
|
||||||
* @test
|
* @test
|
||||||
* @throws ReflectionException
|
* @throws ReflectionException
|
||||||
* @covers \D3\Webauthn\Application\Controller\d3_account_webauthn::getWebauthnObject
|
* @covers \D3\Webauthn\Application\Controller\d3_account_webauthn::d3GetPublicKeyCredentialObject
|
||||||
*/
|
|
||||||
public function getWebauthnObjectReturnsRightObject()
|
|
||||||
{
|
|
||||||
$this->assertInstanceOf(
|
|
||||||
Webauthn::class,
|
|
||||||
$this->callMethod(
|
|
||||||
$this->_oController,
|
|
||||||
'getWebauthnObject'
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @test
|
|
||||||
* @throws ReflectionException
|
|
||||||
* @covers \D3\Webauthn\Application\Controller\d3_account_webauthn::getPublicKeyCredentialObject
|
|
||||||
*/
|
*/
|
||||||
public function getPublicKeyCredentialObjectReturnsRightObject()
|
public function getPublicKeyCredentialObjectReturnsRightObject()
|
||||||
{
|
{
|
||||||
@ -514,7 +498,7 @@ class d3_account_webauthnTest extends UnitTestCase
|
|||||||
PublicKeyCredential::class,
|
PublicKeyCredential::class,
|
||||||
$this->callMethod(
|
$this->callMethod(
|
||||||
$this->_oController,
|
$this->_oController,
|
||||||
'getPublicKeyCredentialObject'
|
'd3GetPublicKeyCredentialObject'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -522,7 +506,7 @@ class d3_account_webauthnTest extends UnitTestCase
|
|||||||
/**
|
/**
|
||||||
* @test
|
* @test
|
||||||
* @throws ReflectionException
|
* @throws ReflectionException
|
||||||
* @covers \D3\Webauthn\Application\Controller\d3_account_webauthn::getPublicKeyCredentialListObject
|
* @covers \D3\Webauthn\Application\Controller\d3_account_webauthn::d3GetPublicKeyCredentialListObject
|
||||||
*/
|
*/
|
||||||
public function getPublicKeyCredentialListObjectReturnsRightObject()
|
public function getPublicKeyCredentialListObjectReturnsRightObject()
|
||||||
{
|
{
|
||||||
@ -530,7 +514,7 @@ class d3_account_webauthnTest extends UnitTestCase
|
|||||||
PublicKeyCredentialList::class,
|
PublicKeyCredentialList::class,
|
||||||
$this->callMethod(
|
$this->callMethod(
|
||||||
$this->_oController,
|
$this->_oController,
|
||||||
'getPublicKeyCredentialListObject'
|
'd3GetPublicKeyCredentialListObject'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -538,23 +522,7 @@ class d3_account_webauthnTest extends UnitTestCase
|
|||||||
/**
|
/**
|
||||||
* @test
|
* @test
|
||||||
* @throws ReflectionException
|
* @throws ReflectionException
|
||||||
* @covers \D3\Webauthn\Application\Controller\d3_account_webauthn::getLoggerObject
|
* @covers \D3\Webauthn\Application\Controller\d3_account_webauthn::d3GetUtilsViewObject
|
||||||
*/
|
|
||||||
public function getLoggerObjectReturnsRightObject()
|
|
||||||
{
|
|
||||||
$this->assertInstanceOf(
|
|
||||||
LoggerInterface::class,
|
|
||||||
$this->callMethod(
|
|
||||||
$this->_oController,
|
|
||||||
'getLoggerObject'
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @test
|
|
||||||
* @throws ReflectionException
|
|
||||||
* @covers \D3\Webauthn\Application\Controller\d3_account_webauthn::getUtilsViewObject
|
|
||||||
*/
|
*/
|
||||||
public function getUtilsViewObjectReturnsRightObject()
|
public function getUtilsViewObjectReturnsRightObject()
|
||||||
{
|
{
|
||||||
@ -562,7 +530,7 @@ class d3_account_webauthnTest extends UnitTestCase
|
|||||||
UtilsView::class,
|
UtilsView::class,
|
||||||
$this->callMethod(
|
$this->callMethod(
|
||||||
$this->_oController,
|
$this->_oController,
|
||||||
'getUtilsViewObject'
|
'd3GetUtilsViewObject'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,19 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace D3\Totp\tests\unit\Application\Controller;
|
/**
|
||||||
|
* 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\Webauthn\tests\unit\Application\Controller;
|
||||||
|
|
||||||
use D3\TestingTools\Development\CanAccessRestricted;
|
use D3\TestingTools\Development\CanAccessRestricted;
|
||||||
use D3\Webauthn\Application\Controller\d3webauthnlogin;
|
use D3\Webauthn\Application\Controller\d3webauthnlogin;
|
||||||
@ -19,21 +32,7 @@ class d3webauthnloginTest extends TestCase
|
|||||||
{
|
{
|
||||||
use CanAccessRestricted;
|
use CanAccessRestricted;
|
||||||
|
|
||||||
/** @var d3webauthnlogin */
|
protected $sutClassName = d3webauthnlogin::class;
|
||||||
protected $subjectUnderTest;
|
|
||||||
|
|
||||||
public function setUp(): void
|
|
||||||
{
|
|
||||||
parent::setUp();
|
|
||||||
|
|
||||||
$this->subjectUnderTest = oxNew(d3webauthnlogin::class);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function tearDown(): void
|
|
||||||
{
|
|
||||||
parent::tearDown();
|
|
||||||
unset($this->subjectUnderTest);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @test
|
* @test
|
||||||
@ -52,7 +51,7 @@ class d3webauthnloginTest extends TestCase
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
/** @var d3webauthnlogin|MockObject $sut */
|
/** @var d3webauthnlogin|MockObject $sut */
|
||||||
$sut = $this->getMockBuilder(d3webauthnlogin::class)
|
$sut = $this->getMockBuilder($this->sutClassName)
|
||||||
->onlyMethods(['d3GetSession', 'd3CallMockableParent'])
|
->onlyMethods(['d3GetSession', 'd3CallMockableParent'])
|
||||||
->getMock();
|
->getMock();
|
||||||
$sut->method('d3GetSession')->willReturn($sessionMock);
|
$sut->method('d3GetSession')->willReturn($sessionMock);
|
||||||
@ -81,7 +80,7 @@ class d3webauthnloginTest extends TestCase
|
|||||||
* @covers \D3\Webauthn\Application\Controller\d3webauthnlogin::render
|
* @covers \D3\Webauthn\Application\Controller\d3webauthnlogin::render
|
||||||
* @dataProvider canRenderDataProvider
|
* @dataProvider canRenderDataProvider
|
||||||
*/
|
*/
|
||||||
public function canRender($auth, $userFromLogin, $startRedirect)
|
public function canRender($auth, $userFromLogin, $startRedirect, $redirectController = 'start')
|
||||||
{
|
{
|
||||||
/** @var Session|MockObject $sessionMock */
|
/** @var Session|MockObject $sessionMock */
|
||||||
$sessionMock = $this->getMockBuilder(Session::class)
|
$sessionMock = $this->getMockBuilder(Session::class)
|
||||||
@ -97,23 +96,23 @@ class d3webauthnloginTest extends TestCase
|
|||||||
->onlyMethods(['redirect'])
|
->onlyMethods(['redirect'])
|
||||||
->getMock();
|
->getMock();
|
||||||
$utilsMock->expects($startRedirect ? $this->once() : $this->never())
|
$utilsMock->expects($startRedirect ? $this->once() : $this->never())
|
||||||
->method('redirect')->with('index.php?cl=start')->willReturn(true);
|
->method('redirect')->with('index.php?cl='.$redirectController)->willReturn(true);
|
||||||
|
|
||||||
/** @var d3webauthnlogin|MockObject $sut */
|
/** @var d3webauthnlogin|MockObject $sut */
|
||||||
$sut = $this->getMockBuilder(d3webauthnlogin::class)
|
$sut = $this->getMockBuilder($this->sutClassName)
|
||||||
->onlyMethods(['d3GetSession', 'getUtils', 'd3CallMockableParent',
|
->onlyMethods(['d3GetSession', 'getUtils', 'd3CallMockableParent',
|
||||||
'generateCredentialRequest', 'addTplParam'])
|
'generateCredentialRequest', 'addTplParam'])
|
||||||
->getMock();
|
->getMock();
|
||||||
$sut->method('d3GetSession')->willReturn($sessionMock);
|
$sut->method('d3GetSession')->willReturn($sessionMock);
|
||||||
$sut->method('getUtils')->willReturn($utilsMock);
|
$sut->method('getUtils')->willReturn($utilsMock);
|
||||||
$sut->method('d3CallMockableParent')->willReturn(['defKey1' => 'devValues1']);
|
$sut->method('d3CallMockableParent')->willReturn('myTemplate.tpl');
|
||||||
$sut->expects($startRedirect ? $this->any() : $this->atLeastOnce())
|
$sut->expects($startRedirect ? $this->any() : $this->atLeastOnce())
|
||||||
->method('generateCredentialRequest');
|
->method('generateCredentialRequest');
|
||||||
$sut->expects($startRedirect ? $this->any() : $this->atLeastOnce())
|
$sut->expects($startRedirect ? $this->any() : $this->atLeastOnce())
|
||||||
->method('addTplParam')->with('navFormParams')->willReturn(true);
|
->method('addTplParam')->with('navFormParams')->willReturn(true);
|
||||||
|
|
||||||
$this->assertSame(
|
$this->assertSame(
|
||||||
'd3webauthnlogin.tpl',
|
'myTemplate.tpl',
|
||||||
$this->callMethod(
|
$this->callMethod(
|
||||||
$sut,
|
$sut,
|
||||||
'render'
|
'render'
|
||||||
@ -164,14 +163,14 @@ class d3webauthnloginTest extends TestCase
|
|||||||
->willReturn('success');
|
->willReturn('success');
|
||||||
|
|
||||||
/** @var d3webauthnlogin|MockObject $sut */
|
/** @var d3webauthnlogin|MockObject $sut */
|
||||||
$sut = $this->getMockBuilder(d3webauthnlogin::class)
|
$sut = $this->getMockBuilder($this->sutClassName)
|
||||||
->onlyMethods(['d3GetSession', 'd3GetWebauthnObject', 'addTplParam', 'd3GetLogger'])
|
->onlyMethods(['d3GetSession', 'd3GetWebauthnObject', 'addTplParam', 'd3GetLoggerObject'])
|
||||||
->getMock();
|
->getMock();
|
||||||
$sut->method('d3GetSession')->willReturn($sessionMock);
|
$sut->method('d3GetSession')->willReturn($sessionMock);
|
||||||
$sut->method('d3GetWebauthnObject')->willReturn($webAuthnMock);
|
$sut->method('d3GetWebauthnObject')->willReturn($webAuthnMock);
|
||||||
$sut->expects($this->atLeast(2))
|
$sut->expects($this->atLeast(2))
|
||||||
->method('addTplParam')->willReturn(true);
|
->method('addTplParam')->willReturn(true);
|
||||||
$sut->method('d3GetLogger')->willReturn($loggerMock);
|
$sut->method('d3GetLoggerObject')->willReturn($loggerMock);
|
||||||
|
|
||||||
$this->callMethod(
|
$this->callMethod(
|
||||||
$sut,
|
$sut,
|
||||||
@ -185,7 +184,7 @@ class d3webauthnloginTest extends TestCase
|
|||||||
* @throws ReflectionException
|
* @throws ReflectionException
|
||||||
* @covers \D3\Webauthn\Application\Controller\d3webauthnlogin::generateCredentialRequest
|
* @covers \D3\Webauthn\Application\Controller\d3webauthnlogin::generateCredentialRequest
|
||||||
*/
|
*/
|
||||||
public function generateCredentialRequestFailed()
|
public function generateCredentialRequestFailed($redirectClass = 'start')
|
||||||
{
|
{
|
||||||
$currUserFixture = 'currentUserFixture';
|
$currUserFixture = 'currentUserFixture';
|
||||||
|
|
||||||
@ -216,18 +215,18 @@ class d3webauthnloginTest extends TestCase
|
|||||||
->onlyMethods(['redirect'])
|
->onlyMethods(['redirect'])
|
||||||
->getMock();
|
->getMock();
|
||||||
$utilsMock->expects($this->once())->method('redirect')
|
$utilsMock->expects($this->once())->method('redirect')
|
||||||
->with('index.php?cl=start')->willReturn(true);
|
->with('index.php?cl='.$redirectClass)->willReturn(true);
|
||||||
|
|
||||||
/** @var d3webauthnlogin|MockObject $sut */
|
/** @var d3webauthnlogin|MockObject $sut */
|
||||||
$sut = $this->getMockBuilder(d3webauthnlogin::class)
|
$sut = $this->getMockBuilder($this->sutClassName)
|
||||||
->onlyMethods(['d3GetSession', 'd3GetWebauthnObject', 'addTplParam',
|
->onlyMethods(['d3GetSession', 'd3GetWebauthnObject', 'addTplParam',
|
||||||
'd3GetLogger', 'getUtils'])
|
'd3GetLoggerObject', 'getUtils'])
|
||||||
->getMock();
|
->getMock();
|
||||||
$sut->method('d3GetSession')->willReturn($sessionMock);
|
$sut->method('d3GetSession')->willReturn($sessionMock);
|
||||||
$sut->method('d3GetWebauthnObject')->willReturn($webAuthnMock);
|
$sut->method('d3GetWebauthnObject')->willReturn($webAuthnMock);
|
||||||
$sut->expects($this->never())
|
$sut->expects($this->never())
|
||||||
->method('addTplParam')->willReturn(true);
|
->method('addTplParam')->willReturn(true);
|
||||||
$sut->expects($this->atLeast(2))->method('d3GetLogger')->willReturn($loggerMock);
|
$sut->expects($this->atLeast(2))->method('d3GetLoggerObject')->willReturn($loggerMock);
|
||||||
$sut->method('getUtils')->willReturn($utilsMock);
|
$sut->method('getUtils')->willReturn($utilsMock);
|
||||||
|
|
||||||
$this->callMethod(
|
$this->callMethod(
|
||||||
@ -244,10 +243,12 @@ class d3webauthnloginTest extends TestCase
|
|||||||
*/
|
*/
|
||||||
public function getUtilsReturnsRightInstance()
|
public function getUtilsReturnsRightInstance()
|
||||||
{
|
{
|
||||||
|
$sut = oxNew($this->sutClassName);
|
||||||
|
|
||||||
$this->assertInstanceOf(
|
$this->assertInstanceOf(
|
||||||
Utils::class,
|
Utils::class,
|
||||||
$this->callMethod(
|
$this->callMethod(
|
||||||
$this->subjectUnderTest,
|
$sut,
|
||||||
'getUtils'
|
'getUtils'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -272,7 +273,7 @@ class d3webauthnloginTest extends TestCase
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
/** @var d3webauthnlogin|MockObject $sut */
|
/** @var d3webauthnlogin|MockObject $sut */
|
||||||
$sut = $this->getMockBuilder(d3webauthnlogin::class)
|
$sut = $this->getMockBuilder($this->sutClassName)
|
||||||
->onlyMethods(['d3GetSession'])
|
->onlyMethods(['d3GetSession'])
|
||||||
->getMock();
|
->getMock();
|
||||||
$sut->method('d3GetSession')->willReturn($sessionMock);
|
$sut->method('d3GetSession')->willReturn($sessionMock);
|
||||||
@ -306,7 +307,7 @@ class d3webauthnloginTest extends TestCase
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
/** @var d3webauthnlogin|MockObject $sut */
|
/** @var d3webauthnlogin|MockObject $sut */
|
||||||
$sut = $this->getMockBuilder(d3webauthnlogin::class)
|
$sut = $this->getMockBuilder($this->sutClassName)
|
||||||
->onlyMethods(['d3GetSession'])
|
->onlyMethods(['d3GetSession'])
|
||||||
->getMock();
|
->getMock();
|
||||||
$sut->method('d3GetSession')->willReturn($sessionMock);
|
$sut->method('d3GetSession')->willReturn($sessionMock);
|
||||||
@ -342,7 +343,7 @@ class d3webauthnloginTest extends TestCase
|
|||||||
public function canGetIsOrderStep($boolean)
|
public function canGetIsOrderStep($boolean)
|
||||||
{
|
{
|
||||||
/** @var d3webauthnlogin|MockObject $sut */
|
/** @var d3webauthnlogin|MockObject $sut */
|
||||||
$sut = $this->getMockBuilder(d3webauthnlogin::class)
|
$sut = $this->getMockBuilder($this->sutClassName)
|
||||||
->onlyMethods(['previousClassIsOrderStep'])
|
->onlyMethods(['previousClassIsOrderStep'])
|
||||||
->getMock();
|
->getMock();
|
||||||
$sut->expects($this->atLeastOnce())->method('previousClassIsOrderStep')->willReturn($boolean);
|
$sut->expects($this->atLeastOnce())->method('previousClassIsOrderStep')->willReturn($boolean);
|
||||||
@ -375,9 +376,11 @@ class d3webauthnloginTest extends TestCase
|
|||||||
*/
|
*/
|
||||||
public function canGetBreadCrumb()
|
public function canGetBreadCrumb()
|
||||||
{
|
{
|
||||||
|
$sut = oxNew($this->sutClassName);
|
||||||
|
|
||||||
$this->assertIsArray(
|
$this->assertIsArray(
|
||||||
$this->callMethod(
|
$this->callMethod(
|
||||||
$this->subjectUnderTest,
|
$sut,
|
||||||
'getBreadCrumb'
|
'getBreadCrumb'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -391,10 +394,12 @@ class d3webauthnloginTest extends TestCase
|
|||||||
*/
|
*/
|
||||||
public function canGetSession()
|
public function canGetSession()
|
||||||
{
|
{
|
||||||
|
$sut = oxNew($this->sutClassName);
|
||||||
|
|
||||||
$this->assertInstanceOf(
|
$this->assertInstanceOf(
|
||||||
Session::class,
|
Session::class,
|
||||||
$this->callMethod(
|
$this->callMethod(
|
||||||
$this->subjectUnderTest,
|
$sut,
|
||||||
'd3GetSession'
|
'd3GetSession'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -408,10 +413,12 @@ class d3webauthnloginTest extends TestCase
|
|||||||
*/
|
*/
|
||||||
public function canGetWebauthnObject()
|
public function canGetWebauthnObject()
|
||||||
{
|
{
|
||||||
|
$sut = oxNew($this->sutClassName);
|
||||||
|
|
||||||
$this->assertInstanceOf(
|
$this->assertInstanceOf(
|
||||||
Webauthn::class,
|
Webauthn::class,
|
||||||
$this->callMethod(
|
$this->callMethod(
|
||||||
$this->subjectUnderTest,
|
$sut,
|
||||||
'd3GetWebauthnObject'
|
'd3GetWebauthnObject'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -421,15 +428,17 @@ class d3webauthnloginTest extends TestCase
|
|||||||
* @test
|
* @test
|
||||||
* @return void
|
* @return void
|
||||||
* @throws ReflectionException
|
* @throws ReflectionException
|
||||||
* @covers \D3\Webauthn\Application\Controller\d3webauthnlogin::d3GetLogger
|
* @covers \D3\Webauthn\Application\Controller\d3webauthnlogin::d3GetLoggerObject
|
||||||
*/
|
*/
|
||||||
public function canGetLogger()
|
public function canGetLogger()
|
||||||
{
|
{
|
||||||
|
$sut = oxNew($this->sutClassName);
|
||||||
|
|
||||||
$this->assertInstanceOf(
|
$this->assertInstanceOf(
|
||||||
LoggerInterface::class,
|
LoggerInterface::class,
|
||||||
$this->callMethod(
|
$this->callMethod(
|
||||||
$this->subjectUnderTest,
|
$sut,
|
||||||
'd3GetLogger'
|
'd3GetLoggerObject'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -438,15 +447,17 @@ class d3webauthnloginTest extends TestCase
|
|||||||
* @test
|
* @test
|
||||||
* @return void
|
* @return void
|
||||||
* @throws ReflectionException
|
* @throws ReflectionException
|
||||||
* @covers \D3\Webauthn\Application\Controller\d3webauthnlogin::getControllerClassNameResolver
|
* @covers \D3\Webauthn\Application\Controller\d3webauthnlogin::d3GetControllerClassNameResolver
|
||||||
*/
|
*/
|
||||||
public function canGetClassNameResolver()
|
public function canGetClassNameResolver()
|
||||||
{
|
{
|
||||||
|
$sut = oxNew($this->sutClassName);
|
||||||
|
|
||||||
$this->assertInstanceOf(
|
$this->assertInstanceOf(
|
||||||
ControllerClassNameResolver::class,
|
ControllerClassNameResolver::class,
|
||||||
$this->callMethod(
|
$this->callMethod(
|
||||||
$this->subjectUnderTest,
|
$sut,
|
||||||
'getControllerClassNameResolver'
|
'd3GetControllerClassNameResolver'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user