2 changed files with 98 additions and 3 deletions
@ -0,0 +1,86 @@ |
|||
<?php |
|||
namespace LAM\LIB\TWO_FACTOR; |
|||
use LAM\LOGIN\WEBAUTHN\WebauthnManager; |
|||
use PHPUnit\Framework\TestCase; |
|||
|
|||
/* |
|||
This code is part of LDAP Account Manager (http://www.ldap-account-manager.org/) |
|||
Copyright (C) 2020 Roland Gruber |
|||
|
|||
This program is free software; you can redistribute it and/or modify |
|||
it under the terms of the GNU General Public License as published by |
|||
the Free Software Foundation; either version 2 of the License, or |
|||
(at your option) any later version. |
|||
|
|||
This program is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
GNU General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU General Public License |
|||
along with this program; if not, write to the Free Software |
|||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|||
*/ |
|||
|
|||
require_once __DIR__ . '/../../lib/modules.inc'; |
|||
require_once __DIR__ . '/../../lib/2factor.inc'; |
|||
|
|||
/** |
|||
* Tests the webauthn provider. |
|||
* |
|||
* @author Roland Gruber |
|||
*/ |
|||
class WebauthnProviderTest extends TestCase { |
|||
|
|||
/** |
|||
* @var TwoFactorConfiguration |
|||
*/ |
|||
private $config; |
|||
|
|||
protected function setUp() { |
|||
$this->config = new TwoFactorConfiguration(); |
|||
} |
|||
|
|||
public function test_getSerials() { |
|||
$provider = new WebauthnProvider($this->config); |
|||
|
|||
$this->assertNotEmpty($provider->getSerials('user', 'password')); |
|||
} |
|||
|
|||
public function test_isShowSubmitButton() { |
|||
$provider = new WebauthnProvider($this->config); |
|||
|
|||
$this->assertFalse($provider->isShowSubmitButton()); |
|||
} |
|||
|
|||
public function test_hasCustomInputForm() { |
|||
$provider = new WebauthnProvider($this->config); |
|||
|
|||
$this->assertTrue($provider->hasCustomInputForm()); |
|||
} |
|||
|
|||
public function test_addCustomInput() { |
|||
$this->config->twoFactorAuthenticationOptional = true; |
|||
$manager = $this |
|||
->getMockBuilder(WebauthnManager::class) |
|||
->setMethods(array('isRegistered')) |
|||
->getMock(); |
|||
$manager->method('isRegistered')->willReturn(false); |
|||
$provider = $this |
|||
->getMockBuilder(WebauthnProvider::class) |
|||
->setConstructorArgs(array($this->config)) |
|||
->setMethods(array('getWebauthnManager')) |
|||
->getMock(); |
|||
$provider->method('getWebauthnManager')->willReturn($manager); |
|||
$row = new \htmlResponsiveRow(); |
|||
|
|||
$provider->addCustomInput($row, 'userDn'); |
|||
$tabindex = 0; |
|||
ob_start(); |
|||
$row->generateHTML(null, array(), array(), false, $tabindex, 'none'); |
|||
$html = ob_get_contents(); |
|||
ob_end_clean(); |
|||
$this->assertContains('skip_webauthn', $html); |
|||
} |
|||
|
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue