Merge pull request #18322 from kamil-tekiela/Memoize-Relation
Memoize Relation
This commit is contained in:
commit
5837fb699f
@ -57,6 +57,9 @@ use const SQL_DIR;
|
||||
*/
|
||||
class Relation
|
||||
{
|
||||
/** @var RelationParameters[] $cache */
|
||||
private static array $cache = [];
|
||||
|
||||
public function __construct(public DatabaseInterface $dbi)
|
||||
{
|
||||
}
|
||||
@ -65,6 +68,10 @@ class Relation
|
||||
{
|
||||
$server = $GLOBALS['server'];
|
||||
|
||||
if (isset(self::$cache[$server])) {
|
||||
return self::$cache[$server];
|
||||
}
|
||||
|
||||
if (! isset($_SESSION['relation']) || ! is_array($_SESSION['relation'])) {
|
||||
$_SESSION['relation'] = [];
|
||||
}
|
||||
@ -74,13 +81,15 @@ class Relation
|
||||
&& isset($_SESSION['relation'][$server]['version'])
|
||||
&& $_SESSION['relation'][$server]['version'] === Version::VERSION
|
||||
) {
|
||||
return RelationParameters::fromArray($_SESSION['relation'][$server]);
|
||||
self::$cache[$server] = RelationParameters::fromArray($_SESSION['relation'][$server]);
|
||||
|
||||
return self::$cache[$server];
|
||||
}
|
||||
|
||||
$relationParameters = RelationParameters::fromArray($this->checkRelationsParam());
|
||||
$_SESSION['relation'][$server] = $relationParameters->toArray();
|
||||
self::$cache[$server] = RelationParameters::fromArray($this->checkRelationsParam());
|
||||
$_SESSION['relation'][$server] = self::$cache[$server]->toArray();
|
||||
|
||||
return $relationParameters;
|
||||
return self::$cache[$server];
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1501,6 +1510,7 @@ class Relation
|
||||
// This is the case when the DB could be created but no tables just after
|
||||
// So just purge the cache and show the new configuration storage state
|
||||
unset($_SESSION['relation'][$GLOBALS['server']]);
|
||||
unset(self::$cache[$GLOBALS['server']]);
|
||||
$this->getRelationParameters();
|
||||
|
||||
return true;
|
||||
@ -1620,6 +1630,7 @@ class Relation
|
||||
|
||||
$GLOBALS['cfg']['Server']['pmadb'] = $db;
|
||||
unset($_SESSION['relation'][$GLOBALS['server']]);
|
||||
unset(self::$cache[$GLOBALS['server']]);
|
||||
|
||||
$relationParameters = $this->getRelationParameters();
|
||||
if (
|
||||
|
||||
@ -6,6 +6,7 @@ namespace PhpMyAdmin\Tests;
|
||||
|
||||
use PhpMyAdmin\Cache;
|
||||
use PhpMyAdmin\Config;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Core;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Dbal\DbiExtension;
|
||||
@ -82,6 +83,8 @@ abstract class AbstractTestCase extends TestCase
|
||||
// Config before DBI
|
||||
$this->setGlobalConfig();
|
||||
Cache::purge();
|
||||
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue([]);
|
||||
}
|
||||
|
||||
protected function loadContainerBuilder(): void
|
||||
|
||||
@ -9,6 +9,7 @@ use PhpMyAdmin\ConfigStorage\RelationParameters;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Tests\AbstractTestCase;
|
||||
use PhpMyAdmin\Tests\Stubs\DummyResult;
|
||||
use ReflectionClass;
|
||||
|
||||
use function implode;
|
||||
|
||||
@ -236,6 +237,7 @@ class RelationTest extends AbstractTestCase
|
||||
$dummyDbi->addSelectDb('db_pma');
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue([]);
|
||||
|
||||
$relation->fixPmaTables('db_pma', false);
|
||||
|
||||
@ -513,6 +515,7 @@ class RelationTest extends AbstractTestCase
|
||||
$this->assertSame('', $GLOBALS['cfg']['Server']['pmadb']);
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue([]);
|
||||
|
||||
$relation->fixPmaTables('db_pma', true);
|
||||
$this->assertArrayNotHasKey('message', $GLOBALS);
|
||||
@ -799,6 +802,7 @@ class RelationTest extends AbstractTestCase
|
||||
$this->assertSame('db_pma', $GLOBALS['cfg']['Server']['pmadb']);
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue([]);
|
||||
|
||||
$dummyDbi->addSelectDb('db_pma');
|
||||
$dummyDbi->addSelectDb('db_pma');
|
||||
@ -877,6 +881,7 @@ class RelationTest extends AbstractTestCase
|
||||
$this->assertSame('', $GLOBALS['cfg']['Server']['pmadb']);
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue([]);
|
||||
|
||||
$relation->fixPmaTables('db_pma', true);
|
||||
|
||||
@ -1441,6 +1446,7 @@ class RelationTest extends AbstractTestCase
|
||||
);
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue([]);
|
||||
|
||||
$relation = new Relation($dbi);
|
||||
$relation->initRelationParamsCache();
|
||||
@ -1510,6 +1516,7 @@ class RelationTest extends AbstractTestCase
|
||||
);
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue([]);
|
||||
|
||||
$dummyDbi->addSelectDb('phpmyadmin');
|
||||
$relation = new Relation($dbi);
|
||||
@ -1601,6 +1608,7 @@ class RelationTest extends AbstractTestCase
|
||||
$dummyDbi->addResult('SELECT NULL FROM `pma__userconfig` LIMIT 0', false);
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue([]);
|
||||
|
||||
$dummyDbi->addSelectDb('phpmyadmin');
|
||||
$relation = new Relation($dbi);
|
||||
@ -1697,6 +1705,7 @@ class RelationTest extends AbstractTestCase
|
||||
$dummyDbi->addSelectDb('PMA-storage');
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue([]);
|
||||
|
||||
$relation = new Relation($dbi);
|
||||
$relation->initRelationParamsCache();
|
||||
@ -1726,6 +1735,7 @@ class RelationTest extends AbstractTestCase
|
||||
$dummyDbi->addSelectDb('PMA-storage');
|
||||
/** @psalm-suppress EmptyArrayAccess */
|
||||
unset($_SESSION['relation'][$GLOBALS['server']]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue([]);
|
||||
$relationData = $relation->getRelationParameters();
|
||||
$dummyDbi->assertAllSelectsConsumed();
|
||||
|
||||
@ -1777,8 +1787,10 @@ class RelationTest extends AbstractTestCase
|
||||
$relation = new Relation($dbi);
|
||||
|
||||
$GLOBALS['server'] = 1;
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray($params)->toArray();
|
||||
$relationParameters = RelationParameters::fromArray($params);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
foreach ($queries as $query) {
|
||||
$dummyDbi->addResult($query, []);
|
||||
@ -1839,14 +1851,16 @@ class RelationTest extends AbstractTestCase
|
||||
$relation = new Relation($dbi);
|
||||
|
||||
$GLOBALS['server'] = 1;
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'user' => 'user',
|
||||
'db' => 'pma`db',
|
||||
'pdfwork' => true,
|
||||
'pdf_pages' => 'pdf_pages',
|
||||
'table_coords' => 'table`coords',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
$dummyDbi->addResult(
|
||||
'UPDATE `pma``db`.`table``coords` SET db_name = \'db\\\'1\', table_name = \'table\\\'2\''
|
||||
|
||||
@ -4,12 +4,14 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Tests\Controllers\Console\Bookmark;
|
||||
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\ConfigStorage\RelationParameters;
|
||||
use PhpMyAdmin\Controllers\Console\Bookmark\AddController;
|
||||
use PhpMyAdmin\Http\ServerRequest;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Tests\AbstractTestCase;
|
||||
use PhpMyAdmin\Tests\Stubs\ResponseRenderer;
|
||||
use ReflectionClass;
|
||||
|
||||
/** @covers \PhpMyAdmin\Controllers\Console\Bookmark\AddController */
|
||||
class AddControllerTest extends AbstractTestCase
|
||||
@ -34,7 +36,7 @@ class AddControllerTest extends AbstractTestCase
|
||||
public function testWithoutRelationParameters(): void
|
||||
{
|
||||
$GLOBALS['cfg']['Server']['user'] = 'user';
|
||||
$_SESSION['relation'] = [];
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue([]);
|
||||
$dbi = $this->createDatabaseInterface();
|
||||
$GLOBALS['dbi'] = $dbi;
|
||||
$response = new ResponseRenderer();
|
||||
@ -54,13 +56,15 @@ class AddControllerTest extends AbstractTestCase
|
||||
{
|
||||
$GLOBALS['cfg']['Server']['user'] = 'test_user';
|
||||
$GLOBALS['server'] = 1;
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'user' => 'test_user',
|
||||
'db' => 'pmadb',
|
||||
'bookmarkwork' => true,
|
||||
'bookmark' => 'bookmark',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
$dbiDummy = $this->createDbiDummy();
|
||||
// phpcs:ignore Generic.Files.LineLength.TooLong
|
||||
|
||||
@ -15,6 +15,7 @@ use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Tests\AbstractTestCase;
|
||||
use PhpMyAdmin\Tests\Stubs\DbiDummy;
|
||||
use PhpMyAdmin\Tests\Stubs\ResponseRenderer;
|
||||
use ReflectionClass;
|
||||
|
||||
/** @covers \PhpMyAdmin\Controllers\Export\Template\CreateController */
|
||||
class CreateControllerTest extends AbstractTestCase
|
||||
@ -37,12 +38,14 @@ class CreateControllerTest extends AbstractTestCase
|
||||
$GLOBALS['server'] = 1;
|
||||
$GLOBALS['text_dir'] = 'ltr';
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'exporttemplateswork' => true,
|
||||
'db' => 'db',
|
||||
'export_templates' => 'table',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
$GLOBALS['cfg']['Server']['user'] = 'user';
|
||||
|
||||
|
||||
@ -14,6 +14,7 @@ use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Tests\AbstractTestCase;
|
||||
use PhpMyAdmin\Tests\Stubs\DbiDummy;
|
||||
use PhpMyAdmin\Tests\Stubs\ResponseRenderer;
|
||||
use ReflectionClass;
|
||||
|
||||
/** @covers \PhpMyAdmin\Controllers\Export\Template\LoadController */
|
||||
class LoadControllerTest extends AbstractTestCase
|
||||
@ -36,12 +37,14 @@ class LoadControllerTest extends AbstractTestCase
|
||||
$GLOBALS['server'] = 1;
|
||||
$GLOBALS['text_dir'] = 'ltr';
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'exporttemplateswork' => true,
|
||||
'db' => 'db',
|
||||
'export_templates' => 'table',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
$GLOBALS['cfg']['Server']['user'] = 'user';
|
||||
|
||||
|
||||
@ -4,6 +4,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Tests\Controllers\Table;
|
||||
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\Controllers\Sql\SqlController;
|
||||
use PhpMyAdmin\Controllers\Table\RecentFavoriteController;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
@ -13,6 +14,7 @@ use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Tests\AbstractTestCase;
|
||||
use PhpMyAdmin\Tests\Stubs\DbiDummy;
|
||||
use PhpMyAdmin\Tests\Stubs\ResponseRenderer;
|
||||
use ReflectionClass;
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
|
||||
/**
|
||||
@ -41,7 +43,7 @@ class RecentFavoriteControllerTest extends AbstractTestCase
|
||||
$GLOBALS['text_dir'] = 'ltr';
|
||||
$_REQUEST['db'] = 'test_db';
|
||||
$_REQUEST['table'] = 'test_table';
|
||||
$_SESSION['relation'] = [];
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue([]);
|
||||
|
||||
$_SESSION['tmpval'] = [];
|
||||
$_SESSION['tmpval']['recentTables'][2] = [['db' => 'test_db', 'table' => 'test_table']];
|
||||
@ -72,7 +74,7 @@ class RecentFavoriteControllerTest extends AbstractTestCase
|
||||
$GLOBALS['text_dir'] = 'ltr';
|
||||
$_REQUEST['db'] = 'invalid_db';
|
||||
$_REQUEST['table'] = 'invalid_table';
|
||||
$_SESSION['relation'] = [];
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue([]);
|
||||
|
||||
$_SESSION['tmpval'] = [];
|
||||
$_SESSION['tmpval']['recentTables'][2] = [['db' => 'invalid_db', 'table' => 'invalid_table']];
|
||||
|
||||
@ -22,6 +22,7 @@ use PhpMyAdmin\Tests\AbstractTestCase;
|
||||
use PhpMyAdmin\Tests\Stubs\DbiDummy;
|
||||
use PhpMyAdmin\Tests\Stubs\ResponseRenderer;
|
||||
use PhpMyAdmin\Transformations;
|
||||
use ReflectionClass;
|
||||
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
||||
|
||||
/** @covers \PhpMyAdmin\Controllers\Table\ReplaceController */
|
||||
@ -46,8 +47,7 @@ class ReplaceControllerTest extends AbstractTestCase
|
||||
$GLOBALS['cfg']['Server']['user'] = 'user';
|
||||
$GLOBALS['cfg']['Server']['DisableIS'] = false;
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'table_coords' => 'table_name',
|
||||
'displaywork' => true,
|
||||
'db' => 'information_schema',
|
||||
@ -62,7 +62,10 @@ class ReplaceControllerTest extends AbstractTestCase
|
||||
'bookmark' => 'bookmark',
|
||||
'uiprefswork' => true,
|
||||
'table_uiprefs' => 'table_uiprefs',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
}
|
||||
|
||||
public function testReplace(): void
|
||||
|
||||
@ -16,6 +16,7 @@ use PhpMyAdmin\Tests\Stubs\DbiDummy;
|
||||
use PhpMyAdmin\Tests\Stubs\ResponseRenderer;
|
||||
use PhpMyAdmin\Transformations;
|
||||
use PhpMyAdmin\Util;
|
||||
use ReflectionClass;
|
||||
|
||||
/** @covers \PhpMyAdmin\Controllers\Table\StructureController */
|
||||
class StructureControllerTest extends AbstractTestCase
|
||||
@ -44,7 +45,7 @@ class StructureControllerTest extends AbstractTestCase
|
||||
$GLOBALS['cfg']['Server']['DisableIS'] = true;
|
||||
$GLOBALS['cfg']['ShowStats'] = false;
|
||||
$GLOBALS['cfg']['ShowPropertyComments'] = false;
|
||||
$_SESSION['relation'] = [];
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue([]);
|
||||
|
||||
$this->dummyDbi->addSelectDb('test_db');
|
||||
$this->dummyDbi->addSelectDb('test_db');
|
||||
|
||||
@ -4,6 +4,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Tests\Database;
|
||||
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\ConfigStorage\RelationParameters;
|
||||
use PhpMyAdmin\Database\CentralColumns;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
@ -11,6 +12,7 @@ use PhpMyAdmin\Dbal\Connection;
|
||||
use PhpMyAdmin\Tests\AbstractTestCase;
|
||||
use PhpMyAdmin\Tests\Stubs\DummyResult;
|
||||
use PhpMyAdmin\Types;
|
||||
use ReflectionClass;
|
||||
|
||||
use function array_slice;
|
||||
|
||||
@ -108,14 +110,16 @@ class CentralColumnsTest extends AbstractTestCase
|
||||
$GLOBALS['table'] = 'PMA_table';
|
||||
|
||||
$GLOBALS['server'] = 1;
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'centralcolumnswork' => true,
|
||||
'relwork' => true,
|
||||
'db' => 'phpmyadmin',
|
||||
'relation' => 'relation',
|
||||
'central_columns' => 'pma_central_columns',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
// mock DBI
|
||||
$dbi = $this->getMockBuilder(DatabaseInterface::class)
|
||||
|
||||
@ -13,6 +13,7 @@ use PhpMyAdmin\Tests\AbstractTestCase;
|
||||
use PhpMyAdmin\Tests\Stubs\DbiDummy;
|
||||
use PhpMyAdmin\Tests\Stubs\DummyResult;
|
||||
use PhpMyAdmin\Version;
|
||||
use ReflectionClass;
|
||||
|
||||
use function sprintf;
|
||||
|
||||
@ -349,11 +350,13 @@ class CommonTest extends AbstractTestCase
|
||||
{
|
||||
$GLOBALS['cfg']['Server']['DisableIS'] = false;
|
||||
$GLOBALS['cfg']['NaturalOrder'] = false;
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'db' => 'pmadb',
|
||||
'relation' => 'rel db',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
$this->dummyDbi = $this->createDbiDummy();
|
||||
$this->dbi = $this->createDatabaseInterface($this->dummyDbi);
|
||||
@ -371,12 +374,14 @@ class CommonTest extends AbstractTestCase
|
||||
{
|
||||
$GLOBALS['cfg']['Server']['DisableIS'] = false;
|
||||
$GLOBALS['cfg']['NaturalOrder'] = false;
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'db' => 'pmadb',
|
||||
'relwork' => true,
|
||||
'relation' => 'rel db',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
$this->dummyDbi = $this->createDbiDummy();
|
||||
$this->dbi = $this->createDatabaseInterface($this->dummyDbi);
|
||||
@ -413,12 +418,14 @@ class CommonTest extends AbstractTestCase
|
||||
{
|
||||
$GLOBALS['cfg']['Server']['DisableIS'] = false;
|
||||
$GLOBALS['cfg']['NaturalOrder'] = false;
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'db' => 'pmadb',
|
||||
'relwork' => true,
|
||||
'relation' => 'rel db',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
$this->dummyDbi = $this->createDbiDummy();
|
||||
$this->dbi = $this->createDatabaseInterface($this->dummyDbi);
|
||||
@ -475,12 +482,14 @@ class CommonTest extends AbstractTestCase
|
||||
{
|
||||
$GLOBALS['cfg']['Server']['DisableIS'] = false;
|
||||
$GLOBALS['cfg']['NaturalOrder'] = false;
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'db' => 'pmadb',
|
||||
'relwork' => true,
|
||||
'relation' => 'rel db',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
$this->dummyDbi = $this->createDbiDummy();
|
||||
$this->dbi = $this->createDatabaseInterface($this->dummyDbi);
|
||||
|
||||
@ -4,6 +4,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Tests\Display;
|
||||
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\ConfigStorage\RelationParameters;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Display\DeleteLinkEnum;
|
||||
@ -22,6 +23,7 @@ use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Tests\AbstractTestCase;
|
||||
use PhpMyAdmin\Tests\Stubs\DbiDummy;
|
||||
use PhpMyAdmin\Transformations;
|
||||
use ReflectionClass;
|
||||
use stdClass;
|
||||
|
||||
use function count;
|
||||
@ -654,12 +656,14 @@ class ResultsTest extends AbstractTestCase
|
||||
{
|
||||
// Fake relation settings
|
||||
$_SESSION['tmpval']['relational_display'] = 'K';
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'db' => 'db',
|
||||
'mimework' => true,
|
||||
'column_info' => 'column_info',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
$GLOBALS['cfg']['BrowseMIME'] = true;
|
||||
|
||||
// Basic data
|
||||
|
||||
@ -4,12 +4,14 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Tests\Navigation\Nodes;
|
||||
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\ConfigStorage\RelationParameters;
|
||||
use PhpMyAdmin\Navigation\Nodes\NodeDatabase;
|
||||
use PhpMyAdmin\Navigation\Nodes\NodeDatabaseChild;
|
||||
use PhpMyAdmin\Tests\AbstractTestCase;
|
||||
use PhpMyAdmin\Url;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
use ReflectionClass;
|
||||
|
||||
/**
|
||||
* @covers \PhpMyAdmin\Navigation\Nodes\NodeDatabaseChild
|
||||
@ -39,12 +41,14 @@ class NodeDatabaseChildTest extends AbstractTestCase
|
||||
$GLOBALS['cfg']['DefaultTabDatabase'] = 'structure';
|
||||
$GLOBALS['server'] = 1;
|
||||
$GLOBALS['cfg']['ServerDefault'] = 1;
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'db' => 'pmadb',
|
||||
'navwork' => true,
|
||||
'navigationhiding' => 'navigationhiding',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
$this->object = $this->getMockForAbstractClass(
|
||||
NodeDatabaseChild::class,
|
||||
['child'],
|
||||
|
||||
@ -19,6 +19,7 @@ use PhpMyAdmin\Tests\AbstractTestCase;
|
||||
use PhpMyAdmin\Tests\Stubs\DbiDummy;
|
||||
use PhpMyAdmin\Tests\Stubs\DummyResult;
|
||||
use PhpMyAdmin\Transformations;
|
||||
use ReflectionClass;
|
||||
use ReflectionMethod;
|
||||
use ReflectionProperty;
|
||||
|
||||
@ -421,15 +422,17 @@ class ExportHtmlwordTest extends AbstractTestCase
|
||||
->with($columns, ['name1'])
|
||||
->will($this->returnValue('1'));
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'relwork' => true,
|
||||
'commwork' => true,
|
||||
'mimework' => true,
|
||||
'db' => 'database',
|
||||
'relation' => 'rel',
|
||||
'column_info' => 'col',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
$result = $this->object->getTableDef('database', '', true, true, true);
|
||||
|
||||
@ -490,15 +493,17 @@ class ExportHtmlwordTest extends AbstractTestCase
|
||||
$GLOBALS['dbi'] = $dbi;
|
||||
$this->object->relation = new Relation($dbi);
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'relwork' => true,
|
||||
'commwork' => true,
|
||||
'mimework' => true,
|
||||
'db' => 'database',
|
||||
'relation' => 'rel',
|
||||
'column_info' => 'col',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
$result = $this->object->getTableDef('database', '', true, true, true);
|
||||
|
||||
@ -532,12 +537,14 @@ class ExportHtmlwordTest extends AbstractTestCase
|
||||
|
||||
$GLOBALS['dbi'] = $dbi;
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'db' => 'database',
|
||||
'relation' => 'rel',
|
||||
'column_info' => 'col',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
$result = $this->object->getTableDef('database', '', false, false, false);
|
||||
|
||||
|
||||
@ -18,6 +18,7 @@ use PhpMyAdmin\Properties\Plugins\ExportPluginProperties;
|
||||
use PhpMyAdmin\Tests\AbstractTestCase;
|
||||
use PhpMyAdmin\Tests\Stubs\DummyResult;
|
||||
use PhpMyAdmin\Transformations;
|
||||
use ReflectionClass;
|
||||
use ReflectionMethod;
|
||||
|
||||
use function __;
|
||||
@ -588,15 +589,17 @@ class ExportLatexTest extends AbstractTestCase
|
||||
unset($GLOBALS['latex_caption']);
|
||||
}
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'relwork' => true,
|
||||
'commwork' => true,
|
||||
'mimework' => true,
|
||||
'db' => 'database',
|
||||
'relation' => 'rel',
|
||||
'column_info' => 'col',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
ob_start();
|
||||
$this->assertTrue(
|
||||
@ -677,15 +680,17 @@ class ExportLatexTest extends AbstractTestCase
|
||||
$GLOBALS['dbi'] = $dbi;
|
||||
$this->object->relation = new Relation($dbi);
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'relwork' => true,
|
||||
'commwork' => true,
|
||||
'mimework' => true,
|
||||
'db' => 'database',
|
||||
'relation' => 'rel',
|
||||
'column_info' => 'col',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
ob_start();
|
||||
$this->assertTrue(
|
||||
@ -738,12 +743,14 @@ class ExportLatexTest extends AbstractTestCase
|
||||
$GLOBALS['cfg']['Server']['host'] = 'localhost';
|
||||
$GLOBALS['cfg']['Server']['verbose'] = 'verb';
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'db' => 'database',
|
||||
'relation' => 'rel',
|
||||
'column_info' => 'col',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
ob_start();
|
||||
$this->assertTrue(
|
||||
|
||||
@ -21,6 +21,7 @@ use PhpMyAdmin\Tests\AbstractTestCase;
|
||||
use PhpMyAdmin\Tests\Stubs\DbiDummy;
|
||||
use PhpMyAdmin\Tests\Stubs\DummyResult;
|
||||
use PhpMyAdmin\Transformations;
|
||||
use ReflectionClass;
|
||||
use ReflectionMethod;
|
||||
use stdClass;
|
||||
|
||||
@ -615,15 +616,17 @@ class ExportOdtTest extends AbstractTestCase
|
||||
->with(['Field' => 'fieldname'])
|
||||
->will($this->returnValue('1'));
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'relwork' => true,
|
||||
'commwork' => true,
|
||||
'mimework' => true,
|
||||
'db' => 'database',
|
||||
'relation' => 'rel',
|
||||
'column_info' => 'col',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
$this->assertTrue(
|
||||
$this->object->getTableDef(
|
||||
@ -696,15 +699,17 @@ class ExportOdtTest extends AbstractTestCase
|
||||
$GLOBALS['dbi'] = $dbi;
|
||||
$this->object->relation = new Relation($dbi);
|
||||
$GLOBALS['odt_buffer'] = '';
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'relwork' => true,
|
||||
'commwork' => true,
|
||||
'mimework' => true,
|
||||
'db' => 'database',
|
||||
'relation' => 'rel',
|
||||
'column_info' => 'col',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
$this->assertTrue(
|
||||
$this->object->getTableDef(
|
||||
|
||||
@ -25,6 +25,7 @@ use PhpMyAdmin\Table;
|
||||
use PhpMyAdmin\Tests\AbstractTestCase;
|
||||
use PhpMyAdmin\Tests\Stubs\DummyResult;
|
||||
use PhpMyAdmin\Transformations;
|
||||
use ReflectionClass;
|
||||
use ReflectionMethod;
|
||||
use stdClass;
|
||||
|
||||
@ -877,15 +878,17 @@ SQL;
|
||||
|
||||
public function testGetTableComments(): void
|
||||
{
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'relwork' => true,
|
||||
'commwork' => true,
|
||||
'mimework' => true,
|
||||
'db' => 'database',
|
||||
'relation' => 'rel',
|
||||
'column_info' => 'col',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
$GLOBALS['sql_include_comments'] = true;
|
||||
|
||||
$dbi = $this->getMockBuilder(DatabaseInterface::class)
|
||||
|
||||
@ -18,6 +18,7 @@ use PhpMyAdmin\Properties\Plugins\ExportPluginProperties;
|
||||
use PhpMyAdmin\Tests\AbstractTestCase;
|
||||
use PhpMyAdmin\Tests\Stubs\DbiDummy;
|
||||
use PhpMyAdmin\Transformations;
|
||||
use ReflectionClass;
|
||||
use ReflectionMethod;
|
||||
use ReflectionProperty;
|
||||
|
||||
@ -297,15 +298,17 @@ class ExportTexytextTest extends AbstractTestCase
|
||||
->with(['Field' => 'fname', 'Comment' => 'comm'], ['cname'])
|
||||
->will($this->returnValue('1'));
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'relwork' => true,
|
||||
'commwork' => true,
|
||||
'mimework' => true,
|
||||
'db' => 'database',
|
||||
'relation' => 'rel',
|
||||
'column_info' => 'col',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
$result = $this->object->getTableDef('db', 'table', 'example.com', true, true, true);
|
||||
|
||||
|
||||
@ -21,6 +21,7 @@ use PhpMyAdmin\Tests\Stubs\DbiDummy;
|
||||
use PhpMyAdmin\Tests\Stubs\DummyResult;
|
||||
use PhpMyAdmin\Url;
|
||||
use PhpMyAdmin\Util;
|
||||
use ReflectionClass;
|
||||
use ReflectionMethod;
|
||||
|
||||
use function __;
|
||||
@ -1137,13 +1138,15 @@ class PrivilegesTest extends AbstractTestCase
|
||||
public function testGetUserGroupForUser(): void
|
||||
{
|
||||
$GLOBALS['server'] = 1;
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'db' => 'pmadb',
|
||||
'users' => 'users',
|
||||
'usergroups' => 'usergroups',
|
||||
'menuswork' => true,
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
$dummyDbi = $this->createDbiDummy();
|
||||
$dummyDbi->addResult(
|
||||
@ -1163,15 +1166,17 @@ class PrivilegesTest extends AbstractTestCase
|
||||
$GLOBALS['cfg']['Server']['DisableIS'] = false;
|
||||
|
||||
$GLOBALS['server'] = 1;
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'db' => 'pmadb',
|
||||
'users' => 'users',
|
||||
'usergroups' => 'usergroups',
|
||||
'menuswork' => true,
|
||||
'trackingwork' => true,
|
||||
'tracking' => 'tracking',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
$dummyDbi = $this->createDbiDummy();
|
||||
$dummyDbi->addResult('SELECT * FROM `pmadb`.`users`', []);
|
||||
@ -1265,8 +1270,10 @@ class PrivilegesTest extends AbstractTestCase
|
||||
$_POST['change_copy'] = 'change_copy';
|
||||
$_POST['old_hostname'] = 'old_hostname';
|
||||
$_POST['old_username'] = 'old_username';
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([])->toArray();
|
||||
$relationParameters = RelationParameters::fromArray([]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
$queries = [];
|
||||
|
||||
|
||||
@ -4,6 +4,7 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Tests;
|
||||
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\ConfigStorage\RelationParameters;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Encoding;
|
||||
@ -12,6 +13,7 @@ use PhpMyAdmin\SqlQueryForm;
|
||||
use PhpMyAdmin\Template;
|
||||
use PhpMyAdmin\Tests\Stubs\DbiDummy;
|
||||
use PhpMyAdmin\Url;
|
||||
use ReflectionClass;
|
||||
|
||||
use function __;
|
||||
use function htmlspecialchars;
|
||||
@ -70,15 +72,15 @@ class SqlQueryFormTest extends AbstractTestCase
|
||||
$GLOBALS['cfg']['CodemirrorEnable'] = true;
|
||||
$GLOBALS['cfg']['DefaultForeignKeyChecks'] = 'default';
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][0] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'table_coords' => 'table_name',
|
||||
'displaywork' => true,
|
||||
'db' => 'information_schema',
|
||||
'table_info' => 'table_info',
|
||||
'relwork' => true,
|
||||
'relation' => 'relation',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue([$relationParameters]);
|
||||
|
||||
$GLOBALS['cfg']['Server']['user'] = 'user';
|
||||
$GLOBALS['cfg']['Server']['pmadb'] = 'pmadb';
|
||||
|
||||
@ -4,11 +4,13 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Tests;
|
||||
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\ConfigStorage\RelationParameters;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\SystemColumn;
|
||||
use PhpMyAdmin\SystemDatabase;
|
||||
use PhpMyAdmin\Tests\Stubs\DummyResult;
|
||||
use ReflectionClass;
|
||||
|
||||
/** @covers \PhpMyAdmin\SystemDatabase */
|
||||
class SystemDatabaseTest extends AbstractTestCase
|
||||
@ -47,8 +49,7 @@ class SystemDatabaseTest extends AbstractTestCase
|
||||
return "'" . $string . "'";
|
||||
}));
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'table_coords' => 'table_name',
|
||||
'displaywork' => true,
|
||||
'db' => 'information_schema',
|
||||
@ -59,7 +60,10 @@ class SystemDatabaseTest extends AbstractTestCase
|
||||
'mimework' => true,
|
||||
'column_info' => 'column_info',
|
||||
'relation' => 'relation',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
$this->sysDb = new SystemDatabase($dbi);
|
||||
}
|
||||
|
||||
@ -75,7 +75,6 @@ SQL;
|
||||
$GLOBALS['col_priv'] = true;
|
||||
$GLOBALS['is_reload_priv'] = true;
|
||||
$GLOBALS['mime_map'] = null;
|
||||
$_SESSION['relation'] = [];
|
||||
|
||||
$actual = $columnsDefinition->displayForm('/table/structure/save', 1, null, ['actor_id'], [$columnMeta]);
|
||||
|
||||
|
||||
@ -5,6 +5,7 @@ declare(strict_types=1);
|
||||
namespace PhpMyAdmin\Tests\Tracking;
|
||||
|
||||
use PhpMyAdmin\Cache;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\ConfigStorage\RelationParameters;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Dbal\Connection;
|
||||
@ -12,6 +13,7 @@ use PhpMyAdmin\Tests\AbstractTestCase;
|
||||
use PhpMyAdmin\Tests\Stubs\DummyResult;
|
||||
use PhpMyAdmin\Tracking\Tracker;
|
||||
use PhpMyAdmin\Util;
|
||||
use ReflectionClass;
|
||||
use ReflectionMethod;
|
||||
|
||||
/** @covers \PhpMyAdmin\Tracking\Tracker */
|
||||
@ -41,12 +43,14 @@ class TrackerTest extends AbstractTestCase
|
||||
$GLOBALS['cfg']['Server']['DisableIS'] = false;
|
||||
$GLOBALS['export_type'] = null;
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'db' => 'pmadb',
|
||||
'trackingwork' => true,
|
||||
'tracking' => 'tracking',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
$dbi = $this->getMockBuilder(DatabaseInterface::class)
|
||||
->disableOriginalConstructor()
|
||||
@ -84,19 +88,23 @@ class TrackerTest extends AbstractTestCase
|
||||
|
||||
Tracker::enable();
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([])->toArray();
|
||||
$relationParameters = RelationParameters::fromArray([]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
$this->assertFalse(
|
||||
Tracker::isActive(),
|
||||
);
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'trackingwork' => true,
|
||||
'db' => 'pmadb',
|
||||
'tracking' => 'tracking',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
$this->assertTrue(
|
||||
Tracker::isActive(),
|
||||
@ -144,19 +152,23 @@ class TrackerTest extends AbstractTestCase
|
||||
|
||||
Tracker::enable();
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([])->toArray();
|
||||
$relationParameters = RelationParameters::fromArray([]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
$this->assertFalse(
|
||||
Tracker::isTracked('', ''),
|
||||
);
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'trackingwork' => true,
|
||||
'db' => 'pmadb',
|
||||
'tracking' => 'tracking',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
$this->assertTrue(
|
||||
Tracker::isTracked('pma_test_db', 'pma_test_table'),
|
||||
|
||||
@ -12,6 +12,7 @@ use PhpMyAdmin\Tests\AbstractTestCase;
|
||||
use PhpMyAdmin\Tracking\TrackedTable;
|
||||
use PhpMyAdmin\Tracking\Tracker;
|
||||
use PhpMyAdmin\Tracking\TrackingChecker;
|
||||
use ReflectionClass;
|
||||
|
||||
/** @covers \PhpMyAdmin\Tracking\TrackingChecker */
|
||||
class TrackingCheckerTest extends AbstractTestCase
|
||||
@ -27,12 +28,14 @@ class TrackingCheckerTest extends AbstractTestCase
|
||||
|
||||
$GLOBALS['dbi'] = $this->createDatabaseInterface();
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'db' => 'pmadb',
|
||||
'tracking' => 'tracking',
|
||||
'trackingwork' => true,
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
$this->trackingChecker = new TrackingChecker(
|
||||
$GLOBALS['dbi'],
|
||||
|
||||
@ -14,6 +14,7 @@ use PhpMyAdmin\Tests\AbstractTestCase;
|
||||
use PhpMyAdmin\Tracking\Tracking;
|
||||
use PhpMyAdmin\Tracking\TrackingChecker;
|
||||
use PhpMyAdmin\Url;
|
||||
use ReflectionClass;
|
||||
|
||||
use function __;
|
||||
use function _pgettext;
|
||||
@ -48,12 +49,14 @@ class TrackingTest extends AbstractTestCase
|
||||
$GLOBALS['cfg']['Server']['DisableIS'] = true;
|
||||
$GLOBALS['cfg']['Server']['tracking_default_statements'] = 'DELETE';
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relationParameters = RelationParameters::fromArray([
|
||||
'db' => 'pmadb',
|
||||
'tracking' => 'tracking',
|
||||
'trackingwork' => true,
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue(
|
||||
[$GLOBALS['server'] => $relationParameters],
|
||||
);
|
||||
|
||||
$template = new Template();
|
||||
$this->tracking = new Tracking(
|
||||
|
||||
@ -4,10 +4,12 @@ declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Tests;
|
||||
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\ConfigStorage\RelationParameters;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Tests\Stubs\DummyResult;
|
||||
use PhpMyAdmin\Transformations;
|
||||
use ReflectionClass;
|
||||
|
||||
/** @covers \PhpMyAdmin\Transformations */
|
||||
class TransformationsTest extends AbstractTestCase
|
||||
@ -165,13 +167,13 @@ class TransformationsTest extends AbstractTestCase
|
||||
*/
|
||||
public function testGetMime(): void
|
||||
{
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relation = RelationParameters::fromArray([
|
||||
'db' => 'pmadb',
|
||||
'mimework' => true,
|
||||
'trackingwork' => true,
|
||||
'column_info' => 'column_info',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue([$GLOBALS['server'] => $relation]);
|
||||
$this->assertEquals(
|
||||
[
|
||||
'o' => [
|
||||
@ -209,16 +211,18 @@ class TransformationsTest extends AbstractTestCase
|
||||
->will($this->returnValue($this->createStub(DummyResult::class)));
|
||||
$GLOBALS['dbi'] = $dbi;
|
||||
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue([]);
|
||||
|
||||
// Case 1 : no configuration storage
|
||||
$actual = $this->transformations->clear('db');
|
||||
$this->assertFalse($actual);
|
||||
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relation = RelationParameters::fromArray([
|
||||
'db' => 'pmadb',
|
||||
'mimework' => true,
|
||||
'column_info' => 'column_info',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue([$GLOBALS['server'] => $relation]);
|
||||
|
||||
// Case 2 : database delete
|
||||
$actual = $this->transformations->clear('db');
|
||||
|
||||
@ -5,6 +5,7 @@ declare(strict_types=1);
|
||||
namespace PhpMyAdmin\Tests;
|
||||
|
||||
use PhpMyAdmin\Config\ConfigFile;
|
||||
use PhpMyAdmin\ConfigStorage\Relation;
|
||||
use PhpMyAdmin\ConfigStorage\RelationParameters;
|
||||
use PhpMyAdmin\DatabaseInterface;
|
||||
use PhpMyAdmin\Dbal\Connection;
|
||||
@ -12,6 +13,7 @@ use PhpMyAdmin\Message;
|
||||
use PhpMyAdmin\Tests\Stubs\DummyResult;
|
||||
use PhpMyAdmin\Url;
|
||||
use PhpMyAdmin\UserPreferences;
|
||||
use ReflectionClass;
|
||||
|
||||
use function json_encode;
|
||||
use function time;
|
||||
@ -55,8 +57,8 @@ class UserPreferencesTest extends AbstractNetworkTestCase
|
||||
*/
|
||||
public function testLoad(): void
|
||||
{
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([])->toArray();
|
||||
$relation = RelationParameters::fromArray([]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue([$GLOBALS['server'] => $relation]);
|
||||
|
||||
unset($_SESSION['userconfig']);
|
||||
|
||||
@ -80,13 +82,13 @@ class UserPreferencesTest extends AbstractNetworkTestCase
|
||||
$this->assertEquals('session', $result['type']);
|
||||
|
||||
// case 2
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relation = RelationParameters::fromArray([
|
||||
'user' => 'user',
|
||||
'db' => "pma'db",
|
||||
'userconfig' => 'testconf',
|
||||
'userconfigwork' => true,
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue([$GLOBALS['server'] => $relation]);
|
||||
|
||||
$dbi = $this->getMockBuilder(DatabaseInterface::class)
|
||||
->disableOriginalConstructor()
|
||||
@ -125,8 +127,8 @@ class UserPreferencesTest extends AbstractNetworkTestCase
|
||||
{
|
||||
$GLOBALS['cfg']['Server']['DisableIS'] = true;
|
||||
$GLOBALS['server'] = 2;
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([])->toArray();
|
||||
$relation = RelationParameters::fromArray([]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue([$GLOBALS['server'] => $relation]);
|
||||
|
||||
unset($_SESSION['userconfig']);
|
||||
|
||||
@ -159,13 +161,13 @@ class UserPreferencesTest extends AbstractNetworkTestCase
|
||||
$this->assertTrue($assert);
|
||||
|
||||
// case 2
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([
|
||||
$relation = RelationParameters::fromArray([
|
||||
'userconfigwork' => true,
|
||||
'db' => 'pmadb',
|
||||
'userconfig' => 'testconf',
|
||||
'user' => 'user',
|
||||
])->toArray();
|
||||
]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue([$GLOBALS['server'] => $relation]);
|
||||
|
||||
$query1 = 'SELECT `username` FROM `pmadb`.`testconf` WHERE `username` = \'user\'';
|
||||
|
||||
@ -287,15 +289,15 @@ class UserPreferencesTest extends AbstractNetworkTestCase
|
||||
*/
|
||||
public function testPersistOption(): void
|
||||
{
|
||||
$_SESSION['relation'] = [];
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([])->toArray();
|
||||
$relation = RelationParameters::fromArray([]);
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue([$GLOBALS['server'] => $relation]);
|
||||
|
||||
$_SESSION['userconfig'] = [];
|
||||
$_SESSION['userconfig']['ts'] = '123';
|
||||
$_SESSION['userconfig']['db'] = ['Server/hide_db' => true, 'Server/only_db' => true];
|
||||
|
||||
$GLOBALS['server'] = 2;
|
||||
$_SESSION['relation'][$GLOBALS['server']] = RelationParameters::fromArray([])->toArray();
|
||||
(new ReflectionClass(Relation::class))->getProperty('cache')->setValue([$GLOBALS['server'] => $relation]);
|
||||
|
||||
$userPreferences = new UserPreferences($GLOBALS['dbi']);
|
||||
$this->assertTrue(
|
||||
|
||||
Loading…
Reference in New Issue
Block a user