Add tests for Server\Plugin and Server\Plugins
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
This commit is contained in:
parent
34a63c6a77
commit
21a747cfbe
@ -35,9 +35,9 @@ class Plugins
|
||||
{
|
||||
global $cfg;
|
||||
|
||||
$sql = 'SHOW PLUGINS;';
|
||||
$sql = 'SHOW PLUGINS';
|
||||
if (! $cfg['Server']['DisableIS']) {
|
||||
$sql = 'SELECT * FROM information_schema.PLUGINS ORDER BY PLUGIN_TYPE, PLUGIN_NAME;';
|
||||
$sql = 'SELECT * FROM information_schema.PLUGINS ORDER BY PLUGIN_TYPE, PLUGIN_NAME';
|
||||
}
|
||||
$result = $this->dbi->query($sql);
|
||||
$plugins = [];
|
||||
|
||||
84
test/classes/Server/PluginTest.php
Normal file
84
test/classes/Server/PluginTest.php
Normal file
@ -0,0 +1,84 @@
|
||||
<?php
|
||||
/**
|
||||
* @package PhpMyAdmin\Tests\Server
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Tests\Server;
|
||||
|
||||
use PhpMyAdmin\Server\Plugin;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
/**
|
||||
* @package PhpMyAdmin\Tests\Server
|
||||
*/
|
||||
class PluginTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* @return Plugin
|
||||
*/
|
||||
public function testFromState(): Plugin
|
||||
{
|
||||
$plugin = Plugin::fromState([
|
||||
'name' => 'BLACKHOLE',
|
||||
'version' => '1.0',
|
||||
'status' => 'ACTIVE',
|
||||
'type' => 'STORAGE ENGINE',
|
||||
'typeVersion' => '100316.0',
|
||||
'library' => 'ha_blackhole.so',
|
||||
'libraryVersion' => '1.13',
|
||||
'author' => 'MySQL AB',
|
||||
'description' => '/dev/null storage engine (anything you write to it disappears)',
|
||||
'license' => 'GPL',
|
||||
'loadOption' => 'ON',
|
||||
'maturity' => 'Stable',
|
||||
'authVersion' => '1.0',
|
||||
]);
|
||||
|
||||
$this->assertInstanceOf(Plugin::class, $plugin);
|
||||
$this->assertSame('BLACKHOLE', $plugin->getName());
|
||||
$this->assertSame('1.0', $plugin->getVersion());
|
||||
$this->assertSame('ACTIVE', $plugin->getStatus());
|
||||
$this->assertSame('STORAGE ENGINE', $plugin->getType());
|
||||
$this->assertSame('100316.0', $plugin->getTypeVersion());
|
||||
$this->assertSame('ha_blackhole.so', $plugin->getLibrary());
|
||||
$this->assertSame('1.13', $plugin->getLibraryVersion());
|
||||
$this->assertSame('MySQL AB', $plugin->getAuthor());
|
||||
$this->assertSame('GPL', $plugin->getLicense());
|
||||
$this->assertSame('ON', $plugin->getLoadOption());
|
||||
$this->assertSame('Stable', $plugin->getMaturity());
|
||||
$this->assertSame('1.0', $plugin->getAuthVersion());
|
||||
$this->assertSame(
|
||||
'/dev/null storage engine (anything you write to it disappears)',
|
||||
$plugin->getDescription()
|
||||
);
|
||||
|
||||
return $plugin;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Plugin $plugin Plugin object to be tested
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @depends testFromState
|
||||
*/
|
||||
public function testToArray(Plugin $plugin): void
|
||||
{
|
||||
$this->assertSame([
|
||||
'name' => 'BLACKHOLE',
|
||||
'version' => '1.0',
|
||||
'status' => 'ACTIVE',
|
||||
'type' => 'STORAGE ENGINE',
|
||||
'type_version' => '100316.0',
|
||||
'library' => 'ha_blackhole.so',
|
||||
'library_version' => '1.13',
|
||||
'author' => 'MySQL AB',
|
||||
'description' => '/dev/null storage engine (anything you write to it disappears)',
|
||||
'license' => 'GPL',
|
||||
'load_option' => 'ON',
|
||||
'maturity' => 'Stable',
|
||||
'auth_version' => '1.0',
|
||||
], $plugin->toArray());
|
||||
}
|
||||
}
|
||||
92
test/classes/Server/PluginsTest.php
Normal file
92
test/classes/Server/PluginsTest.php
Normal file
@ -0,0 +1,92 @@
|
||||
<?php
|
||||
/**
|
||||
* @package PhpMyAdmin\Tests\Server
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace PhpMyAdmin\Tests\Server;
|
||||
|
||||
use PhpMyAdmin\Server\Plugin;
|
||||
use PhpMyAdmin\Server\Plugins;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
/**
|
||||
* @package PhpMyAdmin\Tests\Server
|
||||
*/
|
||||
class PluginsTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* @var Plugins
|
||||
*/
|
||||
private $plugins;
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function testGetAll(): void
|
||||
{
|
||||
$GLOBALS['cfg']['MaxCharactersInDisplayedSQL'] = 1000;
|
||||
$GLOBALS['cfg']['Server']['DisableIS'] = false;
|
||||
|
||||
$this->plugins = new Plugins($GLOBALS['dbi']);
|
||||
|
||||
$plugins = $this->plugins->getAll();
|
||||
|
||||
$this->assertIsArray($plugins);
|
||||
$this->assertNotEmpty($plugins);
|
||||
|
||||
$plugin = $plugins[0];
|
||||
|
||||
$this->assertInstanceOf(Plugin::class, $plugin);
|
||||
$this->assertSame([
|
||||
'name' => 'BLACKHOLE',
|
||||
'version' => '1.0',
|
||||
'status' => 'ACTIVE',
|
||||
'type' => 'STORAGE ENGINE',
|
||||
'type_version' => '100316.0',
|
||||
'library' => 'ha_blackhole.so',
|
||||
'library_version' => '1.13',
|
||||
'author' => 'MySQL AB',
|
||||
'description' => '/dev/null storage engine (anything you write to it disappears)',
|
||||
'license' => 'GPL',
|
||||
'load_option' => 'ON',
|
||||
'maturity' => 'Stable',
|
||||
'auth_version' => '1.0',
|
||||
], $plugin->toArray());
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function testGetAllWithoutInformationSchema(): void
|
||||
{
|
||||
$GLOBALS['cfg']['MaxCharactersInDisplayedSQL'] = 1000;
|
||||
$GLOBALS['cfg']['Server']['DisableIS'] = true;
|
||||
|
||||
$this->plugins = new Plugins($GLOBALS['dbi']);
|
||||
|
||||
$plugins = $this->plugins->getAll();
|
||||
|
||||
$this->assertIsArray($plugins);
|
||||
$this->assertNotEmpty($plugins);
|
||||
|
||||
$plugin = $plugins[0];
|
||||
|
||||
$this->assertInstanceOf(Plugin::class, $plugin);
|
||||
$this->assertSame([
|
||||
'name' => 'partition',
|
||||
'version' => null,
|
||||
'status' => 'ACTIVE',
|
||||
'type' => 'STORAGE ENGINE',
|
||||
'type_version' => null,
|
||||
'library' => null,
|
||||
'library_version' => null,
|
||||
'author' => null,
|
||||
'description' => null,
|
||||
'license' => 'GPL',
|
||||
'load_option' => null,
|
||||
'maturity' => null,
|
||||
'auth_version' => null,
|
||||
], $plugin->toArray());
|
||||
}
|
||||
}
|
||||
@ -1307,9 +1307,35 @@ class DbiDummy implements DbiExtension
|
||||
'result' => [],
|
||||
],
|
||||
[
|
||||
'query' => "SHOW PLUGINS",
|
||||
'query' => 'SHOW PLUGINS',
|
||||
'result' => [
|
||||
['Name' => 'partition'],
|
||||
[
|
||||
'Name' => 'partition',
|
||||
'Status' => 'ACTIVE',
|
||||
'Type' => 'STORAGE ENGINE',
|
||||
'Library' => null,
|
||||
'License' => 'GPL',
|
||||
],
|
||||
],
|
||||
],
|
||||
[
|
||||
'query' => 'SELECT * FROM information_schema.PLUGINS ORDER BY PLUGIN_TYPE, PLUGIN_NAME',
|
||||
'result' => [
|
||||
[
|
||||
'PLUGIN_NAME' => 'BLACKHOLE',
|
||||
'PLUGIN_VERSION' => '1.0',
|
||||
'PLUGIN_STATUS' => 'ACTIVE',
|
||||
'PLUGIN_TYPE' => 'STORAGE ENGINE',
|
||||
'PLUGIN_TYPE_VERSION' => '100316.0',
|
||||
'PLUGIN_LIBRARY' => 'ha_blackhole.so',
|
||||
'PLUGIN_LIBRARY_VERSION' => '1.13',
|
||||
'PLUGIN_AUTHOR' => 'MySQL AB',
|
||||
'PLUGIN_DESCRIPTION' => '/dev/null storage engine (anything you write to it disappears)',
|
||||
'PLUGIN_LICENSE' => 'GPL',
|
||||
'LOAD_OPTION' => 'ON',
|
||||
'PLUGIN_MATURITY' => 'Stable',
|
||||
'PLUGIN_AUTH_VERSION' => '1.0',
|
||||
],
|
||||
],
|
||||
],
|
||||
[
|
||||
|
||||
Loading…
Reference in New Issue
Block a user