Merge pull request #656 from adamgsoc2013/UT_tbl_tracking

add Unit test cases for PMA_tbl_*
This commit is contained in:
Michal Čihař 2013-08-29 07:30:31 -07:00
commit d7e3184f69
4 changed files with 258 additions and 20 deletions

View File

@ -588,7 +588,7 @@ function PMA_getHtmlForDataDefinitionStatements($data, $filter_users,
$filter_ts_from, $filter_ts_to, $url_params, $drop_image_or_text
) {
$i = 1;
$html = '<table id="ddl_versions" class="data" width="100%">';
$html = '<table id="ddl_versions" class="data" width="100%">';
$html .= '<thead>';
$html .= '<tr>';
$html .= '<th width="18">#</th>';

View File

@ -116,6 +116,48 @@ class PMA_TblRelationTest extends PHPUnit_Framework_TestCase
);
}
/**
* Tests for PMA_backquoteSplit() method.
*
* @return void
* @test
*/
public function testPMABackquoteSplit()
{
$text = "test `PMA` Back `quote` Split";
$this->assertEquals(
array('`PMA`', '`quote`'),
PMA_backquoteSplit($text)
);
}
/**
* Tests for PMA_getSQLToCreateForeignKey() method.
*
* @return void
* @test
*/
public function testPMAGetSQLToCreateForeignKey()
{
$table = "PMA_table";
$field = "PMA_field";
$foreignDb = "foreignDb";
$foreignTable = "foreignTable";
$foreignField = "foreignField";
$sql = PMA_getSQLToCreateForeignKey(
$table, $field, $foreignDb, $foreignTable, $foreignField
);
$sql_excepted = 'ALTER TABLE `PMA_table` ADD '
. 'FOREIGN KEY (`PMA_field`) REFERENCES '
. '`foreignDb`.`foreignTable`(`foreignField`);';
$this->assertEquals(
$sql_excepted,
$sql
);
}
/**
* Tests for PMA_getSQLToDropForeignKey() method.
*

View File

@ -574,8 +574,8 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
$_REQUEST['logtype'] = 'logtype';
$url_query = "select * from PMA";
$data = array(
'tracking'=>'tracking',
'ddlog' => array('ddlog'),
'tracking'=>'tracking',
'ddlog' => array('ddlog'),
'dmlog' => array('dmlog')
);
$url_params = array();
@ -588,7 +588,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
$html = PMA_getHtmlForTrackingReport(
$url_query, $data, $url_params,
$selection_schema, $selection_data,
$selection_schema, $selection_data,
$selection_both, $filter_ts_to,
$filter_ts_from, $filter_users
);
@ -672,14 +672,14 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
$_REQUEST['version'] = "10";
$url_query = "select * from PMA";
$data = array(
'tracking'=>'tracking',
'tracking'=>'tracking',
'dmlog' => array(
array(
'statement' => 'statement',
'date' => 'date',
'username' => 'username',
)
),
),
'ddlog' => array('ddlog')
);
$url_params = array();
@ -691,7 +691,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
$html = PMA_getHtmlForDataManipulationStatements(
$data, $filter_users,
$filter_ts_from, $filter_ts_to, $url_params,
$filter_ts_from, $filter_ts_to, $url_params,
$ddlog_count, $drop_image_or_text
);
@ -721,6 +721,72 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
);
}
/**
* Tests for PMA_getHtmlForDataDefinitionStatements() method.
*
* @return void
* @test
*/
public function testPMAGetHtmlForDataDefinitionStatements()
{
$_REQUEST['version'] = "10";
$url_query = "select * from PMA";
$data = array(
'tracking'=>'tracking',
'ddlog' => array(
array(
'statement' => 'statement',
'date' => 'date',
'username' => 'username',
)
),
'dmlog' => array('dmlog')
);
$filter_users = array("*");
$filter_ts_to = 9999999999;
$filter_ts_from = 0;
$url_params = array();
$drop_image_or_text = "text";
list($html, $count) = PMA_getHtmlForDataDefinitionStatements(
$data, $filter_users,
$filter_ts_from, $filter_ts_to, $url_params, $drop_image_or_text
);
$this->assertContains(
__('Date'),
$html
);
$this->assertContains(
__('Username'),
$html
);
$this->assertContains(
__('Data definition statement'),
$html
);
$this->assertContains(
__('Delete'),
$html
);
//PMA_getHtmlForDataDefinitionStatement
$this->assertContains(
htmlspecialchars($data['ddlog'][0]['username']),
$html
);
$this->assertEquals(
2,
$count
);
}
/**
* Tests for PMA_getHtmlForIndexes() method.
*
@ -742,7 +808,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
'Comment' => 'Comment',
),
);
$html = PMA_getHtmlForIndexes($indexs);
$this->assertContains(
@ -793,7 +859,7 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
$this->assertContains(
htmlspecialchars($indexs[0]['Collation']),
$html
);
);
}
/**
@ -814,12 +880,76 @@ class PMA_TblTrackingTest extends PHPUnit_Framework_TestCase
$_REQUEST['update'] = false;
$_REQUEST['delete'] = true;
$_REQUEST['truncate'] = true;
$tracking_set = PMA_getTrackingSet();
$this->assertEquals(
'RENAME TABLE,CREATE TABLE,DROP TABLE,DROP INDEX,INSERT,DELETE,TRUNCATE',
$tracking_set
);
);
//other set to true
$_REQUEST['alter_table'] = true;
$_REQUEST['rename_table'] = false;
$_REQUEST['create_table'] = false;
$_REQUEST['drop_table'] = false;
$_REQUEST['create_index'] = true;
$_REQUEST['drop_index'] = false;
$_REQUEST['insert'] = false;
$_REQUEST['update'] = true;
$_REQUEST['delete'] = false;
$_REQUEST['truncate'] = false;
$tracking_set = PMA_getTrackingSet();
$this->assertEquals(
'ALTER TABLE,CREATE INDEX,UPDATE',
$tracking_set
);
}
/**
* Tests for PMA_getEntries() method.
*
* @return void
* @test
*/
public function testPMAGetEntries()
{
$_REQUEST['logtype'] = 'schema';
$data = array(
'tracking'=>'tracking',
'ddlog' => array(
array(
'statement' => 'statement1',
'date' => 'date2',
'username' => 'username3',
)
),
'dmlog' => array(
array(
'statement' => 'statement1',
'date' => 'date2',
'username' => 'username3',
)
),
);
$filter_users = array("*");
$filter_ts_to = 9999999999;
$filter_ts_from = 0;
$url_params = array();
$drop_image_or_text = "text";
$entries = PMA_getEntries(
$data, $filter_ts_from, $filter_ts_to, $filter_users
);
$this->assertEquals(
'username3',
$entries[0]['username']
);
$this->assertEquals(
'statement1',
$entries[0]['statement']
);
}
}

View File

@ -36,11 +36,11 @@ class PMA_TblViewsTest extends PHPUnit_Framework_TestCase
*/
$GLOBALS['server'] = 1;
$GLOBALS['cfg']['Server']['pmadb'] = '';
$dbi = $this->getMockBuilder('PMA_DatabaseInterface')
->disableOriginalConstructor()
->getMock();
$dbi->expects($this->any())
->method('tryQuery')
->will($this->returnValue('executeResult2'));
@ -55,22 +55,40 @@ class PMA_TblViewsTest extends PHPUnit_Framework_TestCase
'relation' => 'relation',
'column_info' => 'column_info',
);
//_SESSION
$_SESSION['relation'][$GLOBALS['server']] = array(
'table_coords' => "table_name",
'displaywork' => 'displaywork',
'db' => "information_schema",
'table_info' => 'table_info',
'relwork' => 'relwork',
'commwork' => 'commwork',
'displaywork' => 'displaywork',
'pdfwork' => 'pdfwork',
'designerwork' => 'designerwork',
'column_info' => 'column_info',
'designer_coords' => 'designer_coords',
'relation' => 'relation',
'relwork' => 'relwork',
);
$meta1 = new FieldMeta();
$meta1->table = "meta1_table";
$meta1->name = "meta1_name";
$meta1->name = "meta1_name";
$meta2 = new FieldMeta();
$meta2->table = "meta2_table";
$meta2->name = "meta2_name";
$getFieldsMeta = array($meta1, $meta2);
$dbi->expects($this->any())
->method('getFieldsMeta')
->will($this->returnValue($getFieldsMeta));
$GLOBALS['dbi'] = $dbi;
}
/**
* Tests for PMA_getColumnMap() method.
*
@ -83,7 +101,7 @@ class PMA_TblViewsTest extends PHPUnit_Framework_TestCase
$view_columns = array(
"view_columns1", "view_columns2"
);
$column_map = PMA_getColumnMap($sql_query, $view_columns);
$this->assertEquals(
@ -103,7 +121,7 @@ class PMA_TblViewsTest extends PHPUnit_Framework_TestCase
$column_map[1]
);
}
/**
* Tests for PMA_getExistingTranformationData() method.
*
@ -114,13 +132,61 @@ class PMA_TblViewsTest extends PHPUnit_Framework_TestCase
{
$db = "PMA_db";
$ret = PMA_getExistingTranformationData($db);
//validate that is the same as $GLOBALS['dbi']->tryQuery
$this->assertEquals(
'executeResult2',
$ret
);
}
/**
* Tests for PMA_getNewTransformationDataSql() method.
*
* @return void
* @test
*/
public function testPMAGetNewTransformationDataSql()
{
$dbi = $GLOBALS['dbi'];
$value = array(
'table_name' => "table_name",
'column_name' => "column_name",
'comment' => "comment",
'mimetype' => "mimetype",
'transformation' => "transformation",
'transformation_options' => "transformation_options",
);
$dbi->expects($this->at(0))->method('fetchAssoc')
->will($this->returnValue($value));
$GLOBALS['dbi'] = $dbi;
$db = "PMA_db";
$pma_tranformation_data = array();
$column_map = array(
array(
"table_name" => "table_name",
"refering_column" => "column_name"
)
);
$view_name = "view_name";
$ret = PMA_getNewTransformationDataSql(
$pma_tranformation_data, $column_map, $view_name, $db
);
$sql = "INSERT INTO `information_schema`.`column_info` "
. "(`db_name`, `table_name`, `column_name`, `comment`, `mimetype`, "
. "`transformation`, `transformation_options`) VALUES "
. "('PMA_db', 'view_name', 'column_name', 'comment', 'mimetype', "
. "'transformation', 'transformation_options')";
$this->assertEquals(
$sql,
$ret
);
}
}
/**