Fix date-second issue with Tracker tests

This commit is contained in:
ayushchd 2013-09-14 16:29:03 +05:30
parent 3bb750ca2b
commit 4b7edee82b
2 changed files with 68 additions and 7 deletions

View File

@ -41,11 +41,11 @@ $GLOBALS['runkit_internal_override'] = ini_get('runkit.internal_override');
/**
* Function to emulate headers() function by storing headers in GLOBAL array
*
*
* @param string $string header string
* @param boolean $replace .
* @param integer $http_response_code .
*
*
* @return void
*/
function test_header($string, $replace = true, $http_response_code = 200)
@ -59,7 +59,7 @@ function test_header($string, $replace = true, $http_response_code = 200)
/**
* Function to emulate headers_hest.
*
*
* @return boolean false
*/
function test_headers_sent()
@ -67,6 +67,18 @@ function test_headers_sent()
return false;
}
/**
* Function to emulate date() function
*
* @param string $date_format arg
*
* @return string dummy date
*/
function test_date($date_format)
{
return '0000-00-00 00:00:00';
}
if (PMA_HAS_RUNKIT && $GLOBALS['runkit_internal_override']) {
echo "Enabling headers testing...\n";
runkit_function_rename('header', 'test_header_override');
@ -106,4 +118,33 @@ function PMA_getTagArray($elementHTML, $arr = array())
return $arr;
}
/**
* Overrides date function
*
* @return boolean whether function was overridden or not
*/
function setupForTestsUsingDate()
{
if (PMA_HAS_RUNKIT && $GLOBALS['runkit_internal_override']) {
runkit_function_rename('date', 'test_date_override');
runkit_function_rename('test_date', 'date');
return true;
} else {
return false;
}
}
/**
* Restores date function
*
* @return void
*/
function tearDownForTestsUsingDate()
{
if (PMA_HAS_RUNKIT && $GLOBALS['runkit_internal_override']) {
runkit_function_rename('date', 'test_date');
runkit_function_rename('test_date_override', 'date');
}
}
?>

View File

@ -269,6 +269,10 @@ class PMA_Tracker_Test extends PHPUnit_Framework_TestCase
*/
public function testGetLogComment()
{
if (!setupForTestsUsingDate()) {
$this->markTestSkipped("Cannot override internal function date()");
}
$date = date('Y-m-d H:i:s');
$GLOBALS['cfg']['Server']['user'] = "pma_test_user";
@ -276,6 +280,8 @@ class PMA_Tracker_Test extends PHPUnit_Framework_TestCase
"# log $date pma_test_user\n",
PMA_Tracker::getLogComment()
);
tearDownForTestsUsingDate();
}
/**
@ -286,6 +292,10 @@ class PMA_Tracker_Test extends PHPUnit_Framework_TestCase
*/
public function testCreateVersion()
{
if (!setupForTestsUsingDate()) {
$this->markTestSkipped("Cannot override internal function date()");
}
$GLOBALS['cfg']['Server']['tracking_add_drop_table'] = true;
$GLOBALS['cfg']['Server']['tracking_add_drop_view'] = true;
$GLOBALS['cfg']['Server']['user'] = "pma_test_user";
@ -406,6 +416,8 @@ class PMA_Tracker_Test extends PHPUnit_Framework_TestCase
'executed',
PMA_Tracker::createVersion('pma_test', 'pma_tbl', '1', '11', true)
);
tearDownForTestsUsingDate();
}
/**
@ -449,6 +461,10 @@ class PMA_Tracker_Test extends PHPUnit_Framework_TestCase
*/
public function testCreateDatabaseVersion()
{
if (!setupForTestsUsingDate()) {
$this->markTestSkipped("Cannot override internal function date()");
}
$GLOBALS['cfg']['Server']['tracking_add_drop_table'] = true;
$GLOBALS['cfg']['Server']['tracking_add_drop_view'] = true;
$GLOBALS['cfg']['Server']['user'] = "pma_test_user";
@ -491,6 +507,8 @@ class PMA_Tracker_Test extends PHPUnit_Framework_TestCase
'executed',
PMA_Tracker::createDatabaseVersion('pma_test', '1', 'SHOW DATABASES')
);
tearDownForTestsUsingDate();
}
/**
@ -564,6 +582,10 @@ class PMA_Tracker_Test extends PHPUnit_Framework_TestCase
*/
public function testChangeTrackingData()
{
if (!setupForTestsUsingDate()) {
$this->markTestSkipped("Cannot override internal function date()");
}
$reflection = new \ReflectionProperty('PMA_Tracker', 'pma_table');
$reflection->setAccessible(true);
$reflection->setValue(null, 'pma_table_tracking');
@ -597,10 +619,6 @@ class PMA_Tracker_Test extends PHPUnit_Framework_TestCase
)
);
/* FIXME: This breaks sometimes
* (when the query is executed in different second than
* date is read).
*/
$sql_query_2 = " UPDATE pma_table_tracking" .
" SET `data_sql` = '# log $date user1test_statement1\n" .
"# log $date user2test_statement2\n' " .
@ -641,6 +659,8 @@ class PMA_Tracker_Test extends PHPUnit_Framework_TestCase
$new_data
)
);
tearDownForTestsUsingDate();
}
/**