35 lines
914 B
PHP
35 lines
914 B
PHP
<?php
|
|
|
|
use App\Models\RememberTokenModel;
|
|
use CodeIgniter\Test\CIUnitTestCase;
|
|
use CodeIgniter\Test\DatabaseTestTrait;
|
|
|
|
/**
|
|
* @internal
|
|
*/
|
|
final class RememberTokenModelTest extends CIUnitTestCase
|
|
{
|
|
use DatabaseTestTrait;
|
|
|
|
protected $namespace = 'App';
|
|
protected $refresh = true;
|
|
|
|
public function testTokensRemainIndependentAcrossDevices(): void
|
|
{
|
|
$model = new RememberTokenModel();
|
|
$first = $model->issueToken();
|
|
$second = $model->issueToken();
|
|
|
|
$this->assertTrue($model->verifyToken($first));
|
|
$this->assertTrue($model->verifyToken($second));
|
|
|
|
$tampered = substr($first, 0, -1) . (str_ends_with($first, '0') ? '1' : '0');
|
|
$this->assertFalse($model->verifyToken($tampered));
|
|
|
|
$model->deleteToken($first);
|
|
|
|
$this->assertFalse($model->verifyToken($first));
|
|
$this->assertTrue($model->verifyToken($second));
|
|
}
|
|
}
|