File: /data/wwwroot/default/phpMyAdmin/test/classes/PMA_Config_test.php
<?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/'
),
);
}
}
?>