!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/classes/   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_TableSearch_test.php (11.6 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
 * Tests for PMA_TableSearch
 *
 * @package PhpMyAdmin-test
 */

/*
 * Include to test.
 */
require_once 'libraries/url_generating.lib.php';
require_once 
'libraries/DatabaseInterface.class.php';
require_once 
'libraries/TableSearch.class.php';
require_once 
'libraries/Util.class.php';
require_once 
'libraries/php-gettext/gettext.inc';
require_once 
'libraries/database_interface.inc.php';
require_once 
'libraries/relation.lib.php';
require_once 
'libraries/sqlparser.lib.php';
require_once 
'libraries/Theme.class.php';
require_once 
'libraries/Tracker.class.php';
require_once 
'libraries/Types.class.php';
require_once 
'libraries/relation.lib.php';
require_once 
'libraries/url_generating.lib.php';

/**
 * Tests for PMA_TableSearch
 *
 * @package PhpMyAdmin-test
 */
class PMA_TableSearch_Test extends PHPUnit_Framework_TestCase
{

    
/**
     * Setup function for test cases
     *
     * @access protected
     * @return void
     */
    
protected function setUp()
    {
        
/**
         * SET these to avoid undefined index error
         */
        
$_SESSION['PMA_Theme'] = new PMA_Theme();
        
$_POST['zoom_submit'] = 'zoom';

        
$GLOBALS['server'] = 1;
        
$GLOBALS['PMA_PHP_SELF'] = 'index.php';
        
$GLOBALS['pmaThemeImage'] = 'themes/dot.gif';
        
$GLOBALS['is_ajax_request'] = false;
        
$GLOBALS['cfgRelation'] = PMA_getRelationsParam();
        
$GLOBALS['PMA_Types'] = new PMA_Types_MySQL();

        
$GLOBALS['cfg']['ServerDefault'] = 1;
        
$GLOBALS['cfg']['maxRowPlotLimit'] = 500;
        
$GLOBALS['cfg']['Server']['DisableIS'] = false;
        
$GLOBALS['cfg']['ServerDefault'] = 1;
        
$GLOBALS['cfg']['ActionLinksMode'] = 'both';
        
$GLOBALS['cfg']['ForeignKeyMaxLimit'] = 100;
        
$GLOBALS['cfg']['InitialSlidersState'] = 'closed';
        
$GLOBALS['cfg']['MaxRows'] = 25;
        
$GLOBALS['cfg']['TabsMode'] = 'text';

        
$dbi $this->getMockBuilder('PMA_DatabaseInterface')
            ->
disableOriginalConstructor()
            ->
getMock();

        
$columns =array(
            array(
                
'Field' => 'Field1',
                
'Type' => 'Type1',
                
'Null' => 'Null1',
                
'Collation' => 'Collation1',
            ),
            array(
                
'Field' => 'Field2',
                
'Type' => 'Type2',
                
'Null' => 'Null2',
                
'Collation' => 'Collation2',
            )
        );
        
$dbi->expects($this->any())->method('getColumns')
            ->
will($this->returnValue($columns));

        
$show_create_table "CREATE TABLE `pma_bookmark` (
        `id` int(11) NOT NULL AUTO_INCREMENT,
        `dbase` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
        `user` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
        `label` varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT '',
        `query` text COLLATE utf8_bin NOT NULL,
        PRIMARY KEY (`id`),
        KEY `foreign_field` (`foreign_db`,`foreign_table`)
        ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_bin "
        
"COMMENT='Bookmarks'";

        
$dbi->expects($this->any())->method('fetchValue')
            ->
will($this->returnValue($show_create_table));

        
$GLOBALS['dbi'] = $dbi;
    }

    
/**
     * tearDown function for test cases
     *
     * @access protected
     * @return void
     */
    
protected function tearDown()
    {

    }

    
/**
     * Test for __construct
     *
     * @return void
     * @group medium
     */
    
public function testConstruct()
    {
        
$tableSearch = new PMA_TableSearch("PMA""PMA_BookMark""normal");
        
$columNames $tableSearch->getColumnNames();
        
$this->assertEquals(
            
'Field1',
            
$columNames[0]
        );
        
$this->assertEquals(
            
'Field2',
            
$columNames[1]
        );
    }

    
/**
     * Test for getSelectionForm
     *
     * @return void
     * @group medium
     */
    
public function testGetSelectionForm()
    {
        
//$this->_searchType == 'zoom'
        
$tableSearch = new PMA_TableSearch("PMA""PMA_BookMark""zoom");
        
$url_goto "http://phpmyadmin.net";
        
$form $tableSearch->getSelectionForm($url_goto);
        
$this->assertContains(
            
'<fieldset id="fieldset_zoom_search">',
            
$form
        
);
        
$this->assertContains(
            
'Do a "query by example"',
            
$form
        
);

        
//$this->_searchType == 'normal'
        
$tableSearch = new PMA_TableSearch("PMA""PMA_BookMark""normal");
        
$url_goto "http://phpmyadmin.net";
        
$form $tableSearch->getSelectionForm($url_goto);
        
$this->assertContains(
            
'<fieldset id="fieldset_table_search">',
            
$form
        
);
        
$this->assertContains(
            
'Do a "query by example"',
            
$form
        
);

        
//$this->_searchType == 'replace'
        
$tableSearch = new PMA_TableSearch("PMA""PMA_BookMark""replace");
        
$url_goto "http://phpmyadmin.net";
        
$form $tableSearch->getSelectionForm($url_goto);
        
$this->assertContains(
            
'<fieldset id="fieldset_find_replace">',
            
$form
        
);
        
$this->assertContains(
            
__('Find and replace'),
            
$form
        
);
    }

    
/**
     * Test for getSecondaryTabs
     *
     * @return void
     */
    
public function testGetSecondaryTabs()
    {
        
$tableSearch = new PMA_TableSearch("PMA""PMA_BookMark""zoom");
        
$html $tableSearch->getSecondaryTabs();
        
$this->assertContains(
            
'<ul id="topmenu2">',
            
$html
        
);
        
//sub tabs
        
$this->assertContains(
            
__('Table search'),
            
$html
        
);
        
$this->assertContains(
            
__('Zoom search'),
            
$html
        
);
        
$this->assertContains(
            
__('Find and replace'),
            
$html
        
);
    }

    
/**
     * Test for getZoomResultsForm
     *
     * @return void
     */
    
public function testGetZoomResultsForm()
    {
        
$tableSearch = new PMA_TableSearch("PMA""PMA_BookMark""zoom");
        
$goto "http://phpmyadmin.net";
        
$data = array("PMAA" => "abc");
        
$html $tableSearch->getZoomResultsForm($goto$data);
        
$this->assertContains(
            
'<legend>' __('Browse/Edit the points') . '</legend>',
            
$html
        
);
        
$this->assertContains(
            
htmlspecialchars(json_encode($data)),
            
$html
        
);

    }

    
/**
     * Test for replace
     *
     * @return void
     */
    
public function testReplace()
    {
        
$tableSearch = new PMA_TableSearch("PMA""PMA_BookMark""zoom");
        
$columnIndex 0;
        
$find "Field";
        
$replaceWith "Column";
        
$useRegex false;
        
$charSet "UTF-8";
        
$tableSearch->replace(
            
$columnIndex$find$replaceWith$useRegex$charSet
        
);

        
$sql_query $GLOBALS['sql_query'];
        
$result "UPDATE `PMA`.`PMA_BookMark` SET `Field1` = "
            
"REPLACE(`Field1`, 'Field', 'Column') "
            
"WHERE `Field1` LIKE '%Field%' COLLATE UTF-8_bin";
        
$this->assertEquals(
            
$result,
            
$sql_query
        
);
    }

    
/**
     * Test for _getSearchAndReplaceHTML
     *
     * @return void
     */
    
public function testGetSearchAndReplaceHTML()
    {
        
$tableSearch = new PMA_TableSearch("PMA""PMA_BookMark""zoom");
        
$html $tableSearch->_getSearchAndReplaceHTML();
        
$this->assertContains(
            
__('Find:'),
            
$html
        
);
        
$this->assertContains(
            
__('Replace with:'),
            
$html
        
);

    }

    
/**
     * Test for getReplacePreview
     *
     * @return void
     */
    
public function testGetReplacePreview()
    {

        
$value = array(
                
'value',
                
'replace_value',
                
'count'
        
);

        
$dbi $GLOBALS['dbi'];

        
$dbi->expects($this->once())
            ->
method('fetchResult')
            ->
will($this->returnValue(array($value)));

        
$GLOBALS['dbi'] = $dbi;

        
$tableSearch = new PMA_TableSearch("PMA""PMA_BookMark""zoom");
        
$columnIndex 0;
        
$find "Field";
        
$replaceWith "Column";
        
$useRegex false;
        
$charSet "UTF-8";

        
$html $tableSearch->getReplacePreview(
            
$columnIndex,
            
$find,
            
$replaceWith,
            
$useRegex,
            
$charSet
        
);

        
$this->assertContains(
            
'<form method="post" action="tbl_find_replace.php"',
            
$html
        
);
        
$this->assertContains(
            
'<input type="hidden" name="replace" value="true" />',
            
$html
        
);
        
$this->assertContains(
            
__('Find and replace - preview'),
            
$html
        
);
        
$this->assertContains(
            
__('Original string'),
            
$html
        
);
        
$this->assertContains(
            
__('Replaced string'),
            
$html
        
);

        
$this->assertContains(
            
'<td>value</td>',
            
$html
        
);
        
$this->assertContains(
            
'<td>replace_value</td>',
            
$html
        
);
        
$this->assertContains(
            
'<td class="right">count</td>',
            
$html
        
);
    }

    
/**
     * Test for buildSqlQuery
     *
     * @return void
     */
    
public function testBuildSqlQueryw()
    {
        
$_POST['distinct'] = true;
        
$_POST['zoom_submit'] = true;
        
$_POST['table'] = "PMA";
        
$_POST['orderByColumn'] = "name";
        
$_POST['order'] = "asc";
        
$_POST['customWhereClause'] = "name='pma'";

        
$tableSearch = new PMA_TableSearch("PMA""PMA_BookMark""zoom");

        
$sql $tableSearch->buildSqlQuery();
        
$result "SELECT DISTINCT *  FROM `PMA` WHERE name='pma' "
            
"ORDER BY `name` asc";

        
$this->assertEquals(
            
$result,
            
$sql
        
);

        unset(
$_POST['customWhereClause']);
        
$sql $tableSearch->buildSqlQuery();
        
$result "SELECT DISTINCT *  FROM `PMA` ORDER BY `name` asc";
        
$this->assertEquals(
            
$result,
            
$sql
        
);

        
$_POST['criteriaValues'] = array(
            
'value1',
            
'value2',
            
'value3',
            
'value4',
            
'value5',
            
'value6',
            
'value7,value8'
        
);
        
$_POST['criteriaColumnNames'] = array(
            
'name',
            
'id',
            
'index',
            
'index2',
            
'index3',
            
'index4',
            
'index5',
        );
        
$_POST['criteriaColumnTypes'] = array(
            
'varchar',
            
'int',
            
'enum',
            
'type1',
            
'type2',
            
'type3',
            
'type4'
        
);
        
$_POST['criteriaColumnCollations'] = array(
            
"char1",
            
"char2",
            
"char3",
            
"char4",
            
"char5",
            
"char6",
            
"char7",
        );
        
$_POST['criteriaColumnOperators'] = array(
            
"!=",
            
">",
            
"IS NULL",
            
"LIKE %...%",
            
"REGEXP ^...$",
            
"IN (...)",
            
"BETWEEN"
        
);

        
$sql $tableSearch->buildSqlQuery();
        
$result "SELECT DISTINCT *  FROM `PMA` WHERE `name` != 'value1'"
            
" AND `id` > value2 AND `index` IS NULL AND `index2` LIKE '%value4%'"
            
" AND `index3` REGEXP ^value5$ AND `index4` IN (value6) AND `index5`"
            
" BETWEEN value7 AND value8 ORDER BY `name` asc";
        
$this->assertEquals(
            
$result,
            
$sql
        
);
    }
}
?>

:: 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.0043 ]--