From 5bb741c8863c2c88211e19f0f6da650c93322b89 Mon Sep 17 00:00:00 2001 From: adamgsoc2013 Date: Fri, 19 Jul 2013 00:21:10 +0800 Subject: [PATCH 1/2] add test case for PMA_SQL_parser --- libraries/sqlparser.lib.php | 2 +- test/libraries/PMA_SQL_parser_test.php | 80 ++++++++++++++++++++++++++ 2 files changed, 81 insertions(+), 1 deletion(-) diff --git a/libraries/sqlparser.lib.php b/libraries/sqlparser.lib.php index 7cfde965e7..b99ba814be 100644 --- a/libraries/sqlparser.lib.php +++ b/libraries/sqlparser.lib.php @@ -155,7 +155,7 @@ function PMA_SQP_bug($message, $sql) { global $SQP_errorString; $debugstr = 'ERROR: ' . $message . "\n"; - $debugstr .= 'MySQL: '.PMA_MYSQL_STR_VERSION . "\n"; + $debugstr .= 'MySQL: ' . PMA_MYSQL_STR_VERSION . "\n"; $debugstr .= 'USR OS, AGENT, VER: ' . PMA_USR_OS . ' '; $debugstr .= PMA_USR_BROWSER_AGENT . ' ' . PMA_USR_BROWSER_VER . "\n"; $debugstr .= 'PMA: ' . PMA_VERSION . "\n"; diff --git a/test/libraries/PMA_SQL_parser_test.php b/test/libraries/PMA_SQL_parser_test.php index 65e834156c..ae6113b7ae 100644 --- a/test/libraries/PMA_SQL_parser_test.php +++ b/test/libraries/PMA_SQL_parser_test.php @@ -61,8 +61,88 @@ class PMA_SQLParser_Test extends PHPUnit_Framework_TestCase $this->assertTrue(PMA_SQP_isKeyWord("accessible")); $this->assertTrue(PMA_SQP_isKeyWord("ASC")); $this->assertFalse(PMA_SQP_isKeyWord("hello")); + } + + /** + * Test PMA_SQP_typeCheck + * + * @return void + */ + public function testPMA_SQP_typeCheck() + { + $this->assertTrue( + PMA_SQP_typeCheck("VARCHAR", "VARCHAR") + ); + + $this->assertFalse( + PMA_SQP_typeCheck("VARCHAR", "VARCHAR_INT") + ); + + $this->assertTrue( + PMA_SQP_typeCheck("VARCHAR_INT", "VARCHAR") + ); + + $this->assertFalse( + PMA_SQP_typeCheck("TIME_INT", "VARCHAR") + ); } + /** + * Test PMA_SQP_throwError + * + * @return void + */ + public function testPMA_SQP_throwError() + { + global $SQP_errorString; + $message = "error from testPMA_SQP_throwError"; + $sql = "select * from PMA.PMABookmark"; + PMA_SQP_throwError($message, $sql); + + $this->assertContains( + "There seems to be an error in your SQL query.", + $SQP_errorString + ); + + $this->assertContains( + 'ERROR: ' . $message, + $SQP_errorString + ); + + $this->assertContains( + 'SQL: ' . htmlspecialchars($sql), + $SQP_errorString + ); + } + + /** + * Test PMA_SQP_bug + * + * @return void + */ + public function testPMA_SQP_bug() + { + global $SQP_errorString; + define("PMA_MYSQL_STR_VERSION", "5.00.15"); + define("PMA_USR_OS", "linux"); + define("PMA_USR_BROWSER_VER", "firefox"); + define("PMA_PHP_STR_VERSION", "5.0"); + define("PMA_USR_BROWSER_AGENT", "IE"); + + $message = "error from testPMA_SQP_throwError"; + $sql = "select * from PMA.PMABookmark"; + PMA_SQP_bug($message, $sql); + + $this->assertContains( + 'ERROR: ' . $message, + $SQP_errorString + ); + + $this->assertContains( + 'SQL: ' . htmlspecialchars($sql), + $SQP_errorString + ); + } /** * Data provider for parser testing From f2cf954dd82390ac1be6af4cb0cab6537d257bcb Mon Sep 17 00:00:00 2001 From: adamgsoc2013 Date: Fri, 19 Jul 2013 00:31:23 +0800 Subject: [PATCH 2/2] fix redefine --- test/libraries/PMA_SQL_parser_test.php | 29 -------------------------- 1 file changed, 29 deletions(-) diff --git a/test/libraries/PMA_SQL_parser_test.php b/test/libraries/PMA_SQL_parser_test.php index ae6113b7ae..097bad4492 100644 --- a/test/libraries/PMA_SQL_parser_test.php +++ b/test/libraries/PMA_SQL_parser_test.php @@ -109,35 +109,6 @@ class PMA_SQLParser_Test extends PHPUnit_Framework_TestCase $SQP_errorString ); - $this->assertContains( - 'SQL: ' . htmlspecialchars($sql), - $SQP_errorString - ); - } - - /** - * Test PMA_SQP_bug - * - * @return void - */ - public function testPMA_SQP_bug() - { - global $SQP_errorString; - define("PMA_MYSQL_STR_VERSION", "5.00.15"); - define("PMA_USR_OS", "linux"); - define("PMA_USR_BROWSER_VER", "firefox"); - define("PMA_PHP_STR_VERSION", "5.0"); - define("PMA_USR_BROWSER_AGENT", "IE"); - - $message = "error from testPMA_SQP_throwError"; - $sql = "select * from PMA.PMABookmark"; - PMA_SQP_bug($message, $sql); - - $this->assertContains( - 'ERROR: ' . $message, - $SQP_errorString - ); - $this->assertContains( 'SQL: ' . htmlspecialchars($sql), $SQP_errorString