!C99Shell v.2.1 [PHP 7 Update] [1.12.2019]!

Software: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16. PHP/5.4.16 

uname -a: Linux roko-bkp 3.10.0-1160.102.1.el7.x86_64 #1 SMP Tue Oct 17 15:42:21 UTC 2023 x86_64 

uid=48(apache) gid=48(apache) groups=48(apache),1003(webmaster) 

Safe-mode: OFF (not secure)

/usr/share/phpMyAdmin/test/libraries/   drwxr-xr-x
Free 9.17 GB of 93.48 GB (9.81%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     PMA_central_columns_test.php (18.35 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
 * tests for central_columns.lib.php
 *
 * @package PhpMyAdmin-test
 */

/*
 * Include to test.
 */
$GLOBALS['server'] = 1;
require_once 
'libraries/Util.class.php';
require_once 
'libraries/php-gettext/gettext.inc';
require_once 
'libraries/database_interface.inc.php';
require_once 
'libraries/Tracker.class.php';
require_once 
'libraries/relation.lib.php';
require_once 
'libraries/Message.class.php';
require_once 
'libraries/url_generating.lib.php';
require_once 
'libraries/Theme.class.php';
require_once 
'libraries/tbl_columns_definition_form.lib.php';
require_once 
'libraries/Types.class.php';
require_once 
'libraries/mysql_charsets.inc.php';
require_once 
'libraries/central_columns.lib.php';
require_once 
'libraries/sqlparser.lib.php';

/**
 * tests for central_columns.lib.php
 *
 * @package PhpMyAdmin-test
 */
class PMA_Central_Columns_Test extends PHPUnit_Framework_TestCase
{
    private 
$_columnData = array(
        array(
            
'col_name' => "id""col_type" => 'integer',
            
'col_length' => 0'col_isNull' => 0'col_extra' => 'UNSIGNED,auto_increment',
            
'col_default' => 1
        
),
        array(
'col_name' => "col1"'col_type' => 'varchar',
            
'col_length' => 100'col_isNull' => 1'col_extra' => 'BINARY',
            
'col_default' => 1
        
),
        array(
            
'col_name' => "col2"'col_type' => 'DATETIME',
            
'col_length' => 0'col_isNull' => 1'col_extra' => 'on update CURRENT_TIMESTAMP',
            
'col_default' => 'CURRENT_TIMESTAMP'
        
)
    );

    private 
$_modifiedColumnData = array(
        array(
            
'col_name' => "id""col_type" => 'integer',
            
'col_length' => 0'col_isNull' => 0'col_extra' => 'auto_increment',
            
'col_default' => 1'col_attribute' => 'UNSIGNED'
        
),
        array(
'col_name' => "col1"'col_type' => 'varchar',
            
'col_length' => 100'col_isNull' => 1'col_extra' => '',
            
'col_default' => 1'col_attribute' => 'BINARY'
        
),
        array(
            
'col_name' => "col2"'col_type' => 'DATETIME',
            
'col_length' => 0'col_isNull' => 1'col_extra' => '',
            
'col_default' => 'CURRENT_TIMESTAMP''col_attribute' => 'on update CURRENT_TIMESTAMP'
        
)
    );

    
/**
     * prepares environment for tests
     *
     * @return void
     */
    
public function setUp()
    {
        
$GLOBALS['PMA_Types'] = new PMA_Types_MySQL();
        
$GLOBALS['cfg']['Server']['user'] = 'pma_user';
        
$GLOBALS['cfg']['Server']['DisableIS'] = true;
        
$GLOBALS['cfg']['MaxRows'] = 10;
        
$GLOBALS['cfg']['ServerDefault'] = "PMA_server";
        
$GLOBALS['cfg']['ActionLinksMode'] = 'icons';
        
$GLOBALS['pmaThemeImage'] = 'image';
        
$GLOBALS['cfg']['CharEditing'] = '';
        
$GLOBALS['cfg']['LimitChars'] = 50;
        
$GLOBALS['db'] = 'PMA_db';
        
$GLOBALS['table'] = 'PMA_table';

        
//$_SESSION
        
$GLOBALS['server'] = 1;
        
$_SESSION['PMA_Theme'] = PMA_Theme::load('./themes/pmahomme');
        
$_SESSION['PMA_Theme'] = new PMA_Theme();
        
$_SESSION['relation'][1] = array(
            
'central_columnswork' => true,
            
'relwork' => 1,
            
'db' => 'phpmyadmin',
            
'relation' => 'relation',
            
'central_columns' => 'pma_central_columns'
        
);

        
// mock DBI
        
$dbi $this->getMockBuilder('PMA_DatabaseInterface')
            ->
disableOriginalConstructor()
            ->
getMock();
        
$GLOBALS['dbi'] = $dbi;

        
// set some common expectations
        
$dbi->expects($this->any())
            ->
method('selectDb')
            ->
will($this->returnValue(true));
        
$dbi->expects($this->any())
            ->
method('getColumns')
            ->
will(
                
$this->returnValue(
                    array(
                        
"id"=>array("Type"=>"integer""Null"=>"NO"),
                        
"col1"=>array("Type"=>'varchar(100)'"Null"=>"YES"),
                        
"col2"=>array("Type"=>'DATETIME'"Null"=>"NO")
                    )
                )
            );
        
$dbi->expects($this->any())
            ->
method('getColumnNames')
            ->
will($this->returnValue(array("id""col1""col2")));
        
$dbi->expects($this->any())
            ->
method('tryQuery')
            ->
will($this->returnValue(true));
        
$dbi->expects($this->any())
            ->
method('getTables')
            ->
will(
                
$this->returnValue(array("PMA_table""PMA_table1""PMA_table2"))
            );

    }

    
/**
     * Test for PMA_centralColumnsGetParams
     *
     * @return void
     */
    
public function testPMACentralColumnsGetParams()
    {
        
$this->assertSame(
            array(
                
'user' => 'pma_user',
                
'db' => 'phpmyadmin',
                
'table' => 'pma_central_columns'
            
),
            
PMA_centralColumnsGetParams()
        );
    }

    
/**
     * Test for PMA_getColumnsList
     *
     * @return void
     */
    
public function testPMAGetColumnsList()
    {
        
$GLOBALS['dbi']->expects($this->at(1))
            ->
method('fetchResult')
            ->
with("SELECT * FROM `pma_central_columns` WHERE db_name = 'phpmyadmin' LIMIT 0, 25;"nullnull$GLOBALS['controllink'])
            ->
will(
                
$this->returnValue($this->_columnData)
            );

        
$GLOBALS['dbi']->expects($this->at(3))
            ->
method('fetchResult')
            ->
with("SELECT * FROM `pma_central_columns` WHERE db_name = 'phpmyadmin' LIMIT 1, 2;"nullnull$GLOBALS['controllink'])
            ->
will(
                
$this->returnValue(
                    
array_slice($this->_columnData12)
                )
            );

        
$this->assertEquals(
            
$this->_modifiedColumnData,
            
PMA_getColumnsList('phpmyadmin')
        );
        
$this->assertEquals(
            
array_slice($this->_modifiedColumnData12),
            
PMA_getColumnsList('phpmyadmin'12)
        );
    }

    
/**
     * Test for PMA_getCentralColumnsCount
     *
     * @return void
     */
    
function testPMAGetCentralColumnsCount()
    {
        
$GLOBALS['dbi']->expects($this->at(1))
            ->
method('fetchResult')
            ->
with("SELECT count(db_name) FROM `pma_central_columns` WHERE db_name = 'phpmyadmin';"nullnull$GLOBALS['controllink'])
            ->
will(
                
$this->returnValue(array(3))
            );

        
$this->assertEquals(
            
3,
            
PMA_getCentralColumnsCount('phpmyadmin')
        );
    }

    
/**
     * Test for PMA_syncUniqueColumns
     *
     * @return void
     */
    
public function testPMASyncUniqueColumns()
    {
        
$_REQUEST['db'] = 'PMA_db';
        
$_REQUEST['table'] = 'PMA_table';

        
$this->assertTrue(
            
PMA_syncUniqueColumns(array('PMA_table'))
        );
    }

    
/**
     * Test for PMA_deleteColumnsFromList
     *
     * @return void
     */
    
public function testPMADeleteColumnsFromList()
    {
        
$_REQUEST['db'] = 'PMA_db';
        
$_REQUEST['table'] = 'PMA_table';

        
// when column exists in the central column list
        
$GLOBALS['dbi']->expects($this->at(2))
            ->
method('fetchResult')
            ->
with("SELECT col_name FROM `pma_central_columns` WHERE db_name = 'PMA_db' AND col_name IN ('col1');"nullnull$GLOBALS['controllink'])
            ->
will(
                
$this->returnValue(array('col1'))
            );

        
$GLOBALS['dbi']->expects($this->at(4))
            ->
method('tryQuery')
            ->
with("DELETE FROM `pma_central_columns` WHERE db_name = 'PMA_db' AND col_name IN ('col1');"$GLOBALS['controllink'])
            ->
will(
                
$this->returnValue(array('col1'))
            );

        
$this->assertTrue(
            
PMA_deleteColumnsFromList(array("col1"), false)
        );

        
// when column does not exist in the central column list
        
$this->assertInstanceOf(
            
'PMA_Message'PMA_deleteColumnsFromList(array('column1'), false)
        );

        
$this->assertInstanceOf(
            
'PMA_Message'PMA_deleteColumnsFromList(array('PMA_table'))
        );
    }

    
/**
     * Test for PMA_makeConsistentWithList
     *
     * @return void
     */
    
public function testPMAMakeConsistentWithList()
    {
        
$GLOBALS['dbi']->expects($this->any())
            ->
method('fetchResult')
            ->
will(
                
$this->returnValue($this->_columnData)
            );
        
$GLOBALS['dbi']->expects($this->any())
            ->
method('fetchValue')
            ->
will(
                
$this->returnValue('PMA_table=CREATE table `PMA_table` (id integer)')
            );
        
$this->assertTrue(
            
PMA_makeConsistentWithList("phpmyadmin", array('PMA_table'))
        );
    }

    
/**
     * Test for PMA_getCentralColumnsFromTable
     *
     * @return void
     */
    
public function testPMAGetCentralColumnsFromTable()
    {
        
$db 'PMA_db';
        
$table 'PMA_table';

        
$GLOBALS['dbi']->expects($this->at(3))
            ->
method('fetchResult')
            ->
with("SELECT col_name FROM `pma_central_columns` WHERE db_name = 'PMA_db' AND col_name IN ('id','col1','col2');"nullnull$GLOBALS['controllink'])
            ->
will(
                
$this->returnValue(array('id','col1'))
            );
        
$this->assertEquals(
            array(
"id""col1"),
            
PMA_getCentralColumnsFromTable($db$table)
        );
    }

    
/**
     * Test for PMA_getCentralColumnsFromTable with $allFields = true
     *
     * @return void
     */
    
public function testPMAGetCentralColumnsFromTableWithAllFields()
    {
        
$db 'PMA_db';
        
$table 'PMA_table';

        
$GLOBALS['dbi']->expects($this->at(3))
            ->
method('fetchResult')
            ->
with("SELECT * FROM `pma_central_columns` WHERE db_name = 'PMA_db' AND col_name IN ('id','col1','col2');"nullnull$GLOBALS['controllink'])
            ->
will(
                
$this->returnValue(array_slice($this->_columnData02))
            );
        
$this->assertEquals(
            
array_slice($this->_modifiedColumnData02),
            
PMA_getCentralColumnsFromTable($db$tabletrue)
        );
    }

    
/**
     * Test for PMA_updateOneColumn
     *
     * @return void
     */
    
public function testPMAUpdateOneColumn()
    {
        
$this->assertTrue(
            
PMA_updateOneColumn(
                
"phpmyadmin""""""""",""""""""""
            
)
        );
        
$this->assertTrue(
            
PMA_updateOneColumn(
                
"phpmyadmin""col1""""""",""""""""""
            
)
        );
    }

    
/**
     * Test for PMA_getHTMLforTableNavigation
     *
     * @return void
     */
    
public function testPMAGetHTMLforTableNavigation()
    {
        
$result PMA_getHTMLforTableNavigation(00'phpmyadmin');
        
$this->assertContains(
            
'<table',
            
$result
        
);
        
$this->assertContains(
            
__('Search this table'),
            
$result
        
);
        
$result_1 PMA_getHTMLforTableNavigation(2510'phpmyadmin');
        
$this->assertContains(
            
'<form action="db_central_columns.php" method="post">'
            
PMA_URL_getHiddenInputs(
                
'phpmyadmin'
            
),
            
$result_1
        
);
        
$this->assertContains(
            
'<input type="submit" name="navig"'
            
' class="ajax" '
            
'value="&lt" />',
            
$result_1
        
);
        
$this->assertContains(
            
PMA_Util::pageselector(
                
'pos'1023
            
),
            
$result_1
        
);
        
$this->assertContains(
            
'<input type="submit" name="navig"'
            
' class="ajax" '
            
'value="&gt" />',
            
$result_1
        
);
    }

    
/**
     * Test for PMA_getCentralColumnsTableHeader
     *
     * @return void
     */
    
public function testPMAGetCentralColumnsTableHeader()
    {
        
$this->assertContains(
            
'<thead',
            
PMA_getCentralColumnsTableHeader(
                
'column_heading'__('Click to sort'), 2
            
)
        );
    }

    
/**
     * Test for PMA_getHTMLforCentralColumnsTableRow
     *
     * @return void
     */
    
public function testPMAGetHTMLforCentralColumnsTableRow()
    {
        
$row = array(
            
'col_name'=>'col_test',
            
'col_type'=>'int',
            
'col_length'=>12,
            
'col_collation'=>'utf8_general_ci',
            
'col_isNull'=>1,
            
'col_extra'=> '',
            
'col_attribute'=>''
        
);
        
$result PMA_getHTMLforCentralColumnsTableRow($rowfalse1'phpmyadmin');
        
$this->assertContains(
            
'<tr',
            
$result
        
);
        
$this->assertContains(
            
PMA_URL_getHiddenInputs('phpmyadmin'),
            
$result
        
);
        
$this->assertContains(
            
'<span',
            
$result
        
);
        
$this->assertContains(
            
'col_test',
            
$result
        
);
        
$this->assertContains(
            
__('on update CURRENT_TIMESTAMP'),
            
$result
        
);
        
$this->assertContains(
            
PMA_getHtmlForColumnDefault(
                
160/*overload*/mb_strtoupper($row['col_type']), '',
                array(
'DefaultType'=>'NONE')
            ),
            
$result
        
);
        
$row['col_default'] = 100;
        
$result_1 PMA_getHTMLforCentralColumnsTableRow(
            
$rowfalse1'phpmyadmin'
        
);
        
$this->assertContains(
            
PMA_getHtmlForColumnDefault(
                
160/*overload*/mb_strtoupper($row['col_type']), '',
                array(
'DefaultType'=>'USER_DEFINED''DefaultValue'=>100)
            ),
            
$result_1
        
);
        
$row['col_default'] = 'CURRENT_TIMESTAMP';
        
$result_2 PMA_getHTMLforCentralColumnsTableRow(
            
$rowfalse1'phpmyadmin'
        
);
        
$this->assertContains(
            
PMA_getHtmlForColumnDefault(
                
160/*overload*/mb_strtoupper($row['col_type']), '',
                array(
'DefaultType'=>'CURRENT_TIMESTAMP')
            ),
            
$result_2
        
);
    }

    
/**
     * Test for PMA_getCentralColumnsListRaw
     *
     * @return void
     */
    
public function testPMAGetCentralColumnsListRaw()
    {
        
$GLOBALS['dbi']->expects($this->at(1))
            ->
method('fetchResult')
            ->
with("SELECT * FROM `pma_central_columns` WHERE db_name = 'phpmyadmin';"nullnull$GLOBALS['controllink'])
            ->
will(
                
$this->returnValue($this->_columnData)
            );
        
$this->assertEquals(
            
json_encode($this->_modifiedColumnData),
            
PMA_getCentralColumnsListRaw('phpmyadmin''')
        );
    }

    
/**
     * Test for PMA_getCentralColumnsListRaw with a table name
     *
     * @return void
     */
    
public function testPMAGetCentralColumnsListRawWithTable()
    {
        
$GLOBALS['dbi']->expects($this->at(3))
            ->
method('fetchResult')
            ->
with("SELECT * FROM `pma_central_columns` WHERE db_name = 'phpmyadmin' AND col_name NOT IN ('id','col1','col2');"nullnull$GLOBALS['controllink'])
            ->
will(
                
$this->returnValue($this->_columnData)
            );
        
$this->assertEquals(
            
json_encode($this->_modifiedColumnData),
            
PMA_getCentralColumnsListRaw('phpmyadmin''table1')
        );

    }

    
/**
     * Test for PMA_getHTMLforAddNewColumn
     *
     * @return void
     */
    
public function testPMAGetHTMLforAddNewColumn()
    {
        
$result PMA_getHTMLforAddNewColumn('phpmyadmin');
        
$this->assertContains(
            
'<form',
            
$result
        
);
        
$this->assertContains(
            
'<table',
            
$result
        
);
        
$this->assertContains(
            
__('Add new column'),
            
$result
        
);
        
$this->assertContains(
            
PMA_URL_getHiddenInputs('phpmyadmin'),
            
$result
        
);
    }

    
/**
     * Test for PMA_configErrorMessage
     *
     * @return void
     */
    
public function testPMAConfigErrorMessage()
    {
        
$this->assertInstanceOf(
            
'PMA_Message',
            
PMA_configErrorMessage()
        );
    }

    
/**
     * Test for PMA_findExistingColNames
     *
     * @return void
     */
    
public function testPMAFindExistingColNames()
    {
        
$GLOBALS['dbi']->expects($this->at(1))
            ->
method('fetchResult')
            ->
with("SELECT * FROM `pma_central_columns` WHERE db_name = 'phpmyadmin' AND col_name IN ('col1');"nullnull$GLOBALS['controllink'])
            ->
will(
                
$this->returnValue(array_slice($this->_columnData11))
            );
        
$this->assertEquals(
            
array_slice($this->_modifiedColumnData11),
            
PMA_findExistingColNames('phpmyadmin'"'col1'"true)
        );
    }

    
/**
     * Test for PMA_getHTMLforTableDropdown
     *
     * @return void
     */
    
public function testPMAGetHTMLforTableDropdown()
    {
        
$db 'PMA_db';
        
$result PMA_getHTMLforTableDropdown($db);
        
$this->assertContains(
            
'<select name="table-select" id="table-select"',
            
$result
        
);
        
$this->assertContains(
            
'<option value="PMA_table"',
            
$result
        
);
    }

    
/**
     * Test for PMA_getHTMLforColumnDropdown
     *
     * @return void
     */
    
public function testPMAGetHTMLforColumnDropdown()
    {
        
$db 'PMA_db';
        
$selected_tbl 'PMA_table';
        
$result PMA_getHTMLforColumnDropdown($db$selected_tbl);
        
$this->assertEquals(
            
'<option value="id">id</option><option value="col1">col1</option><option value="col2">col2</option>',
            
$result
        
);
    }

    
/**
     * Test for PMA_getHTMLforAddCentralColumn
     *
     * @return void
     */
    
public function testPMAGetHTMLforAddCentralColumn()
    {
        
$result PMA_getHTMLforAddCentralColumn(200'phpmyadmin');
        
$this->assertContains(
            
'<table',
            
$result
        
);
        
$this->assertContains(
            
'<form',
            
$result
        
);
        
$this->assertContains(
            
PMA_URL_getHiddenInputs('phpmyadmin')
            . 
'<input type="hidden" name="add_column" value="add">'
            
'<input type="hidden" name="pos" value="0" />'
            
'<input type="hidden" name="total_rows" value="20"/>',
            
$result
        
);
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v.2.1 [PHP 7 Update] [1.12.2019] maintained by KaizenLouie and updated by cermmik | C99Shell Github (MySQL update) | Generation time: 0.005 ]--