From 5ca23f337dba05b57d952477793fd7f31e3a07ac Mon Sep 17 00:00:00 2001 From: adamgsoc2013 Date: Mon, 22 Jul 2013 22:19:11 +0800 Subject: [PATCH 1/2] add test case for parse_analyze.inc.php --- libraries/sqlparser.lib.php | 13 ++++++ test/libraries/PMA_SQL_parse_analyze_test.php | 42 +++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 test/libraries/PMA_SQL_parse_analyze_test.php diff --git a/libraries/sqlparser.lib.php b/libraries/sqlparser.lib.php index b99ba814be..c7fe15b7ce 100644 --- a/libraries/sqlparser.lib.php +++ b/libraries/sqlparser.lib.php @@ -3041,5 +3041,18 @@ function PMA_SQP_getParserDataMap() 'PMA_SQPdata_column_type' => $PMA_SQPdata_column_type, ); } +/** + * Get Parser analyze Map from parse_analyze_inc.php + * + * @param array $sql_query The SQL string + * @param array $db Current DB + * + * @return Array analyze Map from parse_analyze_inc.php + */ +function PMA_SQP_getParserAnalyzeMap($sql_query, $db) +{ + include 'libraries/parse_analyze.inc.php'; + return $analyzed_sql_results; +} ?> diff --git a/test/libraries/PMA_SQL_parse_analyze_test.php b/test/libraries/PMA_SQL_parse_analyze_test.php new file mode 100644 index 0000000000..fc44bfc50c --- /dev/null +++ b/test/libraries/PMA_SQL_parse_analyze_test.php @@ -0,0 +1,42 @@ +assertEquals( + array( + 'type' => 'alpha_reservedWord', + 'data' => 'select', + 'pos' => 6, + 'forbidden' => true, + ), + $data['parsed_sql'][0] + ); + $this->assertEquals( + 'select * from PMA.PMAParse', + $data['analyzed_sql'][0]['unsorted_query'] + ); + $this->assertFalse($data['reload']); + $this->assertFalse($data['is_group']); + $this->assertFalse($data['is_show']); + $this->assertFalse($data['is_group']); + } +} + +?> From 1c0fd2fdfef304bc7b1d2eacbf321a7b1950db86 Mon Sep 17 00:00:00 2001 From: adamgsoc2013 Date: Mon, 22 Jul 2013 23:12:36 +0800 Subject: [PATCH 2/2] add update sql statement for testing --- test/libraries/PMA_SQL_parse_analyze_test.php | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/test/libraries/PMA_SQL_parse_analyze_test.php b/test/libraries/PMA_SQL_parse_analyze_test.php index fc44bfc50c..61a6723c38 100644 --- a/test/libraries/PMA_SQL_parse_analyze_test.php +++ b/test/libraries/PMA_SQL_parse_analyze_test.php @@ -9,12 +9,14 @@ /* * Include to test. */ +require_once 'libraries/Util.class.php'; require_once 'libraries/sqlparser.lib.php'; class PMA_SQLParserAnalyze_Test extends PHPUnit_Framework_TestCase { public function testPMA_SQP_getParserAnalyzeMa() { + //select statement $sql_query = "select * from PMA.PMAParse"; $db = "PMA"; $data = PMA_SQP_getParserAnalyzeMap($sql_query, $db); @@ -32,10 +34,33 @@ class PMA_SQLParserAnalyze_Test extends PHPUnit_Framework_TestCase 'select * from PMA.PMAParse', $data['analyzed_sql'][0]['unsorted_query'] ); - $this->assertFalse($data['reload']); + + $this->assertTrue($data['is_select']); $this->assertFalse($data['is_group']); $this->assertFalse($data['is_show']); + + //update statement + $sql_query = "UPDATE `11`.`pma_bookmark` SET `id` = '2' WHERE `pma_bookmark`.`id` = 1;"; + $db = "PMA"; + $data = PMA_SQP_getParserAnalyzeMap($sql_query, $db); + + $this->assertEquals( + array( + 'type' => 'alpha_reservedWord', + 'data' => 'UPDATE', + 'pos' => 6, + 'forbidden' => true, + ), + $data['parsed_sql'][0] + ); + $this->assertEquals( + $sql_query, + $data['analyzed_sql'][0]['unsorted_query'] + ); $this->assertFalse($data['is_group']); + $this->assertFalse($data['is_show']); + $this->assertTrue($data['is_affected']); + $this->assertFalse($data['is_select']); } }