!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.18 GB of 93.48 GB (9.82%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     PMA_Config_test.php (29.32 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
 * Test for PMA_Config class
 *
 * @package PhpMyAdmin-test
 * @group current
 */

/*
 * Include to test.
 */
require_once 'libraries/core.lib.php';
require_once 
'libraries/Config.class.php';
require_once 
'libraries/relation.lib.php';
require_once 
'libraries/Theme.class.php';
require_once 
'libraries/vendor_config.php';
require_once 
'libraries/url_generating.lib.php';
require_once 
'libraries/php-gettext/gettext.inc';

/**
 * Tests behaviour of PMA_Config class
 *
 * @package PhpMyAdmin-test
 */
class PMA_ConfigTest extends PHPUnit_Framework_TestCase
{
    
/**
     * Turn off backup globals
     */
    
protected $backupGlobals false;

    
/**
     * @var PMA_Config
     */
    
protected $object;

    
/**
     * @var object to test file permission
     */
    
protected $permTestObj;

    
/**
     * Sets up the fixture, for example, opens a network connection.
     * This method is called before a test is executed.
     *
     * @return void
     */
    
protected function setUp()
    {
        
$this->object = new PMA_Config;
        
$GLOBALS['server'] = 0;
        
$_SESSION['is_git_revision'] = true;
        
$GLOBALS['PMA_Config'] = new PMA_Config(CONFIG_FILE);

        
//for testing file permissions
        
$this->permTestObj = new PMA_Config("./config.sample.inc.php");
    }

    
/**
     * Tears down the fixture, for example, closes a network connection.
     * This method is called after a test is executed.
     *
     * @return void
     */
    
protected function tearDown()
    {
        unset(
$this->object);
        unset(
$this->permTestObj);
    }

    
/**
     * Test for CheckSystem
     *
     * @return void
     * @group medium
     */
    
public function testCheckSystem()
    {
        
$this->object->checkSystem();

        
$this->assertNotNull($this->object->get('PMA_VERSION'));
        
$this->assertNotEmpty($this->object->get('PMA_THEME_VERSION'));
        
$this->assertNotEmpty($this->object->get('PMA_THEME_GENERATION'));
    }

    
/**
     * Test for GetFontsizeForm
     *
     * @return void
     */
    
public function testGetFontsizeForm()
    {
        
$this->assertContains(
            
'<form name="form_fontsize_selection" id="form_fontsize_selection"',
            
PMA_Config::getFontsizeForm()
        );

        
$this->assertContains(
            
'<label for="select_fontsize">',
            
PMA_Config::getFontsizeForm()
        );

        
//test getFontsizeOptions for "em" unit
        
$fontsize $GLOBALS['PMA_Config']->get('fontsize');
        
$GLOBALS['PMA_Config']->set('fontsize''');
        
$_COOKIE['pma_fontsize'] = "10em";
        
$this->assertContains(
            
'<option value="7em"',
            
PMA_Config::getFontsizeForm()
        );
        
$this->assertContains(
            
'<option value="8em"',
            
PMA_Config::getFontsizeForm()
        );

        
//test getFontsizeOptions for "pt" unit
        
$_COOKIE['pma_fontsize'] = "10pt";
        
$this->assertContains(
            
'<option value="2pt"',
            
PMA_Config::getFontsizeForm()
        );
        
$this->assertContains(
            
'<option value="4pt"',
            
PMA_Config::getFontsizeForm()
        );

        
//test getFontsizeOptions for "px" unit
        
$_COOKIE['pma_fontsize'] = "10px";
        
$this->assertContains(
            
'<option value="5px"',
            
PMA_Config::getFontsizeForm()
        );
        
$this->assertContains(
            
'<option value="6px"',
            
PMA_Config::getFontsizeForm()
        );

        
//test getFontsizeOptions for unknown unit
        
$_COOKIE['pma_fontsize'] = "10abc";
        
$this->assertContains(
            
'<option value="7abc"',
            
PMA_Config::getFontsizeForm()
        );
        
$this->assertContains(
            
'<option value="8abc"',
            
PMA_Config::getFontsizeForm()
        );
        unset(
$_COOKIE['pma_fontsize']);
        
//rollback the fontsize setting
        
$GLOBALS['PMA_Config']->set('fontsize'$fontsize);
    }

    
/**
     * Test for checkOutputCompression
     *
     * @return void
     */
    
public function testCheckOutputCompression()
    {

        
$this->object->set('OBGzip''auto');

        
$this->object->set('PMA_USR_BROWSER_AGENT''IE');
        
$this->object->set('PMA_USR_BROWSER_VER'6);
        
$this->object->checkOutputCompression();
        
$this->assertFalse($this->object->get("OBGzip"));

        
$this->object->set('OBGzip''auto');
        
$this->object->set('PMA_USR_BROWSER_AGENT''MOZILLA');
        
$this->object->set('PMA_USR_BROWSER_VER'5);
        
$this->object->checkOutputCompression();
        
$this->assertTrue($this->object->get("OBGzip"));
    }

    
/**
     * Tests client parsing code.
     *
     * @param string $agent   User agent string
     * @param string $os      Expected parsed OS (or null if none)
     * @param string $browser Expected parsed browser (or null if none)
     * @param string $version Expected browser version (or null if none)
     *
     * @return void
     *
     * @dataProvider userAgentProvider
     */
    
public function testCheckClient($agent$os$browser null$version null)
    {
        
$_SERVER['HTTP_USER_AGENT'] = $agent;
        
$this->object->checkClient();
        
$this->assertEquals($os$this->object->get('PMA_USR_OS'));
        if (
$os != null) {
            
$this->assertEquals(
                
$browser,
                
$this->object->get('PMA_USR_BROWSER_AGENT')
            );
        }
        if (
$version != null) {
            
$this->assertEquals(
                
$version,
                
$this->object->get('PMA_USR_BROWSER_VER')
            );
        }
    }

    
/**
     * user Agent Provider
     *
     * @return array
     */
    
public function userAgentProvider()
    {
        return array(
            array(
                
'Opera/9.80 (X11; Linux x86_64; U; pl) Presto/2.7.62 Version/11.00',
                
'Linux',
                
'OPERA',
                
'9.80',
            ),
            array(
                
'Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US) AppleWebKit/'
                
'528.16 OmniWeb/622.8.0.112941',
                
'Mac',
                
'OMNIWEB',
                
'622',
            ),
            array(
                
'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1)',
                
'Win',
                
'IE',
                
'8.0',
            ),
            array(
                
'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)',
                
'Win',
                
'IE',
                
'9.0',
            ),
            array(
                
'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; '
                
'Trident/6.0)',
                
'Win',
                
'IE',
                
'10.0',
            ),
            array(
                
'Mozilla/5.0 (IE 11.0; Windows NT 6.3; Trident/7.0; .NET4.0E; '
                
'.NET4.0C; rv:11.0) like Gecko',
                
'Win',
                
'IE',
                
'11.0',
            ),
            array(
                
'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; '
                
'.NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; '
                
'.NET CLR 3.0.30729; InfoPath.3; rv:11.0) like Gecko',
                
'Win',
                
'IE',
                
'11.0',
            ),
            array(
                
'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, '
                
'like Gecko) Chrome/25.0.1364.172 Safari/537.22',
                
'Win',
                
'CHROME',
                
'25.0.1364.172',
            ),
            array(
                
'Mozilla/5.0 (Unknown; U; Unix BSD/SYSV system; C -) '
                
'AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.10.2',
                
'Unix',
                
'SAFARI',
                
'5.0.419',
            ),
            array(
                
'Mozilla/5.0 (Windows; U; Win95; en-US; rv:1.9b) Gecko/20031208',
                
'Win',
                
'GECKO',
                
'1.9',
            ),
            array(
                
'Mozilla/5.0 (compatible; Konqueror/4.5; NetBSD 5.0.2; X11; '
                
'amd64; en_US) KHTML/4.5.4 (like Gecko)',
                
'Other',
                
'KONQUEROR',
            ),
            array(
                
'Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20100101 Firefox/5.0',
                
'Linux',
                
'FIREFOX',
                
'5.0',
            ),
            array(
                
'Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 '
                
'Firefox/12.0',
                
'Linux',
                
'FIREFOX',
                
'12.0',
            ),
            
/**
             * @todo Is this version really expected?
             */
            
array(
                
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.4+ (KHTML, like G'
                
'ecko) Version/5.0 Safari/535.4+ SUSE/12.1 (3.2.1) Epiphany/3.2.1',
                
'Linux',
                
'SAFARI',
                
'5.0',
            ),
        );

    }


    
/**
     * test for CheckGd2
     *
     * @return array
     */
    
public function testCheckGd2()
    {
        
$prevIsGb2Val $this->object->get('PMA_IS_GD2');

        
$this->object->set('GD2Available''yes');
        
$this->object->checkGd2();
        
$this->assertEquals(1$this->object->get('PMA_IS_GD2'));

        
$this->object->set('GD2Available''no');
        
$this->object->checkGd2();
        
$this->assertEquals(0$this->object->get('PMA_IS_GD2'));

        
$this->object->set('GD2Available'$prevIsGb2Val);

        if (!@
function_exists('imagecreatetruecolor')) {
            
$this->object->checkGd2();
            
$this->assertEquals(
                
0,
                
$this->object->get('PMA_IS_GD2'),
                
'imagecreatetruecolor does not exist, PMA_IS_GD2 should be 0'
            
);
        }

        if (@
function_exists('gd_info')) {
            
$this->object->checkGd2();
            
$gd_nfo gd_info();
            if (
/*overload*/mb_strstr($gd_nfo["GD Version"], '2.')) {
                
$this->assertEquals(
                    
1,
                    
$this->object->get('PMA_IS_GD2'),
                    
'GD Version >= 2, PMA_IS_GD2 should be 1'
                
);
            } else {
                
$this->assertEquals(
                    
0,
                    
$this->object->get('PMA_IS_GD2'),
                    
'GD Version < 2, PMA_IS_GD2 should be 0'
                
);
            }
        }

        
/* Get GD version string from phpinfo output */
        
ob_start();
        
phpinfo(INFO_MODULES); /* Only modules */
        
$a strip_tags(ob_get_contents());
        
ob_end_clean();

        if (
preg_match('@GD Version[[:space:]]*\(.*\)@'$a$v)) {
            if (
/*overload*/mb_strstr($v'2.')) {
                
$this->assertEquals(
                    
1,
                    
$this->object->get('PMA_IS_GD2'),
                    
'PMA_IS_GD2 should be 1'
                
);
            } else {
                
$this->assertEquals(
                    
0,
                    
$this->object->get('PMA_IS_GD2'),
                    
'PMA_IS_GD2 should be 0'
                
);
            }
        }
    }

    
/**
     * Web server detection test
     *
     * @param string  $server Server identification
     * @param boolean $iis    Whether server should be detected as IIS
     *
     * @return void
     *
     * @dataProvider serverNames
     */
    
public function testCheckWebServer($server$iis)
    {
        
$_SERVER['SERVER_SOFTWARE'] = $server;
        
$this->object->checkWebServer();
        
$this->assertEquals($iis$this->object->get('PMA_IS_IIS'));
        unset(
$_SERVER['SERVER_SOFTWARE']);
    }


    
/**
     * return server names
     *
     * @return array
     */
    
public function serverNames()
    {
        return array(
            array(
                
"Microsoft-IIS 7.0",
                
1,
            ),
            array(
                
"Apache/2.2.17",
                
0,
            ),
        );
    }


    
/**
     * test for CheckWebServerOs
     *
     * @return array
     */
    
public function testCheckWebServerOs()
    {
        
$this->object->checkWebServerOs();

        if (
defined('PHP_OS')) {
            if (
stristr(PHP_OS'darwin')) {
                
$this->assertEquals(0$this->object->get('PMA_IS_WINDOWS'));
            } elseif (
stristr(PHP_OS'win')) {
                
$this->assertEquals(1$this->object->get('PMA_IS_WINDOWS'));
            } elseif (
stristr(PHP_OS'OS/2')) {
                
$this->assertEquals(1$this->object->get('PMA_IS_WINDOWS'));
            } elseif (
stristr(PHP_OS'Linux')) {
                
$this->assertEquals(0$this->object->get('PMA_IS_WINDOWS'));
            } else {
                
$this->markTestIncomplete('Not known PHP_OS: ' PHP_OS);
            }
        } else {
            
$this->assertEquals(0$this->object->get('PMA_IS_WINDOWS'));

            
define('PHP_OS''Windows');
            
$this->assertEquals(1$this->object->get('PMA_IS_WINDOWS'));
        }
    }

    
/**
     * test for CheckPhpVersion
     *
     * @return array
     */
    
public function testCheckPhpVersion()
    {
        
$this->object->checkPhpVersion();

        
$php_int_ver 0;
        
$php_str_ver phpversion();

        
$match = array();
        
preg_match(
            
'@([0-9]{1,2}).([0-9]{1,2}).([0-9]{1,2})@',
            
phpversion(),
            
$match
        
);
        if (isset(
$match) && ! empty($match[1])) {
            if (! isset(
$match[2])) {
                
$match[2] = 0;
            }
            if (! isset(
$match[3])) {
                
$match[3] = 0;
            }
            
$php_int_ver = (int) sprintf(
                
'%d%02d%02d',
                
$match[1],
                
$match[2],
                
$match[3]
            );
        } else {
            
$php_int_ver 0;
        }

        
$this->assertEquals(
            
$php_str_ver,
            
$this->object->get('PMA_PHP_STR_VERSION')
        );
        
$this->assertEquals(
            
$php_int_ver,
            
$this->object->get('PMA_PHP_INT_VERSION')
        );
    }

    
/**
     * Tests loading of default values
     *
     * @return void
     *
     * @group large
     */
    
public function testLoadDefaults()
    {
        
$prevDefaultSource $this->object->default_source;

        
$this->object->default_source 'unexisted.file.php';
        
$this->assertFalse($this->object->loadDefaults());

        
$this->object->default_source $prevDefaultSource;

        include 
$this->object->default_source;

        
$loadedConf $cfg;
        unset(
$cfg);

        
$this->assertTrue($this->object->loadDefaults());

        
$this->assertEquals(
            
$this->object->default_source_mtime,
            
filemtime($prevDefaultSource)
        );
        
$this->assertEquals(
            
$loadedConf['Servers'][1],
            
$this->object->default_server
        
);

        unset(
$loadedConf['Servers']);

        
$this->assertEquals($loadedConf$this->object->default);

        
$expectedSettings PMA_arrayMergeRecursive(
            
$this->object->settings,
            
$loadedConf
        
);

        
$this->assertEquals(
            
$expectedSettings,
            
$this->object->settings,
            
'Settings loaded wrong'
        
);

        
$this->assertFalse($this->object->error_config_default_file);
    }

    
/**
     * test for CheckConfigSource
     *
     * @return array
     */
    
public function testCheckConfigSource()
    {
        
$this->object->setSource('unexisted.config.php');
        
$this->assertFalse($this->object->checkConfigSource());
        
$this->assertEquals(0$this->object->source_mtime);

        
$this->object->setSource('libraries/config.default.php');

        
$this->assertNotEmpty($this->object->getSource());
        
$this->assertTrue($this->object->checkConfigSource());
    }

    
/**
     * Test getting and setting config values
     *
     * @return void
     */
    
public function testGetAndSet()
    {
        
$this->assertNull($this->object->get("unresisting_setting"));

        
$this->object->set('test_setting''test_value');

        
$this->assertEquals('test_value'$this->object->get('test_setting'));
    }

    
/**
     * Tests setting configuration source
     *
     * @return void
     */
    
public function testGetSetSource()
    {
        echo 
$this->object->getSource();

        
$this->assertEmpty($this->object->getSource(), "Source is null by default");

        
$this->object->setSource("config.sample.inc.php");

        
$this->assertEquals(
            
"config.sample.inc.php",
            
$this->object->getSource(),
            
"Cant set new source"
        
);
    }


    
/**
     * test for CheckPmaAbsoluteUriEmpty
     *
     * @return array
     */
    
public function testCheckPmaAbsoluteUriEmpty()
    {
        
$this->object->set('PmaAbsoluteUri''');
        
$this->assertNull(
            
$this->object->checkPmaAbsoluteUri(),
            
'PmaAbsoluteUri is not set and should be error'
        
);
        
$this->assertTrue(
            
$this->object->error_pma_uri,
            
'PmaAbsoluteUri is not set and should be error'
        
);
    }

    
/**
     * Checks correcting of absolute URI
     *
     * @param string $real     Real URI received
     * @param string $expected Expected corrected URI
     *
     * @return void
     *
     * @depends testCheckPmaAbsoluteUriEmpty
     * @dataProvider absoluteUris
     */
    
public function testCheckPmaAbsoluteUri($real$expected)
    {
        
$this->object->set('PmaAbsoluteUri'$real);
        
$this->object->checkPmaAbsoluteUri();
        
$this->assertEquals($expected$this->object->get('PmaAbsoluteUri'));
    }

    
/**
     * return absolute Uris
     *
     * @return array
     */
    
public function absoluteUris()
    {
        return array(
            array(
                
'http://localhost/phpmyadmin/',
                
'http://localhost/phpmyadmin/',
            ),
            array(
                
'http://localhost/phpmyadmin',
                
'http://localhost/phpmyadmin/',
            ),
            array(
                
'localhost/phpmyadmin/',
                
'http://localhost/phpmyadmin/',
            ),
            array(
                
'http://user:pwd@localhost/phpmyadmin/index.php',
                
"http://user:pwd@localhost/phpmyadmin/index.php/",
            ),
            array(
                
'https://user:pwd@localhost/phpmyadmin/index.php',
                
"https://user:pwd@localhost/phpmyadmin/index.php/",
            ),
        );
    }

    
/**
     * Test for absolute URI composition
     *
     * @return void
     *
     * @depends testCheckPmaAbsoluteUri
     */
    
public function testCheckPmaAbsoluteUriScheme()
    {
        
$_SERVER['HTTP_HOST'] = 'localhost';
        
$_SERVER['HTTP_SCHEME'] = 'http';
        
$_SERVER['HTTPS'] = 'off';
        
$GLOBALS['PMA_PHP_SELF'] = 'index.php';

        
$this->object->set('PmaAbsoluteUri''');

        
$this->object->checkPmaAbsoluteUri();
        
$this->assertEquals(
            
"http://localhost/",
            
$this->object->get('PmaAbsoluteUri')
        );
    }

    
/**
     * test for CheckCollationConnection
     *
     * @return array
     */
    
public function testCheckCollationConnection()
    {
        
$_REQUEST['collation_connection'] = 'utf-8';
        
$this->object->checkCollationConnection();

        
$this->assertEquals(
            
$_REQUEST['collation_connection'],
            
$this->object->get('collation_connection')
        );
    }

    
/**
     * test for IsHttp
     *
     * @return array
     */
    
public function testIsHttps()
    {
        
$this->object->set('is_https'null);
        
$this->object->set('PmaAbsoluteUri''http://some_host.com/phpMyAdmin');
        
$this->assertFalse($this->object->isHttps());

        
$this->object->set('is_https'null);
        
$this->object->set('PmaAbsoluteUri''https://some_host.com/phpMyAdmin');
        
$this->assertTrue($this->object->isHttps());
    }

    
/**
     * test for DetectHttps
     *
     * @return array
     */
    
public function testDetectHttps()
    {
        unset(
$_SERVER['REQUEST_URI']);
        unset(
$_SERVER['HTTP_SCHEME']);
        unset(
$_SERVER['HTTPS']);

        
$this->assertFalse($this->object->detectHttps());

        
$_SERVER['REQUEST_URI'] = '/url:\this_is_not_url';
        
$this->assertFalse($this->object->detectHttps());

        
$_SERVER['REQUEST_URI'] = 'file://localhost/phpmyadmin/index.php';
        
$this->assertFalse($this->object->detectHttps());

        
$_ENV['REQUEST_URI'] = 'http://localhost/phpmyadmin/index.php';
        
$this->assertFalse($this->object->detectHttps());

        
$_SERVER['REQUEST_URI'] = 'https://localhost/phpmyadmin/index.php';
        
$this->assertTrue($this->object->detectHttps());

        
$_SERVER['REQUEST_URI'] = 'localhost/phpmyadmin/index.php';
        
$_SERVER['HTTP_SCHEME'] = 'https';
        
$_SERVER['HTTPS'] = 'on';
        
$this->assertTrue($this->object->detectHttps());
    }

    
/**
     * Test for checking cookie path
     *
     * @return void
     *
     * @depends testDetectHttps
     */
    
public function testCheckCookiePath()
    {
        
$this->object->checkCookiePath();
        echo 
$this->object->get('cookie_path');
        
$this->assertEquals(''$this->object->get('cookie_path'));
    }

    
/**
     * Test for backward compatibility globals
     *
     * @return void
     *
     * @depends testCheckSystem
     * @depends testCheckWebServer
     * @depends testLoadDefaults
     *
     * @group large
     */
    
public function testEnableBc()
    {
        
$this->object->enableBc();

        
$defines = array(
            
'PMA_VERSION',
            
'PMA_THEME_VERSION',
            
'PMA_THEME_GENERATION',
            
'PMA_PHP_STR_VERSION',
            
'PMA_PHP_INT_VERSION',
            
'PMA_IS_WINDOWS',
            
'PMA_IS_IIS',
            
'PMA_IS_GD2',
            
'PMA_USR_OS',
            
'PMA_USR_BROWSER_VER',
            
'PMA_USR_BROWSER_AGENT'
            
);

        foreach (
$defines as $define) {
            
$this->assertTrue(defined($define));
            
$this->assertEquals(constant($define), $this->object->get($define));
        }
    }

    
/**
     * Test for getting cookie path
     *
     * @param string $absolute The absolute URL used for phpMyAdmin
     * @param string $expected Expected cookie path
     *
     * @return void
     *
     * @dataProvider cookieUris
     */
    
public function testGetCookiePath($absolute$expected)
    {
        
$this->object->set('PmaAbsoluteUri'$absolute);
        
$this->assertEquals($expected$this->object->getCookiePath());
    }

    
/**
     * Data provider for testGetCookiePath
     *
     * @return array data for testGetCookiePath
     */
    
public function cookieUris()
    {
        return array(
            array(
                
'http://example.net/phpmyadmin/',
                
'/phpmyadmin/',
            ),
            array(
                
'http://example.net/',
                
'/',
            ),
        );
    }

    
/**
     * Tests loading of config file
     *
     * @param string  $source File name of config to load
     * @param boolean $result Expected result of loading
     *
     * @return void
     *
     * @dataProvider configPaths
     */
    
public function testLoad($source$result)
    {
        if (
$result) {
            
$this->assertTrue($this->object->load($source));
        } else {
            
$this->assertFalse($this->object->load($source));
        }
    }

    
/**
     * return of config Paths
     *
     * @return array
     */
    
public function configPaths()
    {
        return array(
            array(
                
'./test/test_data/config.inc.php',
                
true,
            ),
            array(
                
'./test/test_data/config-nonexisting.inc.php',
                
false,
            ),
            array(
                
'./libraries/config.default.php',
                
true,
            ),
        );
    }

    
/**
     * Test for loading user preferences
     *
     * @return void
     * @todo Test actually preferences loading
     */
    
public function testLoadUserPreferences()
    {
        
$this->assertNull($this->object->loadUserPreferences());
    }

    
/**
     * Test for setting user config value
     *
     * @return void
     */
    
public function testSetUserValue()
    {
        
$this->object->setUserValue(null'lang''cs''en');
        
$this->object->setUserValue("TEST_COOKIE_USER_VAL"'''cfg_val_1');
        
$this->assertEquals(
            
$this->object->getUserValue("TEST_COOKIE_USER_VAL"'fail'),
            
'cfg_val_1'
        
);
    }

    
/**
     * Test for getting user config value
     *
     * @return void
     */
    
public function testGetUserValue()
    {
        
$this->assertEquals($this->object->getUserValue('test_val''val'), 'val');
    }

    
/**
     * Should test getting unique value for theme
     *
     * @return void
     */
    
public function testGetThemeUniqueValue()
    {

        
$_SESSION['PMA_Theme'] = PMA_Theme::load('./themes/pmahomme');

        
$partial_sum = (
            
PHPUnit_Framework_Assert::readAttribute($this->object'source_mtime') +
            
PHPUnit_Framework_Assert::readAttribute(
                
$this->object,
                
'default_source_mtime'
            
) +
            
$this->object->get('user_preferences_mtime') +
            
$_SESSION['PMA_Theme']->mtime_info +
            
$_SESSION['PMA_Theme']->filesize_info
        
);

        
$this->object->set('fontsize'10);
        
$this->assertEquals(10 $partial_sum$this->object->getThemeUniqueValue());
        
$this->object->set('fontsize'null);

        
$_COOKIE['pma_fontsize'] = 20;
        
$this->assertEquals(20 $partial_sum$this->object->getThemeUniqueValue());
        unset(
$_COOKIE['pma_fontsize']);

        
$this->assertEquals($partial_sum$this->object->getThemeUniqueValue());

    }

    
/**
     * Should test checking of config permissions
     *
     * @return void
     */
    
public function testCheckPermissions()
    {
        
//load file permissions for the current permissions file
        
$perms = @fileperms($this->object->getSource());
        
//testing for permissions for no configuration file
        
$this->assertFalse(!($perms === false) && ($perms 2));

        
//load file permissions for the current permissions file
        
$perms = @fileperms($this->permTestObj->getSource());
        
//testing for permissions
        
$this->assertFalse(!($perms === false) && ($perms 2));

        
//if the above assertion is false then applying further assertions
        
if (!($perms === false) && ($perms 2)) {
            
$this->assertFalse($this->permTestObj->get('PMA_IS_WINDOWS') == 0);
        }
    }


    
/**
     * Test for setting cookies
     *
     * @return void
     */
    
public function testSetCookie()
    {
        
$this->assertFalse(
            
$this->object->setCookie(
                
'TEST_DEF_COOKIE',
                
'test_def_123',
                
'test_def_123'
            
)
        );

        
$this->assertTrue(
            
$this->object->setCookie(
                
'TEST_CONFIG_COOKIE',
                
'test_val_123',
                
null,
                
3600
            
)
        );

        
$this->assertTrue(
            
$this->object->setCookie(
                
'TEST_CONFIG_COOKIE',
                
'',
                
'default_val'
            
)
        );

        
$_COOKIE['TEST_MANUAL_COOKIE'] = 'some_test_val';
        
$this->assertTrue(
            
$this->object->setCookie(
                
'TEST_MANUAL_COOKIE',
                
'other',
                
'other'
            
)
        );

    }

    
/**
     * Test for isGitRevision
     *
     * @return void
     */
    
public function testIsGitRevision()
    {
        
$this->assertTrue(
            
$this->object->isGitRevision()
        );
    }

    
/**
     * Test for Check HTTP
     *
     * @group medium
     *
     * @return void
     */
    /*
    public function testCheckHTTP()
    {
        if (! function_exists('curl_init')) {
            $this->markTestSkipped('Missing curl extension!');
        }
        $this->assertTrue(
            $this->object->checkHTTP("https://www.phpmyadmin.net/test/data")
        );
        $this->assertContains(
            "TEST DATA",
            $this->object->checkHTTP("https://www.phpmyadmin.net/test/data", true)
        );
        $this->assertFalse(
            $this->object->checkHTTP("https://www.phpmyadmin.net/test/nothing")
        );
    }
    */
    /**
     * Tests for rewriting URL to SSL variant
     *
     * @param string $original Original URL
     * @param string $expected Expected URL rewritten to SSL
     *
     * @return void
     *
     * @dataProvider sslUris
     */
    
public function testSSLUri($original$expected)
    {
        
$this->object->set('PmaAbsoluteUri'$original);
        
$this->assertEquals($expected$this->object->getSSLUri());
    }


    
/**
     * return of ssl Uris
     *
     * @return array
     */
    
public function sslUris()
    {
        return array(
            array(
                
'http://server.foo/path/',
                
'https://server.foo:443/path/'
            
),
            array(
                
'http://server.foo:80/path/',
                
'https://server.foo:443/path/'
            
),
            array(
                
'http://server.foo.bar:123/path/',
                
'https://server.foo.bar:443/path/'
            
),
            array(
                
'http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/',
                
'https://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:443/'
            
),
            );
    }
}
?>

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