Initial commit
This commit is contained in:
223
#pma/test/libraries/core/PMA_array_test.php
Normal file
223
#pma/test/libraries/core/PMA_array_test.php
Normal file
@ -0,0 +1,223 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Test for PMA_arrayRead(), PMA_arrayWrite(), PMA_arrayRemove()
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
/*
|
||||
* Include to test.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Test for PMA_arrayRead(), PMA_arrayWrite(), PMA_arrayRemove()
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
class PMA_Array_Test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
/**
|
||||
* Test for PMA_arrayRead
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function testRead()
|
||||
{
|
||||
$arr = array(
|
||||
"int" => 1,
|
||||
"str" => "str_val",
|
||||
"arr" => array('val1', 'val2', 'val3'),
|
||||
"sarr" => array(
|
||||
'arr1' => array(1, 2, 3),
|
||||
array(3, array('a', 'b', 'c'), 4)
|
||||
)
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
PMA_arrayRead('int', $arr),
|
||||
$arr['int']
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
PMA_arrayRead('str', $arr),
|
||||
$arr['str']
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
PMA_arrayRead('arr/0', $arr),
|
||||
$arr['arr'][0]
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
PMA_arrayRead('arr/1', $arr),
|
||||
$arr['arr'][1]
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
PMA_arrayRead('arr/2', $arr),
|
||||
$arr['arr'][2]
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
PMA_arrayRead('sarr/arr1/0', $arr),
|
||||
$arr['sarr']['arr1'][0]
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
PMA_arrayRead('sarr/arr1/1', $arr),
|
||||
$arr['sarr']['arr1'][1]
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
PMA_arrayRead('sarr/arr1/2', $arr),
|
||||
$arr['sarr']['arr1'][2]
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
PMA_arrayRead('sarr/0/0', $arr),
|
||||
$arr['sarr'][0][0]
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
PMA_arrayRead('sarr/0/1', $arr),
|
||||
$arr['sarr'][0][1]
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
PMA_arrayRead('sarr/0/1/2', $arr),
|
||||
$arr['sarr'][0][1][2]
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
PMA_arrayRead('sarr/not_exiting/1', $arr),
|
||||
null
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
PMA_arrayRead('sarr/not_exiting/1', $arr, 0),
|
||||
0
|
||||
);
|
||||
|
||||
$this->assertEquals(
|
||||
PMA_arrayRead('sarr/not_exiting/1', $arr, 'default_val'),
|
||||
'default_val'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_arrayWrite
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function testWrite()
|
||||
{
|
||||
$arr = array(
|
||||
"int" => 1,
|
||||
"str" => "str_val",
|
||||
"arr" => array('val1', 'val2', 'val3'),
|
||||
"sarr" => array(
|
||||
'arr1' => array(1, 2, 3),
|
||||
array(3, array('a', 'b', 'c'), 4)
|
||||
)
|
||||
);
|
||||
|
||||
PMA_arrayWrite('int', $arr, 5);
|
||||
$this->assertEquals($arr['int'], 5);
|
||||
|
||||
PMA_arrayWrite('str', $arr, '_str');
|
||||
$this->assertEquals($arr['str'], '_str');
|
||||
|
||||
PMA_arrayWrite('arr/0', $arr, 'val_arr_0');
|
||||
$this->assertEquals($arr['arr'][0], 'val_arr_0');
|
||||
|
||||
PMA_arrayWrite('arr/1', $arr, 'val_arr_1');
|
||||
$this->assertEquals($arr['arr'][1], 'val_arr_1');
|
||||
|
||||
PMA_arrayWrite('arr/2', $arr, 'val_arr_2');
|
||||
$this->assertEquals($arr['arr'][2], 'val_arr_2');
|
||||
|
||||
PMA_arrayWrite('sarr/arr1/0', $arr, 'val_sarr_arr_0');
|
||||
$this->assertEquals($arr['sarr']['arr1'][0], 'val_sarr_arr_0');
|
||||
|
||||
PMA_arrayWrite('sarr/arr1/1', $arr, 'val_sarr_arr_1');
|
||||
$this->assertEquals($arr['sarr']['arr1'][1], 'val_sarr_arr_1');
|
||||
|
||||
PMA_arrayWrite('sarr/arr1/2', $arr, 'val_sarr_arr_2');
|
||||
$this->assertEquals($arr['sarr']['arr1'][2], 'val_sarr_arr_2');
|
||||
|
||||
PMA_arrayWrite('sarr/0/0', $arr, 5);
|
||||
$this->assertEquals($arr['sarr'][0][0], 5);
|
||||
|
||||
PMA_arrayWrite('sarr/0/1/0', $arr, 'e');
|
||||
$this->assertEquals($arr['sarr'][0][1][0], 'e');
|
||||
|
||||
PMA_arrayWrite('sarr/not_existing/1', $arr, 'some_val');
|
||||
$this->assertEquals($arr['sarr']['not_existing'][1], 'some_val');
|
||||
|
||||
PMA_arrayWrite('sarr/0/2', $arr, null);
|
||||
$this->assertNull($arr['sarr'][0][2]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_arrayRemove
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function testRemove()
|
||||
{
|
||||
$arr = array(
|
||||
"int" => 1,
|
||||
"str" => "str_val",
|
||||
"arr" => array('val1', 'val2', 'val3'),
|
||||
"sarr" => array(
|
||||
'arr1' => array(1, 2, 3),
|
||||
array(3, array('a', 'b', 'c'), 4)
|
||||
)
|
||||
);
|
||||
|
||||
PMA_arrayRemove('int', $arr);
|
||||
$this->assertArrayNotHasKey('int', $arr);
|
||||
|
||||
PMA_arrayRemove('str', $arr);
|
||||
$this->assertArrayNotHasKey('str', $arr);
|
||||
|
||||
PMA_arrayRemove('arr/0', $arr);
|
||||
$this->assertArrayNotHasKey(0, $arr['arr']);
|
||||
|
||||
PMA_arrayRemove('arr/1', $arr);
|
||||
$this->assertArrayNotHasKey(1, $arr['arr']);
|
||||
|
||||
PMA_arrayRemove('arr/2', $arr);
|
||||
$this->assertArrayNotHasKey('arr', $arr);
|
||||
|
||||
$tmp_arr = $arr;
|
||||
PMA_arrayRemove('sarr/not_existing/1', $arr);
|
||||
$this->assertEquals($tmp_arr, $arr);
|
||||
|
||||
PMA_arrayRemove('sarr/arr1/0', $arr);
|
||||
$this->assertArrayNotHasKey(0, $arr['sarr']['arr1']);
|
||||
|
||||
PMA_arrayRemove('sarr/arr1/1', $arr);
|
||||
$this->assertArrayNotHasKey(1, $arr['sarr']['arr1']);
|
||||
|
||||
PMA_arrayRemove('sarr/arr1/2', $arr);
|
||||
$this->assertArrayNotHasKey('arr1', $arr['sarr']);
|
||||
|
||||
PMA_arrayRemove('sarr/0/0', $arr);
|
||||
$this->assertArrayNotHasKey(0, $arr['sarr'][0]);
|
||||
|
||||
PMA_arrayRemove('sarr/0/1/0', $arr);
|
||||
$this->assertArrayNotHasKey(0, $arr['sarr'][0][1]);
|
||||
|
||||
PMA_arrayRemove('sarr/0/1/1', $arr);
|
||||
$this->assertArrayNotHasKey(1, $arr['sarr'][0][1]);
|
||||
|
||||
PMA_arrayRemove('sarr/0/1/2', $arr);
|
||||
$this->assertArrayNotHasKey(1, $arr['sarr'][0]);
|
||||
|
||||
PMA_arrayRemove('sarr/0/2', $arr);
|
||||
|
||||
$this->assertEmpty($arr);
|
||||
}
|
||||
}
|
68
#pma/test/libraries/core/PMA_checkPageValidity_test.php
Normal file
68
#pma/test/libraries/core/PMA_checkPageValidity_test.php
Normal file
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
/*
|
||||
* Include to test.
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
class PMA_CheckPageValidity_Test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
protected $goto_whitelist = array(
|
||||
'db_datadict.php',
|
||||
'db_sql.php',
|
||||
'db_export.php',
|
||||
'db_search.php',
|
||||
'export.php',
|
||||
'import.php',
|
||||
'index.php',
|
||||
'pdf_pages.php',
|
||||
'pdf_schema.php',
|
||||
'server_binlog.php',
|
||||
'server_variables.php',
|
||||
'sql.php',
|
||||
'tbl_select.php',
|
||||
'transformation_overview.php',
|
||||
'transformation_wrapper.php',
|
||||
'user_password.php',
|
||||
);
|
||||
|
||||
/**
|
||||
* Test for PMA_checkPageValidity
|
||||
*
|
||||
* @param string $page Page
|
||||
* @param array|null $whiteList White list
|
||||
* @param int $expected Expected value
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @dataProvider provider
|
||||
*/
|
||||
function testGotoNowhere($page, $whiteList, $expected)
|
||||
{
|
||||
$this->assertTrue($expected === PMA_checkPageValidity($page, $whiteList));
|
||||
}
|
||||
|
||||
/**
|
||||
* Data provider for testGotoNowhere
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function provider()
|
||||
{
|
||||
return array(
|
||||
array(null, null, false),
|
||||
array('export.php', $this->goto_whitelist, true),
|
||||
array('shell.php', $this->goto_whitelist, false),
|
||||
array('index.php?sql.php&test=true', $this->goto_whitelist, true),
|
||||
array('index.php%3Fsql.php%26test%3Dtrue', $this->goto_whitelist, true),
|
||||
);
|
||||
}
|
||||
}
|
84
#pma/test/libraries/core/PMA_cleanupPathInfo_test.php
Normal file
84
#pma/test/libraries/core/PMA_cleanupPathInfo_test.php
Normal file
@ -0,0 +1,84 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
*
|
||||
* PMA_fatalError() displays the given error message on phpMyAdmin error page in
|
||||
* foreign language
|
||||
* and ends script execution and closes session
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* PMA_fatalError() displays the given error message on phpMyAdmin error page in
|
||||
* foreign language
|
||||
* and ends script execution and closes session
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
class PMA_CleanupPathInfo_Test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
/**
|
||||
* Test for PMA_cleanupPathInfo
|
||||
*
|
||||
* @param string $php_self The PHP_SELF value
|
||||
* @param string $request The REQUEST_URI value
|
||||
* @param string $path_info The PATH_INFO value
|
||||
* @param string $expected Expected result
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @dataProvider pathsProvider
|
||||
*/
|
||||
public function testPahtInfo($php_self, $request, $path_info, $expected)
|
||||
{
|
||||
$_SERVER['PHP_SELF'] = $php_self;
|
||||
$_SERVER['REQUEST_URI'] = $request;
|
||||
$_SERVER['PATH_INFO'] = $path_info;
|
||||
PMA_cleanupPathInfo();
|
||||
$this->assertEquals(
|
||||
$expected,
|
||||
$GLOBALS['PMA_PHP_SELF']
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Data provider for PMA_cleanupPathInfo tests
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function pathsProvider()
|
||||
{
|
||||
return array(
|
||||
array(
|
||||
'/phpmyadmin/index.php/; cookieinj=value/',
|
||||
'/phpmyadmin/index.php/;%20cookieinj=value///',
|
||||
'/; cookieinj=value/',
|
||||
'/phpmyadmin/index.php'
|
||||
),
|
||||
array(
|
||||
'',
|
||||
'/phpmyadmin/index.php/;%20cookieinj=value///',
|
||||
'/; cookieinj=value/',
|
||||
'/phpmyadmin/index.php'
|
||||
),
|
||||
array(
|
||||
'/phpmyadmin/index.php',
|
||||
'/phpmyadmin/index.php',
|
||||
'',
|
||||
'/phpmyadmin/index.php'
|
||||
),
|
||||
array(
|
||||
'',
|
||||
'/phpmyadmin/index.php',
|
||||
'',
|
||||
'/phpmyadmin/index.php'
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
88
#pma/test/libraries/core/PMA_fatalError_test.php
Normal file
88
#pma/test/libraries/core/PMA_fatalError_test.php
Normal file
@ -0,0 +1,88 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
*
|
||||
* PMA_fatalError() displays the given error message on phpMyAdmin error page in
|
||||
* foreign language
|
||||
* and ends script execution and closes session
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
/*
|
||||
* Include to test.
|
||||
*/
|
||||
use PMA\libraries\Theme;
|
||||
|
||||
|
||||
require_once 'libraries/js_escape.lib.php';
|
||||
require_once 'libraries/sanitizing.lib.php';
|
||||
|
||||
require_once 'libraries/url_generating.lib.php';
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* PMA_fatalError() displays the given error message on phpMyAdmin error page in
|
||||
* foreign language
|
||||
* and ends script execution and closes session
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
class PMA_FatalError_Test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
/**
|
||||
* Set up
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setup()
|
||||
{
|
||||
$GLOBALS['PMA_Config'] = new PMA\libraries\Config();
|
||||
$GLOBALS['PMA_Config']->enableBc();
|
||||
$GLOBALS['cfg']['Server'] = array(
|
||||
'host' => 'host',
|
||||
'verbose' => 'verbose',
|
||||
);
|
||||
$GLOBALS['cfg']['OBGzip'] = false;
|
||||
$_SESSION['PMA_Theme'] = new Theme();
|
||||
$GLOBALS['pmaThemeImage'] = 'theme/';
|
||||
$GLOBALS['pmaThemePath'] = $_SESSION['PMA_Theme']->getPath();
|
||||
$GLOBALS['server'] = 1;
|
||||
$GLOBALS['db'] = '';
|
||||
$GLOBALS['table'] = '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_fatalError
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFatalErrorMessage()
|
||||
{
|
||||
$this->expectOutputRegex("/FatalError!/");
|
||||
PMA_fatalError("FatalError!");
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_fatalError
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testFatalErrorMessageWithArgs()
|
||||
{
|
||||
$message = "Fatal error #%d in file %s.";
|
||||
$params = array(1, 'error_file.php');
|
||||
|
||||
$this->expectOutputRegex("/Fatal error #1 in file error_file.php./");
|
||||
PMA_fatalError($message, $params);
|
||||
|
||||
$message = "Fatal error in file %s.";
|
||||
$params = 'error_file.php';
|
||||
|
||||
$this->expectOutputRegex("/Fatal error in file error_file.php./");
|
||||
PMA_fatalError($message, $params);
|
||||
}
|
||||
|
||||
}
|
76
#pma/test/libraries/core/PMA_getLinks_test.php
Normal file
76
#pma/test/libraries/core/PMA_getLinks_test.php
Normal file
@ -0,0 +1,76 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
/*
|
||||
* Include to test.
|
||||
*/
|
||||
require_once 'libraries/url_generating.lib.php';
|
||||
|
||||
/**
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
class PMA_GetLinks_Test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
/**
|
||||
* Set up
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function setUp()
|
||||
{
|
||||
$GLOBALS['server'] = 99;
|
||||
$GLOBALS['cfg']['ServerDefault'] = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_getPHPDocLink
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testGetPHPDocLink()
|
||||
{
|
||||
$lang = _pgettext('PHP documentation language', 'en');
|
||||
$this->assertEquals(
|
||||
PMA_getPHPDocLink('function'),
|
||||
'./url.php?url=https%3A%2F%2Fphp.net%2Fmanual%2F'
|
||||
. $lang . '%2Ffunction'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Data provider for testLinkURL
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function providerLinkURL()
|
||||
{
|
||||
return array(
|
||||
array('https://wiki.phpmyadmin.net',
|
||||
'./url.php?url=https%3A%2F%2Fwiki.phpmyadmin.net'),
|
||||
array('https://wiki.phpmyadmin.net',
|
||||
'./url.php?url=https%3A%2F%2Fwiki.phpmyadmin.net'),
|
||||
array('wiki.phpmyadmin.net', 'wiki.phpmyadmin.net'),
|
||||
array('index.php?db=phpmyadmin', 'index.php?db=phpmyadmin')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_linkURL
|
||||
*
|
||||
* @param string $link URL where to go
|
||||
* @param string $url Expected value
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @dataProvider providerLinkURL
|
||||
*/
|
||||
public function testLinkURL($link, $url)
|
||||
{
|
||||
$this->assertEquals(PMA_linkURL($link), $url);
|
||||
}
|
||||
}
|
65
#pma/test/libraries/core/PMA_getTableCount_test_dis.php
Normal file
65
#pma/test/libraries/core/PMA_getTableCount_test_dis.php
Normal file
@ -0,0 +1,65 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* PMA_getTableCount_test returns count of tables in given db
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
/*
|
||||
* Include to test.
|
||||
*/
|
||||
|
||||
use PMA\libraries\Theme;
|
||||
|
||||
require_once 'libraries/js_escape.lib.php';
|
||||
require_once 'libraries/select_lang.inc.php';
|
||||
require_once 'libraries/sanitizing.lib.php';
|
||||
require_once 'libraries/config.default.php';
|
||||
|
||||
|
||||
require_once 'libraries/url_generating.lib.php';
|
||||
|
||||
|
||||
require_once 'libraries/database_interface.inc.php';
|
||||
|
||||
require_once 'config.sample.inc.php';
|
||||
|
||||
/**
|
||||
* PMA_getTableCount_test returns count of tables in given db
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
class PMA_GetTableCount_Test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
/**
|
||||
* Set up
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setUp()
|
||||
{
|
||||
$GLOBALS['PMA_Config'] = new PMA\libraries\Config();
|
||||
$GLOBALS['PMA_Config']->enableBc();
|
||||
$GLOBALS['cfg']['OBGzip'] = false;
|
||||
$_SESSION['PMA_Theme'] = new Theme();
|
||||
$GLOBALS['pmaThemeImage'] = 'theme/';
|
||||
$GLOBALS['pmaThemePath'] = $_SESSION['PMA_Theme']->getPath();
|
||||
$GLOBALS['server'] = 1;
|
||||
$GLOBALS['db'] = '';
|
||||
$GLOBALS['table'] = '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_getTableCount
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function testTableCount()
|
||||
{
|
||||
$GLOBALS['cfg']['Server']['host'] = 'localhost';
|
||||
$GLOBALS['cfg']['Server']['user'] = 'root';
|
||||
|
||||
$this->assertEquals(5, PMA_getTableCount('meddb'));
|
||||
}
|
||||
}
|
50
#pma/test/libraries/core/PMA_get_real_size_test.php
Normal file
50
#pma/test/libraries/core/PMA_get_real_size_test.php
Normal file
@ -0,0 +1,50 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
/*
|
||||
* Include to test.
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
class PMA_GetRealSize_Test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
/**
|
||||
* Test for
|
||||
*
|
||||
* @param string $size Size
|
||||
* @param int $expected Expected value
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @dataProvider provider
|
||||
*/
|
||||
public function testNull($size, $expected)
|
||||
{
|
||||
$this->assertEquals($expected, PMA_getRealSize($size));
|
||||
}
|
||||
|
||||
/**
|
||||
* Data provider for testExtractValueFromFormattedSize
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function provider()
|
||||
{
|
||||
return array(
|
||||
array('0', 0),
|
||||
array('1kb', 1024),
|
||||
array('1024k', 1024 * 1024),
|
||||
array('8m', 8 * 1024 * 1024),
|
||||
array('12gb', 12 * 1024 * 1024 * 1024),
|
||||
array('1024', 1024),
|
||||
);
|
||||
}
|
||||
|
||||
}
|
224
#pma/test/libraries/core/PMA_headerLocation_test.php
Normal file
224
#pma/test/libraries/core/PMA_headerLocation_test.php
Normal file
@ -0,0 +1,224 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Test for PMA_sendHeaderLocation
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
/*
|
||||
* Include to test.
|
||||
*/
|
||||
use PMA\libraries\Theme;
|
||||
|
||||
|
||||
require_once 'libraries/js_escape.lib.php';
|
||||
require_once 'libraries/sanitizing.lib.php';
|
||||
|
||||
require_once 'libraries/url_generating.lib.php';
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Test function sending headers.
|
||||
* Warning - these tests set constants, so it can interfere with other tests
|
||||
* If you have runkit extension, then it is possible to back changes made on
|
||||
* constants rest of options can be tested only with apd, when functions header
|
||||
* and headers_sent are redefined rename_function() of header and headers_sent
|
||||
* may cause CLI error report in Windows XP (but tests are done correctly)
|
||||
* additional functions which were created during tests must be stored to
|
||||
* coverage test e.g.
|
||||
*
|
||||
* <code>
|
||||
* rename_function(
|
||||
* 'headers_sent',
|
||||
* 'headers_sent'.str_replace(array('.', ' '),array('', ''),microtime())
|
||||
* );
|
||||
* </code>
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
class PMA_HeaderLocation_Test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
|
||||
protected $oldIISvalue;
|
||||
protected $runkitExt;
|
||||
protected $apdExt;
|
||||
|
||||
/**
|
||||
* Set up
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setUp()
|
||||
{
|
||||
//session_start();
|
||||
|
||||
// cleaning constants
|
||||
if (PMA_HAS_RUNKIT) {
|
||||
|
||||
$this->oldIISvalue = 'non-defined';
|
||||
|
||||
$defined_constants = get_defined_constants(true);
|
||||
$user_defined_constants = $defined_constants['user'];
|
||||
if (array_key_exists('PMA_IS_IIS', $user_defined_constants)) {
|
||||
$this->oldIISvalue = PMA_IS_IIS;
|
||||
runkit_constant_redefine('PMA_IS_IIS', null);
|
||||
} else {
|
||||
runkit_constant_add('PMA_IS_IIS', null);
|
||||
}
|
||||
}
|
||||
$_SESSION['PMA_Theme'] = Theme::load('./themes/pmahomme');
|
||||
$GLOBALS['server'] = 0;
|
||||
$GLOBALS['PMA_Config'] = new PMA\libraries\Config();
|
||||
$GLOBALS['PMA_Config']->enableBc();
|
||||
}
|
||||
|
||||
/**
|
||||
* Tear down
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function tearDown()
|
||||
{
|
||||
//session_destroy();
|
||||
|
||||
// cleaning constants
|
||||
if (PMA_HAS_RUNKIT) {
|
||||
|
||||
if ($this->oldIISvalue != 'non-defined') {
|
||||
runkit_constant_redefine('PMA_IS_IIS', $this->oldIISvalue);
|
||||
} elseif (defined('PMA_IS_IIS')) {
|
||||
runkit_constant_remove('PMA_IS_IIS');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_sendHeaderLocation
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testSendHeaderLocationWithoutSidWithIis()
|
||||
{
|
||||
if (defined('PMA_TEST_HEADERS')) {
|
||||
|
||||
runkit_constant_redefine('PMA_IS_IIS', true);
|
||||
|
||||
$testUri = 'https://example.com/test.php';
|
||||
|
||||
$header = array('Location: ' . $testUri);
|
||||
PMA_sendHeaderLocation($testUri); // sets $GLOBALS['header']
|
||||
$this->assertEquals($header, $GLOBALS['header']);
|
||||
|
||||
//reset $GLOBALS['header'] for the next assertion
|
||||
unset($GLOBALS['header']);
|
||||
|
||||
$header = array('Refresh: 0; ' . $testUri);
|
||||
PMA_sendHeaderLocation($testUri, true); // sets $GLOBALS['header']
|
||||
$this->assertEquals($header, $GLOBALS['header']);
|
||||
|
||||
} else {
|
||||
$this->markTestSkipped(
|
||||
'Cannot redefine constant/function - missing runkit extension'
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_sendHeaderLocation
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testSendHeaderLocationWithoutSidWithoutIis()
|
||||
{
|
||||
if (defined('PMA_TEST_HEADERS')) {
|
||||
|
||||
$testUri = 'https://example.com/test.php';
|
||||
$header = array('Location: ' . $testUri);
|
||||
|
||||
PMA_sendHeaderLocation($testUri); // sets $GLOBALS['header']
|
||||
$this->assertEquals($header, $GLOBALS['header']);
|
||||
|
||||
} else {
|
||||
$this->markTestSkipped(
|
||||
'Cannot redefine constant/function - missing runkit extension'
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_sendHeaderLocation
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testSendHeaderLocationIisLongUri()
|
||||
{
|
||||
if (defined('PMA_IS_IIS') && PMA_HAS_RUNKIT) {
|
||||
runkit_constant_redefine('PMA_IS_IIS', true);
|
||||
} elseif (!defined('PMA_IS_IIS')) {
|
||||
define('PMA_IS_IIS', true);
|
||||
} elseif (! PMA_IS_IIS) {
|
||||
$this->markTestSkipped(
|
||||
'Cannot redefine constant/function - missing runkit extension'
|
||||
);
|
||||
}
|
||||
|
||||
// over 600 chars
|
||||
$testUri = 'https://example.com/test.php?testlonguri=over600chars&test=test'
|
||||
. '&test=test&test=test&test=test&test=test&test=test&test=test'
|
||||
. '&test=test&test=test&test=test&test=test&test=test&test=test'
|
||||
. '&test=test&test=test&test=test&test=test&test=test&test=test'
|
||||
. '&test=test&test=test&test=test&test=test&test=test&test=test'
|
||||
. '&test=test&test=test&test=test&test=test&test=test&test=test'
|
||||
. '&test=test&test=test&test=test&test=test&test=test&test=test'
|
||||
. '&test=test&test=test&test=test&test=test&test=test&test=test'
|
||||
. '&test=test&test=test&test=test&test=test&test=test&test=test'
|
||||
. '&test=test&test=test&test=test&test=test&test=test&test=test'
|
||||
. '&test=test&test=test';
|
||||
$testUri_html = htmlspecialchars($testUri);
|
||||
$testUri_js = PMA_escapeJsString($testUri);
|
||||
|
||||
$header = "<html>\n<head>\n <title>- - -</title>
|
||||
<meta http-equiv=\"expires\" content=\"0\">"
|
||||
. "\n <meta http-equiv=\"Pragma\" content=\"no-cache\">"
|
||||
. "\n <meta http-equiv=\"Cache-Control\" content=\"no-cache\">"
|
||||
. "\n <meta http-equiv=\"Refresh\" content=\"0;url=" . $testUri_html . "\">"
|
||||
. "\n <script type=\"text/javascript\">\n //<![CDATA[
|
||||
setTimeout(\"window.location = decodeURI('" . $testUri_js . "')\", 2000);
|
||||
//]]>\n </script>\n</head>
|
||||
<body>\n<script type=\"text/javascript\">\n //<![CDATA[
|
||||
document.write('<p><a href=\"" . $testUri_html . "\">" . __('Go') . "</a></p>');
|
||||
//]]>\n</script>\n</body>\n</html>
|
||||
";
|
||||
|
||||
$this->expectOutputString($header);
|
||||
|
||||
$restoreInstance = PMA\libraries\Response::getInstance();
|
||||
|
||||
$mockResponse = $this->getMockBuilder('PMA\libraries\Response')
|
||||
->disableOriginalConstructor()
|
||||
->setMethods(array('disable', 'header', 'headersSent'))
|
||||
->getMock();
|
||||
|
||||
$mockResponse->expects($this->once())
|
||||
->method('disable');
|
||||
|
||||
$mockResponse->expects($this->any())
|
||||
->method('headersSent')
|
||||
->with()
|
||||
->will($this->returnValue(false));
|
||||
|
||||
$attrInstance = new ReflectionProperty('PMA\libraries\Response', '_instance');
|
||||
$attrInstance->setAccessible(true);
|
||||
$attrInstance->setValue($mockResponse);
|
||||
|
||||
PMA_sendHeaderLocation($testUri);
|
||||
|
||||
$attrInstance->setValue($restoreInstance);
|
||||
}
|
||||
}
|
69
#pma/test/libraries/core/PMA_ifSetOr_test.php
Normal file
69
#pma/test/libraries/core/PMA_ifSetOr_test.php
Normal file
@ -0,0 +1,69 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
/*
|
||||
* Include to test.
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
class PMA_IfSetOr_Test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
/**
|
||||
* Test for PMA_ifSetOr
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testVarSet()
|
||||
{
|
||||
$default = 'foo';
|
||||
$in = 'bar';
|
||||
$out = PMA_ifSetOr($in, $default);
|
||||
$this->assertEquals($in, $out);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_ifSetOr
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testVarSetWrongType()
|
||||
{
|
||||
$default = 'foo';
|
||||
$in = 'bar';
|
||||
$out = PMA_ifSetOr($in, $default, 'boolean');
|
||||
$this->assertEquals($out, $default);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_ifSetOr
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testVarNotSet()
|
||||
{
|
||||
$default = 'foo';
|
||||
// $in is not set!
|
||||
$out = PMA_ifSetOr($in, $default);
|
||||
$this->assertEquals($out, $default);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_ifSetOr
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testVarNotSetNoDefault()
|
||||
{
|
||||
// $in is not set!
|
||||
$out = PMA_ifSetOr($in);
|
||||
$this->assertEquals($out, null);
|
||||
}
|
||||
|
||||
}
|
56
#pma/test/libraries/core/PMA_isAllowedDomain_test.php
Normal file
56
#pma/test/libraries/core/PMA_isAllowedDomain_test.php
Normal file
@ -0,0 +1,56 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Test for PMA_isAllowedDomain
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
/*
|
||||
* Include to test.
|
||||
*/
|
||||
require_once 'libraries/core.lib.php';
|
||||
|
||||
class PMA_isAllowedDomain_test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
/**
|
||||
* Test for unserializing
|
||||
*
|
||||
* @param string $url URL to test
|
||||
* @param mixed $expected Expected result
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @dataProvider provideURLs
|
||||
*/
|
||||
function testIsAllowedDomain($url, $expected)
|
||||
{
|
||||
$_SERVER['SERVER_NAME'] = 'server.local';
|
||||
$this->assertEquals(
|
||||
$expected,
|
||||
PMA_isAllowedDomain($url)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test data provider
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
function provideURLs()
|
||||
{
|
||||
return array(
|
||||
array('https://www.phpmyadmin.net/', true),
|
||||
array('http://duckduckgo.com\\@github.com', false),
|
||||
array('https://github.com/', true),
|
||||
array('https://github.com:123/', false),
|
||||
array('https://user:pass@github.com:123/', false),
|
||||
array('https://user:pass@github.com/', false),
|
||||
array('https://server.local/', true),
|
||||
array('./relative/', false),
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
343
#pma/test/libraries/core/PMA_isValid_test.php
Normal file
343
#pma/test/libraries/core/PMA_isValid_test.php
Normal file
@ -0,0 +1,343 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
/*
|
||||
* Include to test.
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
class PMA_IsValid_Test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
/**
|
||||
* Data provider for testNoVarType
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function providerNoVarTypeProvider()
|
||||
{
|
||||
return array(
|
||||
array(0, false, 0),
|
||||
array(0, false, 1),
|
||||
array(1, false, null),
|
||||
array(1.1, false, null),
|
||||
array('', false, null),
|
||||
array(' ', false, null),
|
||||
array('0', false, null),
|
||||
array('string', false, null),
|
||||
array(array(), false, null),
|
||||
array(array(1, 2, 3), false, null),
|
||||
array(true, false, null),
|
||||
array(false, false, null));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_isValid
|
||||
*
|
||||
* @param mixed $var Variable to check
|
||||
* @param mixed $type Type
|
||||
* @param mixed $compare Compared value
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @dataProvider providerNoVarTypeProvider
|
||||
*/
|
||||
public function testNoVarType($var, $type, $compare)
|
||||
{
|
||||
$this->assertTrue(PMA_isValid($var, $type, $compare));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_isValid
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testVarNotSetAfterTest()
|
||||
{
|
||||
PMA_isValid($var);
|
||||
$this->assertFalse(isset($var));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_isValid
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testNotSet()
|
||||
{
|
||||
$this->assertFalse(PMA_isValid($var));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_isValid
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testEmptyString()
|
||||
{
|
||||
$var = '';
|
||||
$this->assertFalse(PMA_isValid($var));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_isValid
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testNotEmptyString()
|
||||
{
|
||||
$var = '0';
|
||||
$this->assertTrue(PMA_isValid($var));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_isValid
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testZero()
|
||||
{
|
||||
$var = 0;
|
||||
$this->assertTrue(PMA_isValid($var));
|
||||
$this->assertTrue(PMA_isValid($var, 'int'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_isValid
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testNullFail()
|
||||
{
|
||||
$var = null;
|
||||
$this->assertFalse(PMA_isValid($var));
|
||||
|
||||
$var = 'null_text';
|
||||
$this->assertFalse(PMA_isValid($var, 'null'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_isValid
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testNotSetArray()
|
||||
{
|
||||
/** @var $array undefined array */
|
||||
$this->assertFalse(PMA_isValid($array['x']));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_isValid
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testScalarString()
|
||||
{
|
||||
$var = 'string';
|
||||
$this->assertTrue(PMA_isValid($var, 'len'));
|
||||
$this->assertTrue(PMA_isValid($var, 'scalar'));
|
||||
$this->assertTrue(PMA_isValid($var));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_isValid
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testScalarInt()
|
||||
{
|
||||
$var = 1;
|
||||
$this->assertTrue(PMA_isValid($var, 'int'));
|
||||
$this->assertTrue(PMA_isValid($var, 'scalar'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_isValid
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testScalarFloat()
|
||||
{
|
||||
$var = 1.1;
|
||||
$this->assertTrue(PMA_isValid($var, 'float'));
|
||||
$this->assertTrue(PMA_isValid($var, 'double'));
|
||||
$this->assertTrue(PMA_isValid($var, 'scalar'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_isValid
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testScalarBool()
|
||||
{
|
||||
$var = true;
|
||||
$this->assertTrue(PMA_isValid($var, 'scalar'));
|
||||
$this->assertTrue(PMA_isValid($var, 'bool'));
|
||||
$this->assertTrue(PMA_isValid($var, 'boolean'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_isValid
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testNotScalarArray()
|
||||
{
|
||||
$var = array('test');
|
||||
$this->assertFalse(PMA_isValid($var, 'scalar'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_isValid
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testNotScalarNull()
|
||||
{
|
||||
$var = null;
|
||||
$this->assertFalse(PMA_isValid($var, 'scalar'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_isValid
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testNumericInt()
|
||||
{
|
||||
$var = 1;
|
||||
$this->assertTrue(PMA_isValid($var, 'numeric'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_isValid
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testNumericFloat()
|
||||
{
|
||||
$var = 1.1;
|
||||
$this->assertTrue(PMA_isValid($var, 'numeric'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_isValid
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testNumericZero()
|
||||
{
|
||||
$var = 0;
|
||||
$this->assertTrue(PMA_isValid($var, 'numeric'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_isValid
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testNumericString()
|
||||
{
|
||||
$var = '+0.1';
|
||||
$this->assertTrue(PMA_isValid($var, 'numeric'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_isValid
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testValueInArray()
|
||||
{
|
||||
$var = 'a';
|
||||
$this->assertTrue(PMA_isValid($var, array('a', 'b',)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_isValid
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testValueNotInArray()
|
||||
{
|
||||
$var = 'c';
|
||||
$this->assertFalse(PMA_isValid($var, array('a', 'b',)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_isValid
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testNumericIdentical()
|
||||
{
|
||||
$var = 1;
|
||||
$compare = 1;
|
||||
$this->assertTrue(PMA_isValid($var, 'identic', $compare));
|
||||
|
||||
$var = 1;
|
||||
$compare += 2;
|
||||
$this->assertFalse(PMA_isValid($var, 'identic', $compare));
|
||||
|
||||
$var = 1;
|
||||
$compare = '1';
|
||||
$this->assertFalse(PMA_isValid($var, 'identic', $compare));
|
||||
}
|
||||
|
||||
/**
|
||||
* Data provider for testSimilarType
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function providerSimilarType()
|
||||
{
|
||||
return array(
|
||||
array(1, 1),
|
||||
array(1.5, 1.5),
|
||||
array(true, true),
|
||||
array('string', "string"),
|
||||
array(array(1, 2, 3.4), array(1, 2, 3.4)),
|
||||
array(array(1, '2', '3.4', 5, 'text'), array('1', '2', 3.4,'5'))
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_isValid
|
||||
*
|
||||
* @param mixed $var Variable
|
||||
* @param mixed $compare Compare
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @dataProvider providerSimilarType
|
||||
*/
|
||||
public function testSimilarType($var, $compare)
|
||||
{
|
||||
$this->assertTrue(PMA_isValid($var, 'similar', $compare));
|
||||
$this->assertTrue(PMA_isValid($var, 'equal', $compare));
|
||||
$this->assertTrue(PMA_isValid($compare, 'similar', $var));
|
||||
$this->assertTrue(PMA_isValid($compare, 'equal', $var));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_isValid
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testOtherTypes()
|
||||
{
|
||||
$var = new PMA_isValid_test();
|
||||
$this->assertFalse(PMA_isValid($var, 'class'));
|
||||
}
|
||||
|
||||
}
|
||||
|
56
#pma/test/libraries/core/PMA_safeUnserialize_test.php
Normal file
56
#pma/test/libraries/core/PMA_safeUnserialize_test.php
Normal file
@ -0,0 +1,56 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Test for PMA_safeUnserialize
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
/*
|
||||
* Include to test.
|
||||
*/
|
||||
require_once 'libraries/core.lib.php';
|
||||
|
||||
class PMA_safeUnserialize_test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
/**
|
||||
* Test for unserializing
|
||||
*
|
||||
* @param string $data Serialized data
|
||||
* @param mixed $expected Expected result
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @dataProvider provideMySQLHosts
|
||||
*/
|
||||
function testSanitizeMySQLHost($data, $expected)
|
||||
{
|
||||
$this->assertEquals(
|
||||
$expected,
|
||||
PMA_safeUnserialize($data)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test data provider
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
function provideMySQLHosts()
|
||||
{
|
||||
return array(
|
||||
array('s:6:"foobar";', 'foobar'),
|
||||
array('foobar', null),
|
||||
array('b:0;', false),
|
||||
array('O:1:"a":1:{s:5:"value";s:3:"100";}', null),
|
||||
array('O:8:"stdClass":1:{s:5:"field";O:8:"stdClass":0:{}}', null),
|
||||
array('a:2:{i:0;s:90:"1234567890;a345678901234567890123456789012345678901234567890123456789012345678901234567890";i:1;O:8:"stdClass":0:{}}', null),
|
||||
array(serialize(array(1, 2, 3)), array(1, 2, 3)),
|
||||
array(serialize('string""'), 'string""'),
|
||||
array(serialize(array('foo' => 'bar')), array('foo' => 'bar')),
|
||||
array(serialize(array('1', new stdClass(), '2')), null),
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
49
#pma/test/libraries/core/PMA_sanitizeMySQLHost_test.php
Normal file
49
#pma/test/libraries/core/PMA_sanitizeMySQLHost_test.php
Normal file
@ -0,0 +1,49 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* Test for PMA_sanitizeMySQLHost
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
/*
|
||||
* Include to test.
|
||||
*/
|
||||
require_once 'libraries/core.lib.php';
|
||||
|
||||
class PMA_sanitizeMySQLHost_test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
/**
|
||||
* Test for MySQL host sanitizing
|
||||
*
|
||||
* @param string $host Test host name
|
||||
* @param string $expected Expected result
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @dataProvider provideMySQLHosts
|
||||
*/
|
||||
function testSanitizeMySQLHost($host, $expected)
|
||||
{
|
||||
$this->assertEquals(
|
||||
$expected,
|
||||
PMA_sanitizeMySQLHost($host)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test data provider
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
function provideMySQLHosts()
|
||||
{
|
||||
return array(
|
||||
array('p:foo.bar', 'foo.bar'),
|
||||
array('p:p:foo.bar', 'foo.bar'),
|
||||
array('bar.baz', 'bar.baz'),
|
||||
array('P:example.com', 'example.com'),
|
||||
);
|
||||
}
|
||||
|
||||
}
|
38
#pma/test/libraries/core/PMA_securePath_test.php
Normal file
38
#pma/test/libraries/core/PMA_securePath_test.php
Normal file
@ -0,0 +1,38 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* PMA_securePath changes .. to .
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Test for securing path.
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
class PMA_SecurePath extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
/**
|
||||
* Test for replacing dots.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function testReplaceDots()
|
||||
{
|
||||
$this->assertEquals(
|
||||
PMA_securePath('../../../etc/passwd'),
|
||||
'./././etc/passwd'
|
||||
);
|
||||
$this->assertEquals(
|
||||
PMA_securePath('/var/www/../phpmyadmin'),
|
||||
'/var/www/./phpmyadmin'
|
||||
);
|
||||
$this->assertEquals(
|
||||
PMA_securePath('./path/with..dots/../../file..php'),
|
||||
'./path/with.dots/././file.php'
|
||||
);
|
||||
}
|
||||
|
||||
}
|
89
#pma/test/libraries/core/PMA_warnMissingExtension_test.php
Normal file
89
#pma/test/libraries/core/PMA_warnMissingExtension_test.php
Normal file
@ -0,0 +1,89 @@
|
||||
<?php
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
/**
|
||||
* PMA_warnMissingExtension warns or fails on missing extension.
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
|
||||
/*
|
||||
* Include to test.
|
||||
*/
|
||||
use PMA\libraries\Theme;
|
||||
|
||||
|
||||
require_once 'libraries/js_escape.lib.php';
|
||||
require_once 'libraries/sanitizing.lib.php';
|
||||
|
||||
/**
|
||||
* PMA_warnMissingExtension warns or fails on missing extension.
|
||||
*
|
||||
* @package PhpMyAdmin-test
|
||||
*/
|
||||
class PMA_WarnMissingExtension_Test extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
/**
|
||||
* Set up
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setUp()
|
||||
{
|
||||
$GLOBALS['PMA_Config'] = new PMA\libraries\Config();
|
||||
$GLOBALS['PMA_Config']->enableBc();
|
||||
$GLOBALS['cfg']['Server'] = array(
|
||||
'host' => 'host',
|
||||
'verbose' => 'verbose',
|
||||
);
|
||||
$GLOBALS['cfg']['OBGzip'] = false;
|
||||
$_SESSION['PMA_Theme'] = new Theme();
|
||||
$GLOBALS['pmaThemeImage'] = 'theme/';
|
||||
$GLOBALS['pmaThemePath'] = $_SESSION['PMA_Theme']->getPath();
|
||||
$GLOBALS['server'] = 1;
|
||||
$GLOBALS['db'] = '';
|
||||
$GLOBALS['table'] = '';
|
||||
|
||||
include_once './libraries/ErrorHandler.php';
|
||||
$GLOBALS['error_handler'] = new PMA\libraries\ErrorHandler();
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_warnMissingExtension
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function testMissingExtensionFatal()
|
||||
{
|
||||
$ext = 'php_ext';
|
||||
$warn = 'The <a href="' . PMA_getPHPDocLink('book.' . $ext . '.php')
|
||||
. '" target="Documentation"><em>' . $ext
|
||||
. '</em></a> extension is missing. Please check your PHP configuration.';
|
||||
|
||||
$this->expectOutputRegex('@' . preg_quote($warn, '@') . '@');
|
||||
|
||||
PMA_warnMissingExtension($ext, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for PMA_warnMissingExtension
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function testMissingExtensionFatalWithExtra()
|
||||
{
|
||||
$ext = 'php_ext';
|
||||
$extra = 'Appended Extra String';
|
||||
|
||||
$warn = 'The <a href="' . PMA_getPHPDocLink('book.' . $ext . '.php')
|
||||
. '" target="Documentation"><em>' . $ext
|
||||
. '</em></a> extension is missing. Please check your PHP configuration.'
|
||||
. ' ' . $extra;
|
||||
|
||||
ob_start();
|
||||
PMA_warnMissingExtension($ext, true, $extra);
|
||||
$printed = ob_get_contents();
|
||||
ob_end_clean();
|
||||
|
||||
$this->assertGreaterThan(0, mb_strpos($printed, $warn));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user