Merge pull request #644 from adamgsoc2013/UT_tbl
more test cases for PMA_tbl_tracking
This commit is contained in:
commit
b5dc22aa81
@ -15,6 +15,9 @@ require_once 'libraries/database_interface.inc.php';
|
||||
require_once 'libraries/php-gettext/gettext.inc';
|
||||
require_once 'libraries/relation.lib.php';
|
||||
require_once 'libraries/url_generating.lib.php';
|
||||
require_once 'libraries/Tracker.class.php';
|
||||
require_once 'libraries/Message.class.php';
|
||||
require_once 'libraries/js_escape.lib.php';
|
||||
|
||||
/**
|
||||
* Tests for libraries/tbl_tracking.lib.php
|
||||
@ -35,24 +38,37 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
|
||||
/**
|
||||
* SET these to avoid undefined index error
|
||||
*/
|
||||
$_REQUEST['db'] = "db";
|
||||
$_REQUEST['table'] = "table";
|
||||
|
||||
$GLOBALS['server'] = 1;
|
||||
$GLOBALS['db'] = "PMA_db";
|
||||
$GLOBALS['table'] = "PMA_table";
|
||||
$GLOBALS['cfg']['Server']['pmadb'] = 'pmadb';
|
||||
$GLOBALS['cfg']['ServerDefault'] = "server";
|
||||
|
||||
$GLOBALS['cfg']['Server']['tracking'] = "tracking";
|
||||
$GLOBALS['cfg']['ActionsLinksMode'] = 'ActionsLinksMode';
|
||||
$GLOBALS['cfg']['ActionLinksMode'] = 'ActionLinksMode';
|
||||
$GLOBALS['cfg']['MaxCharactersInDisplayedSQL'] = 1000;
|
||||
|
||||
$dbi = $this->getMockBuilder('PMA_DatabaseInterface')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
|
||||
$fetchArray = array('version' => "10");
|
||||
$dbi->expects($this->any())
|
||||
->method('fetchArray')
|
||||
->will($this->returnValue($fetchArray));
|
||||
$dbi->expects($this->any())
|
||||
->method('query')
|
||||
->will($this->returnValue(true));
|
||||
$dbi->expects($this->any())
|
||||
->method('tryQuery')
|
||||
->will($this->returnValue(true));
|
||||
|
||||
$GLOBALS['dbi'] = $dbi;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests for PMA_filterTracking() method.
|
||||
*
|
||||
@ -63,20 +79,20 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
$data = array(
|
||||
array(
|
||||
"date" => "20120102",
|
||||
"username"=> "username1",
|
||||
"date" => "20120102",
|
||||
"username"=> "username1",
|
||||
"statement"=>"statement1"
|
||||
),
|
||||
array(
|
||||
"date" => "20130102",
|
||||
"username"=> "username2",
|
||||
"date" => "20130102",
|
||||
"username"=> "username2",
|
||||
"statement"=>"statement2"
|
||||
),
|
||||
);
|
||||
$filter_ts_from = 0;
|
||||
$filter_ts_from = 0;
|
||||
$filter_ts_to = 999999999999;
|
||||
$filter_users = array("username1");
|
||||
|
||||
|
||||
$ret = PMA_filterTracking(
|
||||
$data, $filter_ts_from, $filter_ts_to, $filter_users
|
||||
);
|
||||
@ -90,7 +106,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
|
||||
$ret[0]['statement']
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests for PMA_getHtmlForDataDefinitionAndManipulationStatements() method.
|
||||
*
|
||||
@ -109,17 +125,17 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
|
||||
'<div id="div_create_version">',
|
||||
$html
|
||||
);
|
||||
|
||||
|
||||
$this->assertContains(
|
||||
$url_query,
|
||||
$html
|
||||
);
|
||||
|
||||
|
||||
$this->assertContains(
|
||||
PMA_URL_getHiddenInputs($GLOBALS['db'], $GLOBALS['table']),
|
||||
$html
|
||||
);
|
||||
|
||||
|
||||
$item = sprintf(
|
||||
__('Create version %1$s of %2$s'),
|
||||
($last_version + 1),
|
||||
@ -129,20 +145,20 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
|
||||
$item,
|
||||
$html
|
||||
);
|
||||
|
||||
|
||||
$item = '<input type="checkbox" name="delete" value="true"'
|
||||
. ' checked="checked" /> DELETE<br/>';
|
||||
$this->assertContains(
|
||||
$item,
|
||||
$html
|
||||
);
|
||||
|
||||
|
||||
$this->assertContains(
|
||||
__('Create version'),
|
||||
$html
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests for PMA_getHtmlForActivateTracking() method.
|
||||
*
|
||||
@ -159,12 +175,12 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
|
||||
'<div id="div_activate_tracking">',
|
||||
$html
|
||||
);
|
||||
|
||||
|
||||
$this->assertContains(
|
||||
$url_query,
|
||||
$html
|
||||
);
|
||||
|
||||
|
||||
$item = sprintf(
|
||||
__('Activate tracking for %s'),
|
||||
htmlspecialchars($GLOBALS['db'] . '.' . $GLOBALS['table'])
|
||||
@ -173,18 +189,18 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
|
||||
$item,
|
||||
$html
|
||||
);
|
||||
|
||||
|
||||
$this->assertContains(
|
||||
$last_version,
|
||||
$html
|
||||
);
|
||||
|
||||
|
||||
$this->assertContains(
|
||||
__('Activate now'),
|
||||
$html
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests for PMA_getHtmlForDeactivateTracking() method.
|
||||
*
|
||||
@ -201,12 +217,12 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
|
||||
'<div id="div_deactivate_tracking">',
|
||||
$html
|
||||
);
|
||||
|
||||
|
||||
$this->assertContains(
|
||||
$url_query,
|
||||
$html
|
||||
);
|
||||
|
||||
|
||||
$item = sprintf(
|
||||
__('Deactivate tracking for %s'),
|
||||
htmlspecialchars($GLOBALS['db'] . '.' . $GLOBALS['table'])
|
||||
@ -215,18 +231,18 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
|
||||
$item,
|
||||
$html
|
||||
);
|
||||
|
||||
|
||||
$this->assertContains(
|
||||
$last_version,
|
||||
$html
|
||||
);
|
||||
|
||||
|
||||
$this->assertContains(
|
||||
__('Deactivate now'),
|
||||
$html
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests for PMA_getTableLastVersionNumber() method.
|
||||
*
|
||||
@ -243,7 +259,23 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
|
||||
$last_version
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests for PMA_getSQLResultForSelectableTables() method.
|
||||
*
|
||||
* @return void
|
||||
* @test
|
||||
*/
|
||||
public function testPMAGetSQLResultForSelectableTables()
|
||||
{
|
||||
$ret = PMA_getSQLResultForSelectableTables();
|
||||
|
||||
$this->assertEquals(
|
||||
true,
|
||||
$ret
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests for PMA_getHtmlForColumns() method.
|
||||
*
|
||||
@ -254,27 +286,27 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
$columns = array(
|
||||
array(
|
||||
'Field'=>'Field1',
|
||||
'Type'=>'Type1',
|
||||
'Collation'=>'Collation1',
|
||||
"Null"=>'YES',
|
||||
'Extra'=>'Extra1',
|
||||
'Field'=>'Field1',
|
||||
'Type'=>'Type1',
|
||||
'Collation'=>'Collation1',
|
||||
"Null"=>'YES',
|
||||
'Extra'=>'Extra1',
|
||||
'Key'=>'PRI',
|
||||
'Comment'=>'Comment1'
|
||||
'Comment'=>'Comment1'
|
||||
),
|
||||
array(
|
||||
'Field'=>'Field2',
|
||||
'Type'=>'Type2',
|
||||
'Collation'=>'Collation2',
|
||||
"Null"=>'No',
|
||||
'Extra'=>'Extra2',
|
||||
'Field'=>'Field2',
|
||||
'Type'=>'Type2',
|
||||
'Collation'=>'Collation2',
|
||||
"Null"=>'No',
|
||||
'Extra'=>'Extra2',
|
||||
'Key'=>'Key2',
|
||||
'Comment'=>'Comment2'
|
||||
'Comment'=>'Comment2'
|
||||
),
|
||||
);
|
||||
|
||||
|
||||
$html = PMA_getHtmlForColumns($columns);
|
||||
|
||||
|
||||
$this->assertContains(
|
||||
__('Column'),
|
||||
$html
|
||||
@ -295,7 +327,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
|
||||
__('Comment'),
|
||||
$html
|
||||
);
|
||||
|
||||
|
||||
//column1
|
||||
$item1= $columns[0];
|
||||
$this->assertContains(
|
||||
@ -318,7 +350,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
|
||||
htmlspecialchars($item1['Comment']),
|
||||
$html
|
||||
);
|
||||
|
||||
|
||||
//column2
|
||||
$item1= $columns[1];
|
||||
$this->assertContains(
|
||||
@ -342,6 +374,353 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
|
||||
$html
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests for PMA_getListOfVersionsOfTable() method.
|
||||
*
|
||||
* @return void
|
||||
* @test
|
||||
*/
|
||||
public function testPMAGetListOfVersionsOfTable()
|
||||
{
|
||||
$ret = PMA_getListOfVersionsOfTable();
|
||||
|
||||
$this->assertEquals(
|
||||
true,
|
||||
$ret
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests for PMA_getHtmlForTableVersionDetails() method.
|
||||
*
|
||||
* @return void
|
||||
* @test
|
||||
*/
|
||||
public function testPMAGetHtmlForTableVersionDetails()
|
||||
{
|
||||
$sql_result = true;
|
||||
$last_version = "10";
|
||||
$url_params = array();
|
||||
$url_query = "select * from PMA";
|
||||
|
||||
$dbi_old = $GLOBALS['dbi'];
|
||||
$dbi = $this->getMockBuilder('PMA_DatabaseInterface')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$fetchArray = array(
|
||||
'tracking_active' => 1,
|
||||
'version' => "10",
|
||||
'db_name' => 'db_name',
|
||||
'table_name' => 'table_name',
|
||||
'date_created' => 'date_created',
|
||||
'date_updated' => 'date_updated'
|
||||
);
|
||||
$dbi->expects($this->at(0))
|
||||
->method('fetchArray')
|
||||
->will($this->returnValue($fetchArray));
|
||||
$dbi->expects($this->at(1))
|
||||
->method('fetchArray')
|
||||
->will($this->returnValue($fetchArray));
|
||||
$dbi->expects($this->at(2))
|
||||
->method('fetchArray')
|
||||
->will($this->returnValue(false));
|
||||
|
||||
$GLOBALS['dbi'] = $dbi;
|
||||
|
||||
$ret = PMA_getHtmlForTableVersionDetails(
|
||||
$sql_result, $last_version, $url_params, $url_query
|
||||
);
|
||||
|
||||
$this->assertContains(
|
||||
__('Database'),
|
||||
$ret
|
||||
);
|
||||
$this->assertContains(
|
||||
__('Table'),
|
||||
$ret
|
||||
);
|
||||
$this->assertContains(
|
||||
__('Version'),
|
||||
$ret
|
||||
);
|
||||
$this->assertContains(
|
||||
__('Created'),
|
||||
$ret
|
||||
);
|
||||
$this->assertContains(
|
||||
__('Updated'),
|
||||
$ret
|
||||
);
|
||||
$this->assertContains(
|
||||
__('Status'),
|
||||
$ret
|
||||
);
|
||||
$this->assertContains(
|
||||
__('Show'),
|
||||
$ret
|
||||
);
|
||||
$this->assertContains(
|
||||
$fetchArray['db_name'],
|
||||
$ret
|
||||
);
|
||||
$this->assertContains(
|
||||
$fetchArray['table_name'],
|
||||
$ret
|
||||
);
|
||||
$this->assertContains(
|
||||
$fetchArray['version'],
|
||||
$ret
|
||||
);
|
||||
$this->assertContains(
|
||||
$fetchArray['date_created'],
|
||||
$ret
|
||||
);
|
||||
$this->assertContains(
|
||||
$fetchArray['date_updated'],
|
||||
$ret
|
||||
);
|
||||
$this->assertContains(
|
||||
__('Tracking report'),
|
||||
$ret
|
||||
);
|
||||
$this->assertContains(
|
||||
__('Structure snapshot'),
|
||||
$ret
|
||||
);
|
||||
$html = sprintf(
|
||||
__('Deactivate tracking for %s'),
|
||||
htmlspecialchars($GLOBALS['db'] . '.' . $GLOBALS['table'])
|
||||
);
|
||||
$this->assertContains(
|
||||
$html,
|
||||
$ret
|
||||
);
|
||||
|
||||
//restore DBI
|
||||
$GLOBALS['dbi'] = $dbi_old;
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests for PMA_getHtmlForSelectableTables() method.
|
||||
*
|
||||
* @return void
|
||||
* @test
|
||||
*/
|
||||
public function testPMAGetHtmlForSelectableTables()
|
||||
{
|
||||
$selectable_tables_sql_result = true;
|
||||
$url_query = "select * from PMA";
|
||||
|
||||
$dbi_old = $GLOBALS['dbi'];
|
||||
$dbi = $this->getMockBuilder('PMA_DatabaseInterface')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$fetchArray = array(
|
||||
'tracking_active' => 1,
|
||||
'version' => "10",
|
||||
'db_name' => 'db_name',
|
||||
'table_name' => 'table_name',
|
||||
'date_created' => 'date_created',
|
||||
'date_updated' => 'date_updated'
|
||||
);
|
||||
$dbi->expects($this->at(0))
|
||||
->method('fetchArray')
|
||||
->will($this->returnValue($fetchArray));
|
||||
$dbi->expects($this->at(1))
|
||||
->method('fetchArray')
|
||||
->will($this->returnValue($fetchArray));
|
||||
$dbi->expects($this->at(2))
|
||||
->method('fetchArray')
|
||||
->will($this->returnValue(false));
|
||||
|
||||
$GLOBALS['dbi'] = $dbi;
|
||||
|
||||
$ret = PMA_getHtmlForSelectableTables(
|
||||
$selectable_tables_sql_result, $url_query
|
||||
);
|
||||
|
||||
$this->assertContains(
|
||||
htmlspecialchars($fetchArray['table_name']),
|
||||
$ret
|
||||
);
|
||||
$this->assertContains(
|
||||
htmlspecialchars($fetchArray['db_name']),
|
||||
$ret
|
||||
);
|
||||
$this->assertContains(
|
||||
__('Show versions'),
|
||||
$ret
|
||||
);
|
||||
|
||||
//restore DBI
|
||||
$GLOBALS['dbi'] = $dbi_old;
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests for PMA_getHtmlForTrackingReport() method.
|
||||
*
|
||||
* @return void
|
||||
* @test
|
||||
*/
|
||||
public function testPMAGetHtmlForTrackingReportr()
|
||||
{
|
||||
$_REQUEST['version'] = 10;
|
||||
$_REQUEST['date_from'] = "date_from";
|
||||
$_REQUEST['date_to'] = "date_to";
|
||||
$_REQUEST['users'] = "users";
|
||||
$_REQUEST['logtype'] = 'logtype';
|
||||
$url_query = "select * from PMA";
|
||||
$data = array(
|
||||
'tracking'=>'tracking',
|
||||
'ddlog' => array('ddlog'),
|
||||
'dmlog' => array('dmlog')
|
||||
);
|
||||
$url_params = array();
|
||||
$selection_schema = array();
|
||||
$selection_data = array();
|
||||
$selection_both = array();
|
||||
$filter_ts_to = array();
|
||||
$filter_ts_from = array();
|
||||
$filter_users = array();
|
||||
|
||||
$html = PMA_getHtmlForTrackingReport(
|
||||
$url_query, $data, $url_params,
|
||||
$selection_schema, $selection_data,
|
||||
$selection_both, $filter_ts_to,
|
||||
$filter_ts_from, $filter_users
|
||||
);
|
||||
|
||||
$this->assertContains(
|
||||
__('Tracking report'),
|
||||
$html
|
||||
);
|
||||
|
||||
$this->assertContains(
|
||||
$url_query,
|
||||
$html
|
||||
);
|
||||
|
||||
$this->assertContains(
|
||||
__('Tracking statements'),
|
||||
$html
|
||||
);
|
||||
|
||||
$this->assertContains(
|
||||
$data['tracking'],
|
||||
$html
|
||||
);
|
||||
|
||||
$version = '<form method="post" action="tbl_tracking.php'
|
||||
. PMA_URL_getCommon(
|
||||
$url_params + array(
|
||||
'report' => 'true', 'version' => $_REQUEST['version']
|
||||
)
|
||||
);
|
||||
|
||||
$this->assertContains(
|
||||
$version,
|
||||
$html
|
||||
);
|
||||
|
||||
$this->assertContains(
|
||||
$version,
|
||||
$html
|
||||
);
|
||||
|
||||
$this->assertContains(
|
||||
__('Structure only'),
|
||||
$html
|
||||
);
|
||||
|
||||
$this->assertContains(
|
||||
__('Data only'),
|
||||
$html
|
||||
);
|
||||
|
||||
$this->assertContains(
|
||||
__('Structure and data'),
|
||||
$html
|
||||
);
|
||||
|
||||
$this->assertContains(
|
||||
htmlspecialchars($_REQUEST['date_from']),
|
||||
$html
|
||||
);
|
||||
|
||||
$this->assertContains(
|
||||
htmlspecialchars($_REQUEST['date_to']),
|
||||
$html
|
||||
);
|
||||
|
||||
$this->assertContains(
|
||||
htmlspecialchars($_REQUEST['users']),
|
||||
$html
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests for PMA_getHtmlForDataManipulationStatements() method.
|
||||
*
|
||||
* @return void
|
||||
* @test
|
||||
*/
|
||||
public function testPMAGetHtmlForDataManipulationStatements()
|
||||
{
|
||||
$_REQUEST['version'] = "10";
|
||||
$url_query = "select * from PMA";
|
||||
$data = array(
|
||||
'tracking'=>'tracking',
|
||||
'dmlog' => array(
|
||||
array(
|
||||
'statement' => 'statement',
|
||||
'date' => 'date',
|
||||
'username' => 'username',
|
||||
)
|
||||
),
|
||||
'ddlog' => array('ddlog')
|
||||
);
|
||||
$url_params = array();
|
||||
$ddlog_count = 10;
|
||||
$drop_image_or_text = "text";
|
||||
$filter_ts_to = 9999999999;
|
||||
$filter_ts_from = 0;
|
||||
$filter_users = array("*");
|
||||
|
||||
$html = PMA_getHtmlForDataManipulationStatements(
|
||||
$data, $filter_users,
|
||||
$filter_ts_from, $filter_ts_to, $url_params,
|
||||
$ddlog_count, $drop_image_or_text
|
||||
);
|
||||
|
||||
$this->assertContains(
|
||||
__('Date'),
|
||||
$html
|
||||
);
|
||||
|
||||
$this->assertContains(
|
||||
__('Username'),
|
||||
$html
|
||||
);
|
||||
|
||||
$this->assertContains(
|
||||
__('Data manipulation statement'),
|
||||
$html
|
||||
);
|
||||
|
||||
$this->assertContains(
|
||||
$data['dmlog'][0]['date'],
|
||||
$html
|
||||
);
|
||||
|
||||
$this->assertContains(
|
||||
$data['dmlog'][0]['username'],
|
||||
$html
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
?>
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user