X-Git-Url: http://git.typo3.org/Packages/TYPO3.CMS.git/blobdiff_plain/7642b7d461337b83ac49bc6a779be19c84ce1832..4e7124f3ec03473f5d2a6f169c3b738213681e18:/typo3/sysext/core/Tests/Unit/Database/SqlParserTest.php diff --git a/typo3/sysext/core/Tests/Unit/Database/SqlParserTest.php b/typo3/sysext/core/Tests/Unit/Database/SqlParserTest.php index a2db9997ed5..ed6389a6d93 100644 --- a/typo3/sysext/core/Tests/Unit/Database/SqlParserTest.php +++ b/typo3/sysext/core/Tests/Unit/Database/SqlParserTest.php @@ -31,12 +31,12 @@ namespace TYPO3\CMS\Core\Tests\Unit\Database; class SqlParserTest extends \TYPO3\CMS\Core\Tests\UnitTestCase { /** - * @var \TYPO3\CMS\Core\Database\SqlParser + * @var \TYPO3\CMS\Core\Database\SqlParser|\TYPO3\CMS\Core\Tests\AccessibleObjectInterface */ private $fixture; public function setUp() { - $this->fixture = new \TYPO3\CMS\Core\Database\SqlParser(); + $this->fixture = $this->getAccessibleMock('\\TYPO3\\CMS\\Core\\Database\\SqlParser', array('dummy')); } public function tearDown() { @@ -47,7 +47,6 @@ class SqlParserTest extends \TYPO3\CMS\Core\Tests\UnitTestCase { * Regression test * * @test - * @todo Define visibility */ public function compileWhereClauseDoesNotDropClauses() { $clauses = array( @@ -122,6 +121,37 @@ class SqlParserTest extends \TYPO3\CMS\Core\Tests\UnitTestCase { $this->assertContains('IFNULL', $output); } + /** + * Data provider for trimSqlReallyTrimsAllWhitespace + * + * @see trimSqlReallyTrimsAllWhitespace + */ + public function trimSqlReallyTrimsAllWhitespaceDataProvider() { + return array( + 'Nothing to trim' => array('SELECT * FROM test WHERE 1=1;', 'SELECT * FROM test WHERE 1=1 '), + 'Space after ;' => array('SELECT * FROM test WHERE 1=1; ', 'SELECT * FROM test WHERE 1=1 '), + 'Space before ;' => array('SELECT * FROM test WHERE 1=1 ;', 'SELECT * FROM test WHERE 1=1 '), + 'Space before and after ;' => array('SELECT * FROM test WHERE 1=1 ; ', 'SELECT * FROM test WHERE 1=1 '), + 'Linefeed after ;' => array('SELECT * FROM test WHERE 1=1' . LF . ';', 'SELECT * FROM test WHERE 1=1 '), + 'Linefeed before ;' => array('SELECT * FROM test WHERE 1=1;' . LF, 'SELECT * FROM test WHERE 1=1 '), + 'Linefeed before and after ;' => array('SELECT * FROM test WHERE 1=1' . LF . ';' . LF, 'SELECT * FROM test WHERE 1=1 '), + 'Tab after ;' => array('SELECT * FROM test WHERE 1=1' . TAB . ';', 'SELECT * FROM test WHERE 1=1 '), + 'Tab before ;' => array('SELECT * FROM test WHERE 1=1;' . TAB, 'SELECT * FROM test WHERE 1=1 '), + 'Tab before and after ;' => array('SELECT * FROM test WHERE 1=1' . TAB . ';' . TAB, 'SELECT * FROM test WHERE 1=1 '), + ); + } + + /** + * @test + * @dataProvider trimSqlReallyTrimsAllWhitespaceDataProvider + * @param string $sql The SQL to trim + * @param string $expected The expected trimmed SQL with single space at the end + */ + public function trimSqlReallyTrimsAllWhitespace($sql, $expected) { + $result = $this->fixture->_call('trimSQL', $sql); + $this->assertSame($expected, $result); + } + } ?> \ No newline at end of file