Files
DomFramework/Tests/CsrfTest.php
2022-11-25 21:21:30 +01:00

103 lines
2.4 KiB
PHP

<?php
/** DomFramework - Tests
* @package domframework
* @author Dominique Fournier <dominique@fournier38.fr>
* @license BSD
*/
namespace Domframework\Tests;
use Domframework\Csrf;
/** Test the Csrf.php file */
class CsrfTest extends \PHPUnit_Framework_TestCase
{
public function test_csrf1()
{
$csrf = new Csrf();
$res = $csrf->createToken();
$GLOBALS["CSRFTEST-Token"] = $res;
$this->assertSame(30, strlen($res));
}
public function test_csrf2()
{
$csrf = new Csrf();
$res = $csrf->createToken();
$this->assertSame(
strspn(
$res,
"abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"
),
strlen($res)
);
}
public function test_csrf3()
{
$csrf = new Csrf();
$this->setExpectedException("Exception");
$res = $csrf->checkToken("NOT VALID TOKEN");
}
public function test_csrf4()
{
$csrf = new Csrf();
$token = $csrf->createToken();
$res = $csrf->checkToken($token);
$this->assertSame(true, $res);
}
public function test_csrf5()
{
$csrf = new Csrf();
$token = $csrf->createToken();
$res = $csrf->extendToken($token);
$this->assertSame(true, $res);
}
public function test_csrf6()
{
$csrf = new Csrf();
$token = $csrf->createToken();
$res = $csrf->getToken();
$this->assertSame($token, $res);
}
public function test_csrf7()
{
$csrf = new Csrf();
$res = $csrf->getToken();
$this->assertSame(30, strlen($res));
}
public function test_csrf_multiple_1()
{
$csrf1 = new Csrf();
$token1 = $csrf1->createToken();
$csrf2 = new Csrf();
$token2 = $csrf2->createToken();
$this->assertSame(
true,
$csrf2->checkToken($token1) && $csrf2->checkToken($token2)
);
}
public function test_csrf_multiple_extend_2()
{
$csrf = new Csrf();
$res = $csrf->extendToken($GLOBALS["CSRFTEST-Token"]);
$this->assertSame(true, $res);
}
public function test_csrf_multiple_get()
{
$csrf1 = new Csrf();
$token1 = $csrf1->createToken();
$csrf2 = new Csrf();
$token2 = $csrf2->getToken();
$this->assertSame($token1, $token2);
}
}