Skip to content
Snippets Groups Projects
Commit bbaa4429 authored by Elmar Ludwig's avatar Elmar Ludwig
Browse files

revert changes to StudipPdoTest, re #147

parent e2929ffd
No related branches found
No related tags found
No related merge requests found
<?php
/*
* studip_pdo_test.php - unit tests for the StudipPDO class
*
......@@ -13,94 +12,76 @@
* @category Stud.IP
*/
class StudipPdoTest extends \Codeception\Test\Unit
abstract class TestStudipPDO extends StudipPDO
{
public function setUp(): void
{
$dsn =
'mysql:host=' .
$GLOBALS['DB_STUDIP_HOST'] .
';dbname=' .
$GLOBALS['DB_STUDIP_DATABASE'] .
';charset=utf8mb4';
$username = $GLOBALS['DB_STUDIP_USER'];
$password = $GLOBALS['DB_STUDIP_PASSWORD'];
$this->testPdo = new class ($dsn, $username, $password) extends StudipPDO {
public static function doReplaceStrings($statement)
{
return parent::replaceStrings($statement);
}
};
$this->testPdo->beginTransaction();
}
public function tearDown(): void
public static function doReplaceStrings($statement)
{
$this->testPdo->rollBack();
return parent::replaceStrings($statement);
}
}
class StudipPDOTest extends \Codeception\Test\Unit
{
public function testSimpleString()
{
$query = 'SELECT * FROM bar';
$query = 'SELECT * FROM bar';
$expect = $query;
$this->assertEquals($expect, $this->testPdo::doReplaceStrings($query));
$this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query));
}
public function testDoubleQuotedString()
{
$query = 'SELECT "\'foo""\\"" FROM bar WHERE foo = "\\\\"';
$query = 'SELECT "\'foo""\\"" FROM bar WHERE foo = "\\\\"';
$expect = 'SELECT ? FROM bar WHERE foo = ?';
$this->assertEquals($expect, $this->testPdo::doReplaceStrings($query));
$this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query));
$query = str_repeat($query, 100);
$query = str_repeat($query, 100);
$expect = str_repeat($expect, 100);
$this->assertEquals($expect, $this->testPdo::doReplaceStrings($query));
$this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query));
}
public function testSingleQuotedString()
{
$query = 'SELECT \'"foo\'\'\\\'\' FROM bar WHERE foo = \'\\\\\'';
$query = 'SELECT \'"foo\'\'\\\'\' FROM bar WHERE foo = \'\\\\\'';
$expect = 'SELECT ? FROM bar WHERE foo = ?';
$this->assertEquals($expect, $this->testPdo::doReplaceStrings($query));
$this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query));
$query = str_repeat($query, 100);
$query = str_repeat($query, 100);
$expect = str_repeat($expect, 100);
$this->assertEquals($expect, $this->testPdo::doReplaceStrings($query));
$this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query));
}
public function testMixedQuotedString()
{
$query = 'SELECT """\'", \'"\' FROM bar WHERE foo IN (\'\'\'"\'"")';
$query = 'SELECT """\'", \'"\' FROM bar WHERE foo IN (\'\'\'"\'"")';
$expect = 'SELECT ?, ? FROM bar WHERE foo IN (??)';
$this->assertEquals($expect, $this->testPdo::doReplaceStrings($query));
$this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query));
$query = str_repeat($query, 100);
$query = str_repeat($query, 100);
$expect = str_repeat($expect, 100);
$this->assertEquals($expect, $this->testPdo::doReplaceStrings($query));
$this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query));
}
public function testUnterminatedSingleQuote()
{
$query = 'SELECT \'1\' ORDER BY \'au.username asc';
$query = 'SELECT \'1\' ORDER BY \'au.username asc';
$expect = 'SELECT ? ORDER BY \'au.username asc';
$this->assertEquals($expect, $this->testPdo::doReplaceStrings($query));
$this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query));
}
public function testUnterminatedDoubleQuote()
{
$query = 'SELECT "1" ORDER BY "au.username asc';
$query = 'SELECT "1" ORDER BY "au.username asc';
$expect = 'SELECT ? ORDER BY "au.username asc';
$this->assertEquals($expect, $this->testPdo::doReplaceStrings($query));
$this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query));
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment