* Fix wrong type hint Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Use $this instead of parent Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * setUp should be a protected method Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * onNotSuccessfulTest should be protected Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * $command doesn't need to be a property Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Give alertText() proper return type Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Use null-safe operator Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Call Message static constructors statically Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Call StorageEngine methods statically Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Add better type hints in PrivilegesController Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Use packed (without keys) arrays in tests Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Use type casts instead of function casts Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Use const instead of private property Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Use const instead of private property Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Fix testAuthFailsTooLongPass() Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Replace loop with array_shift Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Use ob_get_clean Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Remove duplicated code Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> * Use assert instead of phpdoc Signed-off-by: Kamil Tekiela <tekiela246@gmail.com> --------- Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
92 lines
3.0 KiB
PHP
92 lines
3.0 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace PhpMyAdmin\Tests;
|
|
|
|
use PhpMyAdmin\Cache;
|
|
use PHPUnit\Framework\Attributes\CoversClass;
|
|
use PHPUnit\Framework\Attributes\DataProvider;
|
|
use stdClass;
|
|
|
|
#[CoversClass(Cache::class)]
|
|
class CacheTest extends AbstractTestCase
|
|
{
|
|
protected function setUp(): void
|
|
{
|
|
Cache::purge();
|
|
}
|
|
|
|
/** @return mixed[][] */
|
|
public static function dataProviderCacheKeyValues(): array
|
|
{
|
|
return [
|
|
'normal key and false value' => ['mykey', false],
|
|
'normal key and null value' => ['mykey', null],
|
|
'normal key and object value' => ['mykey', new stdClass()],
|
|
];
|
|
}
|
|
|
|
#[DataProvider('dataProviderCacheKeyValues')]
|
|
public function testCacheHas(string $cacheKey, mixed $valueToCache): void
|
|
{
|
|
self::assertFalse(Cache::has($cacheKey));
|
|
Cache::set($cacheKey, $valueToCache);
|
|
self::assertTrue(Cache::has($cacheKey));
|
|
Cache::remove($cacheKey);
|
|
self::assertFalse(Cache::has($cacheKey));
|
|
}
|
|
|
|
#[DataProvider('dataProviderCacheKeyValues')]
|
|
public function testCachePurge(string $cacheKey, mixed $valueToCache): void
|
|
{
|
|
self::assertFalse(Cache::has($cacheKey));
|
|
Cache::set($cacheKey, $valueToCache);
|
|
self::assertTrue(Cache::has($cacheKey));
|
|
Cache::purge();
|
|
self::assertFalse(Cache::has($cacheKey));
|
|
}
|
|
|
|
#[DataProvider('dataProviderCacheKeyValues')]
|
|
public function testCacheSet(string $cacheKey, mixed $valueToCache): void
|
|
{
|
|
self::assertFalse(Cache::has($cacheKey));
|
|
Cache::set($cacheKey, $valueToCache);
|
|
self::assertTrue(Cache::has($cacheKey));
|
|
}
|
|
|
|
#[DataProvider('dataProviderCacheKeyValues')]
|
|
public function testCacheGet(string $cacheKey, mixed $valueToCache): void
|
|
{
|
|
self::assertFalse(Cache::has($cacheKey));
|
|
Cache::set($cacheKey, $valueToCache);
|
|
self::assertTrue(Cache::has($cacheKey));
|
|
self::assertSame(Cache::get($cacheKey), $valueToCache);
|
|
}
|
|
|
|
#[DataProvider('dataProviderCacheKeyValues')]
|
|
public function testCacheGetDefaultValue(string $cacheKey, mixed $valueToCache): void
|
|
{
|
|
self::assertFalse(Cache::has($cacheKey));
|
|
Cache::set($cacheKey, $valueToCache);
|
|
self::assertTrue(Cache::has($cacheKey));
|
|
self::assertSame(Cache::get($cacheKey, null), $valueToCache);
|
|
Cache::remove($cacheKey);
|
|
self::assertFalse(Cache::has($cacheKey));
|
|
self::assertNull(Cache::get($cacheKey, null));
|
|
$defaultValue = new stdClass();
|
|
self::assertSame($defaultValue, Cache::get($cacheKey, $defaultValue));
|
|
self::assertFalse(Cache::get($cacheKey, false));
|
|
}
|
|
|
|
#[DataProvider('dataProviderCacheKeyValues')]
|
|
public function testCacheRemove(string $cacheKey, mixed $valueToCache): void
|
|
{
|
|
self::assertFalse(Cache::has($cacheKey));
|
|
Cache::set($cacheKey, $valueToCache);
|
|
self::assertTrue(Cache::has($cacheKey));
|
|
Cache::remove($cacheKey);
|
|
self::assertFalse(Cache::has($cacheKey));
|
|
}
|
|
}
|