Merge branch 'dev_1.x_frontend' into dev_1.x_frontend_620
This commit is contained in:
commit
4bd06dde16
@ -18,7 +18,6 @@ namespace D3\Totp\Application\Model;
|
|||||||
use BaconQrCode\Renderer\Image\Svg;
|
use BaconQrCode\Renderer\Image\Svg;
|
||||||
use BaconQrCode\Renderer\RendererInterface;
|
use BaconQrCode\Renderer\RendererInterface;
|
||||||
use BaconQrCode\Writer;
|
use BaconQrCode\Writer;
|
||||||
use D3\ModCfg\Application\Model\d3database;
|
|
||||||
use D3\Totp\Application\Model\Exceptions\d3totp_wrongOtpException;
|
use D3\Totp\Application\Model\Exceptions\d3totp_wrongOtpException;
|
||||||
use Doctrine\DBAL\DBALException;
|
use Doctrine\DBAL\DBALException;
|
||||||
use OTPHP\TOTP;
|
use OTPHP\TOTP;
|
||||||
@ -53,23 +52,15 @@ class d3totp extends BaseModel
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $userId
|
* @param $userId
|
||||||
* @throws DBALException
|
|
||||||
* @throws DatabaseConnectionException
|
* @throws DatabaseConnectionException
|
||||||
*/
|
*/
|
||||||
public function loadByUserId($userId)
|
public function loadByUserId($userId)
|
||||||
{
|
{
|
||||||
$this->userId = $userId;
|
$this->userId = $userId;
|
||||||
//$oQB = d3database::getInstance()->getQueryBuilder();
|
|
||||||
$oDb = $this->d3GetDb();
|
$oDb = $this->d3GetDb();
|
||||||
|
|
||||||
if ($oDb->getOne("SHOW TABLES LIKE '".$this->tableName."'")) {
|
if ($oDb->getOne("SHOW TABLES LIKE '".$this->tableName."'")) {
|
||||||
$query = "SELECT oxid FROM ".$this->getViewName().' WHERE oxuserid = '.$oDb->quote($userId).' LIMIT 1';
|
$query = "SELECT oxid FROM ".$this->getViewName().' WHERE oxuserid = '.$oDb->quote($userId).' LIMIT 1';
|
||||||
/*$oQB->select('oxid')
|
|
||||||
->from($this->getViewName())
|
|
||||||
->where("oxuserid = " . $oQB->createNamedParameter($userId))
|
|
||||||
->setMaxResults(1);
|
|
||||||
*/
|
|
||||||
//$this->load($oDb->getOne($oQB->getSQL(), $oQB->getParameters()));
|
|
||||||
$this->load($oDb->getOne($query));
|
$this->load($oDb->getOne($query));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -34,8 +34,6 @@ class d3_totp_user extends d3_totp_user_parent
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @return d3totp
|
* @return d3totp
|
||||||
* @throws DatabaseConnectionException
|
|
||||||
* @throws DBALException
|
|
||||||
*/
|
*/
|
||||||
public function d3getTotp()
|
public function d3getTotp()
|
||||||
{
|
{
|
||||||
|
@ -28,6 +28,7 @@ use OxidEsales\Eshop\Core\Exception\SystemComponentException;
|
|||||||
class Events
|
class Events
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
|
* @codeCoverageIgnore
|
||||||
* @throws d3ShopCompatibilityAdapterException
|
* @throws d3ShopCompatibilityAdapterException
|
||||||
* @throws DBALException
|
* @throws DBALException
|
||||||
* @throws DatabaseConnectionException
|
* @throws DatabaseConnectionException
|
||||||
@ -42,6 +43,9 @@ class Events
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @codeCoverageIgnore
|
||||||
|
*/
|
||||||
public static function onDeactivate()
|
public static function onDeactivate()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,7 @@ namespace D3\Totp\Setup;
|
|||||||
use D3\ModCfg\Application\Model\d3database;
|
use D3\ModCfg\Application\Model\d3database;
|
||||||
use D3\ModCfg\Application\Model\Install\d3install_updatebase;
|
use D3\ModCfg\Application\Model\Install\d3install_updatebase;
|
||||||
use Doctrine\DBAL\DBALException;
|
use Doctrine\DBAL\DBALException;
|
||||||
|
use OxidEsales\Eshop\Core\Database\Adapter\DatabaseInterface;
|
||||||
use OxidEsales\Eshop\Core\DatabaseProvider;
|
use OxidEsales\Eshop\Core\DatabaseProvider;
|
||||||
use OxidEsales\Eshop\Core\Exception\ConnectionException;
|
use OxidEsales\Eshop\Core\Exception\ConnectionException;
|
||||||
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
|
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
|
||||||
@ -257,7 +258,16 @@ class Installation extends d3install_updatebase
|
|||||||
{
|
{
|
||||||
$query = "SELECT 1 FROM " . getViewName('oxseo') . " WHERE oxstdurl = 'index.php?cl=d3_account_totp'";
|
$query = "SELECT 1 FROM " . getViewName('oxseo') . " WHERE oxstdurl = 'index.php?cl=d3_account_totp'";
|
||||||
|
|
||||||
return !DatabaseProvider::getDb()->getOne($query);
|
return !$this->d3GetDb()->getOne($query);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return DatabaseInterface
|
||||||
|
* @throws DatabaseConnectionException
|
||||||
|
*/
|
||||||
|
public function d3GetDb()
|
||||||
|
{
|
||||||
|
return DatabaseProvider::getDb();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -19,15 +19,12 @@ namespace D3\Totp\tests\unit\Application\Model;
|
|||||||
|
|
||||||
use BaconQrCode\Renderer\Image\Svg;
|
use BaconQrCode\Renderer\Image\Svg;
|
||||||
use BaconQrCode\Writer;
|
use BaconQrCode\Writer;
|
||||||
use D3\Totp\Application\Model\d3backupcode;
|
|
||||||
use D3\Totp\Application\Model\d3backupcodelist;
|
use D3\Totp\Application\Model\d3backupcodelist;
|
||||||
use D3\Totp\Application\Model\d3totp;
|
use D3\Totp\Application\Model\d3totp;
|
||||||
use D3\Totp\Application\Model\Exceptions\d3totp_wrongOtpException;
|
use D3\Totp\Application\Model\Exceptions\d3totp_wrongOtpException;
|
||||||
use D3\Totp\tests\unit\d3TotpUnitTestCase;
|
use D3\Totp\tests\unit\d3TotpUnitTestCase;
|
||||||
use OTPHP\TOTP;
|
use OTPHP\TOTP;
|
||||||
use OxidEsales\Eshop\Application\Controller\FrontendController;
|
|
||||||
use OxidEsales\Eshop\Application\Model\User;
|
use OxidEsales\Eshop\Application\Model\User;
|
||||||
use OxidEsales\Eshop\Core\Config;
|
|
||||||
use OxidEsales\Eshop\Core\Database\Adapter\Doctrine\Database;
|
use OxidEsales\Eshop\Core\Database\Adapter\Doctrine\Database;
|
||||||
use OxidEsales\Eshop\Core\Registry;
|
use OxidEsales\Eshop\Core\Registry;
|
||||||
use PHPUnit_Framework_MockObject_MockObject;
|
use PHPUnit_Framework_MockObject_MockObject;
|
||||||
@ -105,9 +102,11 @@ class d3totpTest extends d3TotpUnitTestCase
|
|||||||
{
|
{
|
||||||
/** @var Database|PHPUnit_Framework_MockObject_MockObject $oDbMock */
|
/** @var Database|PHPUnit_Framework_MockObject_MockObject $oDbMock */
|
||||||
$oDbMock = $this->getMock(Database::class, array(
|
$oDbMock = $this->getMock(Database::class, array(
|
||||||
'getOne'
|
'getOne',
|
||||||
|
'quote'
|
||||||
), array(), '', false);
|
), array(), '', false);
|
||||||
$oDbMock->expects($this->exactly(2))->method('getOne')->willReturnOnConsecutiveCalls(true, true);
|
$oDbMock->expects($this->exactly(2))->method('getOne')->willReturnOnConsecutiveCalls(true, true);
|
||||||
|
$oDbMock->method('quote')->willReturn(true);
|
||||||
|
|
||||||
/** @var d3totp|PHPUnit_Framework_MockObject_MockObject $oModelMock */
|
/** @var d3totp|PHPUnit_Framework_MockObject_MockObject $oModelMock */
|
||||||
$oModelMock = $this->getMock(d3totp::class, array(
|
$oModelMock = $this->getMock(d3totp::class, array(
|
||||||
|
228
src/tests/unit/Setup/InstallationTest.php
Normal file
228
src/tests/unit/Setup/InstallationTest.php
Normal file
@ -0,0 +1,228 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This Software is the property of Data Development and is protected
|
||||||
|
* by copyright law - it is NOT Freeware.
|
||||||
|
*
|
||||||
|
* Any unauthorized use of this software without a valid license
|
||||||
|
* is a violation of the license agreement and will be prosecuted by
|
||||||
|
* civil and criminal law.
|
||||||
|
*
|
||||||
|
* http://www.shopmodule.com
|
||||||
|
*
|
||||||
|
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||||||
|
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
|
||||||
|
* @link http://www.oxidmodule.com
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace D3\Totp\tests\unit\Setup;
|
||||||
|
|
||||||
|
use D3\Totp\Setup\Installation;
|
||||||
|
use D3\Totp\tests\unit\d3TotpUnitTestCase;
|
||||||
|
use OxidEsales\Eshop\Core\Database\Adapter\Doctrine\Database;
|
||||||
|
use PHPUnit_Framework_MockObject_MockObject;
|
||||||
|
use ReflectionException;
|
||||||
|
|
||||||
|
class InstallationTest extends d3TotpUnitTestCase
|
||||||
|
{
|
||||||
|
/** @var Installation */
|
||||||
|
protected $_oModel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* setup basic requirements
|
||||||
|
*/
|
||||||
|
public function setUp()
|
||||||
|
{
|
||||||
|
parent::setUp();
|
||||||
|
|
||||||
|
$this->_oModel = oxNew(Installation::class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function tearDown()
|
||||||
|
{
|
||||||
|
parent::tearDown();
|
||||||
|
|
||||||
|
unset($this->_oModel);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @test
|
||||||
|
* @throws ReflectionException
|
||||||
|
*/
|
||||||
|
public function doesTotpTableNotExistCallCheckMethod()
|
||||||
|
{
|
||||||
|
/** @var Installation|PHPUnit_Framework_MockObject_MockObject $oModelMock */
|
||||||
|
$oModelMock = $this->getMock(Installation::class, array(
|
||||||
|
'_checkTableNotExist',
|
||||||
|
));
|
||||||
|
$oModelMock->expects($this->once())->method('_checkTableNotExist')->with('d3totp')->willReturn('testReturn');
|
||||||
|
|
||||||
|
$this->_oModel = $oModelMock;
|
||||||
|
|
||||||
|
$this->assertSame(
|
||||||
|
'testReturn',
|
||||||
|
$this->callMethod($this->_oModel, 'doesTotpTableNotExist')
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @test
|
||||||
|
* @throws ReflectionException
|
||||||
|
*/
|
||||||
|
public function addTotpTableNotExistingTable()
|
||||||
|
{
|
||||||
|
/** @var Installation|PHPUnit_Framework_MockObject_MockObject $oModelMock */
|
||||||
|
$oModelMock = $this->getMock(Installation::class, array(
|
||||||
|
'doesTotpTableNotExist',
|
||||||
|
'_addTable2',
|
||||||
|
));
|
||||||
|
$oModelMock->method('doesTotpTableNotExist')->willReturn(true);
|
||||||
|
$oModelMock->expects($this->once())->method('_addTable2')->willReturn('testReturn');
|
||||||
|
|
||||||
|
$this->_oModel = $oModelMock;
|
||||||
|
|
||||||
|
$this->assertSame(
|
||||||
|
'testReturn',
|
||||||
|
$this->callMethod($this->_oModel, 'addTotpTable')
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @test
|
||||||
|
* @throws ReflectionException
|
||||||
|
*/
|
||||||
|
public function addTotpTableExistingTable()
|
||||||
|
{
|
||||||
|
/** @var Installation|PHPUnit_Framework_MockObject_MockObject $oModelMock */
|
||||||
|
$oModelMock = $this->getMock(Installation::class, array(
|
||||||
|
'doesTotpTableNotExist',
|
||||||
|
'_addTable2',
|
||||||
|
));
|
||||||
|
$oModelMock->method('doesTotpTableNotExist')->willReturn(false);
|
||||||
|
$oModelMock->expects($this->never())->method('_addTable2')->willReturn('testReturn');
|
||||||
|
|
||||||
|
$this->_oModel = $oModelMock;
|
||||||
|
|
||||||
|
$this->assertFalse(
|
||||||
|
$this->callMethod($this->_oModel, 'addTotpTable')
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @test
|
||||||
|
* @throws ReflectionException
|
||||||
|
*/
|
||||||
|
public function doesTotpBCTableNotExistCallCheckMethod()
|
||||||
|
{
|
||||||
|
/** @var Installation|PHPUnit_Framework_MockObject_MockObject $oModelMock */
|
||||||
|
$oModelMock = $this->getMock(Installation::class, array(
|
||||||
|
'_checkTableNotExist',
|
||||||
|
));
|
||||||
|
$oModelMock->expects($this->once())->method('_checkTableNotExist')->with('d3totp_backupcodes')->willReturn('testReturn');
|
||||||
|
|
||||||
|
$this->_oModel = $oModelMock;
|
||||||
|
|
||||||
|
$this->assertSame(
|
||||||
|
'testReturn',
|
||||||
|
$this->callMethod($this->_oModel, 'doesTotpBCTableNotExist')
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @test
|
||||||
|
* @throws ReflectionException
|
||||||
|
*/
|
||||||
|
public function addTotpBCTableNotExistingTable()
|
||||||
|
{
|
||||||
|
/** @var Installation|PHPUnit_Framework_MockObject_MockObject $oModelMock */
|
||||||
|
$oModelMock = $this->getMock(Installation::class, array(
|
||||||
|
'doesTotpBCTableNotExist',
|
||||||
|
'_addTable2',
|
||||||
|
));
|
||||||
|
$oModelMock->method('doesTotpBCTableNotExist')->willReturn(true);
|
||||||
|
$oModelMock->expects($this->once())->method('_addTable2')->willReturn('testReturn');
|
||||||
|
|
||||||
|
$this->_oModel = $oModelMock;
|
||||||
|
|
||||||
|
$this->assertSame(
|
||||||
|
'testReturn',
|
||||||
|
$this->callMethod($this->_oModel, 'addTotpBCTable')
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @test
|
||||||
|
* @throws ReflectionException
|
||||||
|
*/
|
||||||
|
public function addTotpBCTableExistingTable()
|
||||||
|
{
|
||||||
|
/** @var Installation|PHPUnit_Framework_MockObject_MockObject $oModelMock */
|
||||||
|
$oModelMock = $this->getMock(Installation::class, array(
|
||||||
|
'doesTotpBCTableNotExist',
|
||||||
|
'_addTable2',
|
||||||
|
));
|
||||||
|
$oModelMock->method('doesTotpBCTableNotExist')->willReturn(false);
|
||||||
|
$oModelMock->expects($this->never())->method('_addTable2')->willReturn('testReturn');
|
||||||
|
|
||||||
|
$this->_oModel = $oModelMock;
|
||||||
|
|
||||||
|
$this->assertFalse(
|
||||||
|
$this->callMethod($this->_oModel, 'addTotpBCTable')
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @test
|
||||||
|
* @throws ReflectionException
|
||||||
|
*/
|
||||||
|
public function d3GetDbReturnsRightInstance()
|
||||||
|
{
|
||||||
|
$this->assertInstanceOf(
|
||||||
|
Database::class,
|
||||||
|
$this->callMethod($this->_oModel, 'd3GetDb')
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @test
|
||||||
|
* @throws ReflectionException
|
||||||
|
*/
|
||||||
|
public function checkSEONotExistsPass()
|
||||||
|
{
|
||||||
|
/** @var Database|PHPUnit_Framework_MockObject_MockObject $oDbMock */
|
||||||
|
$oDbMock = $this->getMock(Database::class, array(
|
||||||
|
'getOne'
|
||||||
|
), array(), '', false);
|
||||||
|
$oDbMock->expects($this->once())->method('getOne')->willReturn(true);
|
||||||
|
|
||||||
|
/** @var Installation|PHPUnit_Framework_MockObject_MockObject $oModelMock */
|
||||||
|
$oModelMock = $this->getMock(Installation::class, array(
|
||||||
|
'd3GetDb'
|
||||||
|
));
|
||||||
|
$oModelMock->method('d3GetDb')->willReturn($oDbMock);
|
||||||
|
|
||||||
|
$this->_oModel = $oModelMock;
|
||||||
|
|
||||||
|
$this->assertFalse($this->callMethod($this->_oModel, 'checkSEONotExists'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @test
|
||||||
|
* @throws ReflectionException
|
||||||
|
*/
|
||||||
|
public function addSEOPass()
|
||||||
|
{
|
||||||
|
/** @var Installation|PHPUnit_Framework_MockObject_MockObject $oModelMock */
|
||||||
|
$oModelMock = $this->getMock(Installation::class, array(
|
||||||
|
'_executeMultipleQueries'
|
||||||
|
));
|
||||||
|
$oModelMock->expects($this->once())->method('_executeMultipleQueries')->willReturn('testReturn');
|
||||||
|
|
||||||
|
$this->_oModel = $oModelMock;
|
||||||
|
|
||||||
|
$this->assertSame(
|
||||||
|
'testReturn',
|
||||||
|
$this->callMethod($this->_oModel, 'addSEO')
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user