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


Viewing file:     PMA_ConfigFile_test.php (15.43 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
 * Tests for Config File Management
 *
 * @package PhpMyAdmin-test
 */

/*
 * Include to test.
 */
require_once 'libraries/config/ConfigFile.class.php';
require_once 
'libraries/php-gettext/gettext.inc';

/**
 * Tests for Config File Management
 *
 * @package PhpMyAdmin-test
 */
class PMA_ConfigFile_Test extends PHPUnit_Framework_TestCase
{
    
/**
     * Any valid key that exists in config.default.php and isn't empty
     * @var string
     */
    
const SIMPLE_KEY_WITH_DEFAULT_VALUE 'DefaultQueryTable';

    
/**
     * Object under test
     * @var ConfigFile
     */
    
protected $object;

    
/**
     * Setup function for test cases
     *
     * @access protected
     * @return void
     */
    
protected function setUp()
    {
        
$GLOBALS['server'] = 1;
        
$GLOBALS['cfg']['AvailableCharsets'] = array();
        
$this->object = new ConfigFile();
    }

    
/**
     * TearDown function for test cases
     *
     * @return void
     */
    
protected function tearDown()
    {
        unset(
$_SESSION[$this->readAttribute($this->object"_id")]);
        unset(
$this->object);
    }

    
/**
     * Test for new ConfigFile()
     *
     * @return void
     * @test
     */
    
public function testNewObjectState()
    {
        
// Check default dynamic values
        
$this->assertEquals(
            
"82%",
            
$this->object->getDefault('fontsize')
        );

        
$this->assertEquals(
            array(),
            
$this->object->getConfig()
        );

        
// Check environment state
        
$this->assertEquals(
            array(),
            
$_SESSION["ConfigFile1"]
        );

        
// Validate default value used in tests
        
$default_value $this->object->getDefault(
            
self::SIMPLE_KEY_WITH_DEFAULT_VALUE
        
);
        
$this->assertNotNull($default_value);
    }

    
/**
     * Test for ConfigFile::setPersistKeys()
     *
     * @return void
     * @test
     */
    
public function testPersistentKeys()
    {
        
$default_simple_value $this->object->getDefault(
            
self::SIMPLE_KEY_WITH_DEFAULT_VALUE
        
);
        
$default_host $this->object->getDefault('Servers/1/host');
        
$default_config = array(
            
self::SIMPLE_KEY_WITH_DEFAULT_VALUE => $default_simple_value,
            
'Servers/1/host' => $default_host,
            
'Servers/2/host' => $default_host);

        
/**
         * Case 1: set default value, key should not be persisted
         */
        
$this->object->set(
            
self::SIMPLE_KEY_WITH_DEFAULT_VALUE$default_simple_value
        
);
        
$this->object->set('Servers/1/host'$default_host);
        
$this->object->set('Servers/2/host'$default_host);
        
$this->assertEmpty($this->object->getConfig());

        
/**
         * Case 2: persistent keys should be always present in flat array,
         * even if not explicitly set (unless they are Server entries)
         */
        
$this->object->setPersistKeys(array_keys($default_config));
        
$this->object->resetConfigData();
        
$this->assertEmpty($this->object->getConfig());
        
$this->assertEquals(
            
$default_config,
            
$this->object->getConfigArray()
        );

        
/**
         * Case 3: persistent keys should be always saved,
         * even if set to default values
         */
        
$this->object->set('Servers/2/host'$default_host);
        
$this->assertEquals(
            array(
'Servers' => array(=> array('host' => $default_host))),
            
$this->object->getConfig()
        );
    }

    
/**
     * Test for ConfigFile::setAllowedKeys
     *
     * @return void
     * @test
     */
    
public function testAllowedKeys()
    {
        
/**
         * Case 1: filter should not allow to set b
         */
        
$this->object->setAllowedKeys(array('a''c'));
        
$this->object->set('a'1);
        
$this->object->set('b'2);
        
$this->object->set('c'3);

        
$this->assertEquals(
            array(
'a' => 1'c' => 3),
            
$this->object->getConfig()
        );

        
/**
         * Case 2: disabling filter should allow to set b
         */
        
$this->object->setAllowedKeys(null);
        
$this->object->set('b'2);

        
$this->assertEquals(
            array(
'a' => 1'b' => 2'c' => 3),
            
$this->object->getConfig()
        );
    }

    
/**
     * Test for ConfigFile::setCfgUpdateReadMapping
     *
     * @return void
     * @test
     */
    
public function testConfigReadMapping()
    {
        
$this->object->setCfgUpdateReadMapping(
            array(
                
'Servers/value1' => 'Servers/1/value1',
                
'Servers/value2' => 'Servers/1/value2'
            
)
        );
        
$this->object->set('Servers/1/passthrough1'1);
        
$this->object->set('Servers/1/passthrough2'2);
        
$this->object->updateWithGlobalConfig(array('Servers/value1' => 3));

        
$this->assertEquals(
            array(
'Servers' => array(
                
=> array(
                    
'passthrough1' => 1,
                    
'passthrough2' => 2,
                    
'value1' => 3))),
            
$this->object->getConfig()
        );
        
$this->assertEquals(
            
3,
            
$this->object->get('Servers/1/value1')
        );
    }

    
/**
     * Test for ConfigFile::resetConfigData
     *
     * @return void
     * @test
     */
    
public function testResetConfigData()
    {
        
$this->object->set('key''value');

        
$this->object->resetConfigData();

        
$this->assertEmpty($this->object->getConfig());
        
$this->assertEmpty($this->object->getConfigArray());
    }

    
/**
     * Test for ConfigFile::setConfigData
     *
     * @return void
     * @test
     */
    
public function testSetConfigData()
    {
        
$this->object->set('abc''should be deleted by setConfigData');
        
$this->object->setConfigData(array('a' => 'b'));

        
$this->assertEquals(
            array(
'a' => 'b'),
            
$this->object->getConfig()
        );
        
$this->assertEquals(
            array(
'a' => 'b'),
            
$this->object->getConfigArray()
        );
    }

    
/**
     * Test for ConfigFile::set and ConfigFile::get
     *
     * @return void
     * @test
     */
    
public function testBasicSetUsage()
    {
        
$default_host $this->object->getDefault('Servers/1/host');
        
$nondefault_host $default_host '.abc';

        
$this->object->set('Servers/4/host'$nondefault_host);
        
$this->object->set('Servers/5/host'$default_host);
        
$this->object->set('Servers/6/host'$default_host'Servers/6/host');
        
$this->assertEquals(
            
$nondefault_host,
            
$this->object->get('Servers/4/host')
        );
        
$this->assertEquals(
            
null,
            
$this->object->get('Servers/5/host')
        );
        
$this->assertEquals(
            
$default_host,
            
$this->object->get('Servers/6/host')
        );

        
// return default value for nonexistent keys
        
$this->assertNull(
            
$this->object->get('key not excist')
        );
        
$this->assertEquals(
            array(
1),
            
$this->object->get('key not excist', array(1))
        );
        
$default = new stdClass();
        
$this->assertInstanceOf(
            
'stdClass',
            
$this->object->get('key not excist'$default)
        );
    }

    
/**
     * Test for ConfigFile::set - in PMA Setup
     *
     * @return void
     * @test
     */
    
public function testConfigFileSetInSetup()
    {
        
$default_value $this->object->getDefault(
            
self::SIMPLE_KEY_WITH_DEFAULT_VALUE
        
);

        
// default values are not written
        
$this->object->set(self::SIMPLE_KEY_WITH_DEFAULT_VALUE$default_value);
        
$this->assertEmpty($this->object->getConfig());
    }

    
/**
     * Test for ConfigFile::set - in user preferences
     *
     * @return void
     * @test
     */
    
public function testConfigFileSetInUserPreferences()
    {
        
$default_value $this->object->getDefault(
            
self::SIMPLE_KEY_WITH_DEFAULT_VALUE
        
);

        
// values are not written when they are the same as in config.inc.php
        
$this->object = new ConfigFile(
            array(
self::SIMPLE_KEY_WITH_DEFAULT_VALUE => $default_value)
        );
        
$this->object->set(self::SIMPLE_KEY_WITH_DEFAULT_VALUE$default_value);
        
$this->assertEmpty($this->object->getConfig());

        
// but if config.inc.php differs from config.default.php,
        // allow to overwrite with value from config.default.php
        
$config_inc_php_value $default_value 'suffix';
        
$this->object = new ConfigFile(
            array(
self::SIMPLE_KEY_WITH_DEFAULT_VALUE => $config_inc_php_value)
        );
        
$this->object->set(self::SIMPLE_KEY_WITH_DEFAULT_VALUE$default_value);
        
$this->assertEquals(
            array(
self::SIMPLE_KEY_WITH_DEFAULT_VALUE => $default_value),
            
$this->object->getConfig()
        );
    }

    
/**
     * Test for ConfigFile::getFlatDefaultConfig
     *
     * @return void
     * @test
     * @group medium
     */
    
public function testGetFlatDefaultConfig()
    {
        
$flat_default_config $this->object->getFlatDefaultConfig();

        
$default_value $this->object->getDefault(
            
self::SIMPLE_KEY_WITH_DEFAULT_VALUE
        
);
        
$this->assertEquals(
            
$default_value$flat_default_config[self::SIMPLE_KEY_WITH_DEFAULT_VALUE]
        );

        
$localhost_value $this->object->getDefault('Servers/1/host');
        
$this->assertEquals(
            
$localhost_value$flat_default_config['Servers/1/host']
        );

        
$cfg = array();
        include 
'./libraries/config.default.php';
        
// verify that $cfg read from config.default.php is valid
        
$this->assertGreaterThanOrEqual(100count($cfg));
        
$this->assertGreaterThanOrEqual(count($cfg), count($flat_default_config));
    }

    
/**
     * Test for ConfigFile::updateWithGlobalConfig
     *
     * @return void
     * @test
     */
    
public function testUpdateWithGlobalConfig()
    {
        
$this->object->set('key''value');
        
$this->object->set('key2''value');
        
$this->object->updateWithGlobalConfig(array('key' => 'ABC'));

        
$this->assertEquals(
            array(
'key' => 'ABC''key2' => 'value'),
            
$this->object->getConfig()
        );
    }

    
/**
     * Test for ConfigFile::getCanonicalPath
     *
     * @return void
     * @test
     */
    
public function testGetCanonicalPath()
    {
        
$this->assertEquals(
            
"Servers/1/abcd",
            
$this->object->getCanonicalPath("Servers/2/abcd")
        );

        
$this->assertEquals(
            
"Servers/foo/bar",
            
$this->object->getCanonicalPath("Servers/foo/bar")
        );
    }

    
/**
     * Test for ConfigFile::getDbEntry
     *
     * @return void
     * @test
     */
    
public function testGetDbEntry()
    {
        
$cfg_db = array();
        include 
'./libraries/config.values.php';
        
// verify that $cfg_db read from config.values.php is valid
        
$this->assertGreaterThanOrEqual(20count($cfg_db));

        
$this->assertEquals(
            
$cfg_db['Servers'][1]['port'],
            
$this->object->getDbEntry('Servers/1/port')
        );
        
$this->assertNull($this->object->getDbEntry('no such key'));
        
$this->assertEquals(
            array(
1),
            
$this->object->getDbEntry('no such key', array(1))
        );
    }

    
/**
     * Test for ConfigFile::getServerCount
     *
     * @return void
     * @test
     */
    
public function testGetServerCount()
    {
        
$this->object->set('Servers/1/x'1);
        
$this->object->set('Servers/2/x'2);
        
$this->object->set('Servers/3/x'3);
        
$this->object->set('Servers/4/x'4);
        
$this->object->set('ServerDefault'3);

        
$this->assertEquals(
            
4,
            
$this->object->getServerCount()
        );

        
$this->object->removeServer(2);
        
$this->object->removeServer(2);

        
$this->assertEquals(
            
2,
            
$this->object->getServerCount()
        );

        
$this->assertLessThanOrEqual(
            
2,
            
$this->object->get('ServerDefault')
        );
        
$this->assertEquals(
            array(
'Servers' => array(=> array('x' => 1), => array('x' => 4))),
            
$this->object->getConfig()
        );
        
$this->assertEquals(
            array(
'Servers/1/x' => 1'Servers/2/x' => 4),
            
$this->object->getConfigArray()
        );
    }

    
/**
     * Test for ConfigFile::getServers
     *
     * @return void
     * @test
     */
    
public function testGetServers()
    {
        
$this->object->set('Servers/1/x''a');
        
$this->object->set('Servers/2/x''b');

        
$this->assertEquals(
            array(
=> array('x' => 'a'), => array('x' => 'b')),
            
$this->object->getServers()
        );
    }

    
/**
     * Test for ConfigFile::getServerDSN
     *
     * @return void
     * @test
     */
    
public function testGetServerDSN()
    {
        
$this->assertEquals(
            
'',
            
$this->object->getServerDSN(1)
        );

        
$this->object->updateWithGlobalConfig(
            array(
                
'Servers' => array(
                    
=> array(
                        
"auth_type" => "config",
                        
"user" => "testUser",
                        
"connect_type" => "tcp",
                        
"host" => "example.com",
                        
"port" => "21"
                    
)
                )
            )
        );
        
$this->assertEquals(
            
"mysqli://testUser:***@example.com:21",
            
$this->object->getServerDSN(1)
        );

        
$this->object->updateWithGlobalConfig(
            array(
                
'Servers' => array(
                    
=> array(
                        
"auth_type" => "config",
                        
"user" => "testUser",
                        
"connect_type" => "socket",
                        
"host" => "example.com",
                        
"port" => "21",
                        
"nopassword" => "yes",
                        
"socket" => "123"
                    
)
                )
            )
        );
        
$this->assertEquals(
            
"mysqli://testUser@123",
            
$this->object->getServerDSN(1)
        );
    }

    
/**
     * Test for ConfigFile::getServerName
     *
     * @return void
     * @test
     */
    
public function testGetServerName()
    {
        
$this->assertEquals(
            
'',
            
$this->object->getServerName(1)
        );

        
$this->object->set('Servers/1/host''example.com');
        
$this->assertEquals(
            
'example.com',
            
$this->object->getServerName(1)
        );

        
$this->object->set('Servers/1/verbose''testData');
        
$this->assertEquals(
            
'testData',
            
$this->object->getServerName(1)
        );
    }

    
/**
     * Test for ConfigFile::getConfigArray
     *
     * @return void
     * @test
     */
    
public function testGetConfigArray()
    {
        
$this->object->setPersistKeys(array(self::SIMPLE_KEY_WITH_DEFAULT_VALUE));
        
$this->object->set('Array/test', array('x''y'));
        
$default_value $this->object->getDefault(
            
self::SIMPLE_KEY_WITH_DEFAULT_VALUE
        
);

        
$this->assertEquals(
            array(
                
self::SIMPLE_KEY_WITH_DEFAULT_VALUE => $default_value,
                
'Array/test' => array('x''y')
            ),
            
$this->object->getConfigArray()
        );
    }
}
?>

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