Source of file YubikeyLoginHandlerTest.php
Size: 3,340 Bytes - Last Modified: 2021-12-24T06:47:50+00:00
/var/www/docs.ssmods.com/process/src/tests/unit/YubikeyLoginHandlerTest.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 | <?php /** * Created by PhpStorm. * User: simon * Date: 05-May-18 * Time: 15:47 */ namespace Firesphere\YubiAuth\Tests; use Firesphere\BootstrapMFA\Authenticators\BootstrapMFAAuthenticator; use Firesphere\YubiAuth\Authenticators\YubikeyMemberAuthenticator; use Firesphere\YubiAuth\Forms\YubikeyForm; use Firesphere\YubiAuth\Forms\YubikeyLoginForm; use Firesphere\YubiAuth\Handlers\YubikeyLoginHandler; use SilverStripe\Control\HTTPRequest; use SilverStripe\Control\Session; use SilverStripe\Core\Injector\Injector; use SilverStripe\Dev\SapphireTest; use SilverStripe\Security\Security; class YubikeyLoginHandlerTest extends SapphireTest { protected static $fixture_file = '../fixtures/Member.yml'; /** * @var YubikeyLoginHandler */ protected $handler; public function testLoginForm() { $form = $this->handler->LoginForm(); $this->assertInstanceOf(YubikeyLoginForm::class, $form); } public function testSecondFactor() { $result = $this->handler->secondFactor(); $this->assertTrue(is_array($result)); $this->assertInstanceOf(YubikeyForm::class, $result['Form']); } public function testYubikeyForm() { $this->assertInstanceOf(YubikeyForm::class, $this->handler->yubikeyForm()); } public function testMFAForm() { $mfaForm = $this->handler->MFAForm(); $this->assertInstanceOf(YubikeyForm::class, $mfaForm); } public function testDoLoginBackURL() { $backURL = '/blablabla'; $request = new HTTPRequest('POST', '/'); $request->setSession(new Session(['hi' => 'bye'])); $this->handler->setRequest($request); $form = Injector::inst()->get( YubikeyLoginForm::class, true, [$this->handler, YubikeyMemberAuthenticator::class, ''] ); $response = $this->handler->doLogin( [ 'Email' => 'admin@silverstripe.com', 'Password' => 'password', 'BackURL' => $backURL ], $form, $request ); $data = $request->getSession()->get(BootstrapMFAAuthenticator::SESSION_KEY); $this->assertEquals($backURL, $data['BackURL']); $this->assertEquals($backURL, $data['Data']['BackURL']); } public function testDoLoginUnsuccessful() { $request = new HTTPRequest('POST', Security::login_url()); $request->setSession(new Session(['hi' => 'bye'])); $this->handler->setRequest($request); $form = Injector::inst()->get( YubikeyLoginForm::class, true, [$this->handler, YubikeyMemberAuthenticator::class, ''] ); $response = $this->handler->doLogin( [ 'Email' => 'admin@silverstripe.com', 'Password' => 'incorrect', ], $form, $request ); $this->assertContains('login', $response->getHeader('location')); } protected function setUp() { $this->handler = Injector::inst()->createWithArgs( YubikeyLoginHandler::class, [Security::login_url(), new YubikeyMemberAuthenticator()] ); return parent::setUp(); // TODO: Change the autogenerated stub } } |