diff --git a/libraries/tbl_tracking.lib.php b/libraries/tbl_tracking.lib.php index f627ff45f7..1bf7c4c405 100644 --- a/libraries/tbl_tracking.lib.php +++ b/libraries/tbl_tracking.lib.php @@ -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 = ''; + $html = '
'; $html .= ''; $html .= ''; $html .= ''; diff --git a/test/libraries/PMA_tbl_relation_test.php b/test/libraries/PMA_tbl_relation_test.php index c4eaa7fc05..fe332fae42 100644 --- a/test/libraries/PMA_tbl_relation_test.php +++ b/test/libraries/PMA_tbl_relation_test.php @@ -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. * diff --git a/test/libraries/PMA_tbl_tracking_test.php b/test/libraries/PMA_tbl_tracking_test.php index debec924bf..56a2d4a33f 100644 --- a/test/libraries/PMA_tbl_tracking_test.php +++ b/test/libraries/PMA_tbl_tracking_test.php @@ -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'] + ); } } diff --git a/test/libraries/PMA_tbl_views_test.php b/test/libraries/PMA_tbl_views_test.php index f3429faae2..2282f6018c 100644 --- a/test/libraries/PMA_tbl_views_test.php +++ b/test/libraries/PMA_tbl_views_test.php @@ -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 + ); + } } /**
#