phpmyadmin/test/classes/PMA_Config_test.php
Michal Čihař 13a3fb0635 Revert "Temporarily deactivate these tests (almost always fail on ci.phpmyadmin.net)"
This reverts commit 9403921e4e.

We should really test those. In case the requests will fail, some other
solution should be found to actually execute this code.

Signed-off-by: Michal Čihař <michal@cihar.com>

Conflicts:
	test/classes/PMA_Config_test.php
	test/classes/PMA_Util_test.php
	test/libraries/PMA_SetupIndex_test.php
2015-06-22 15:14:48 +02:00

1097 lines
29 KiB
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/Util.class.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("http://www.phpmyadmin.net/test/data")
);
$this->assertContains(
"TEST DATA",
$this->object->checkHTTP("http://www.phpmyadmin.net/test/data", true)
);
$this->assertFalse(
$this->object->checkHTTP("http://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/'
),
);
}
}
?>