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 <?php
/* /*
* studip_pdo_test.php - unit tests for the StudipPDO class * studip_pdo_test.php - unit tests for the StudipPDO class
* *
...@@ -13,94 +12,76 @@ ...@@ -13,94 +12,76 @@
* @category Stud.IP * @category Stud.IP
*/ */
class StudipPdoTest extends \Codeception\Test\Unit abstract class TestStudipPDO extends StudipPDO
{ {
public function setUp(): void public static function doReplaceStrings($statement)
{
$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
{ {
$this->testPdo->rollBack(); return parent::replaceStrings($statement);
} }
}
class StudipPDOTest extends \Codeception\Test\Unit
{
public function testSimpleString() public function testSimpleString()
{ {
$query = 'SELECT * FROM bar'; $query = 'SELECT * FROM bar';
$expect = $query; $expect = $query;
$this->assertEquals($expect, $this->testPdo::doReplaceStrings($query)); $this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query));
} }
public function testDoubleQuotedString() public function testDoubleQuotedString()
{ {
$query = 'SELECT "\'foo""\\"" FROM bar WHERE foo = "\\\\"'; $query = 'SELECT "\'foo""\\"" FROM bar WHERE foo = "\\\\"';
$expect = 'SELECT ? 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); $expect = str_repeat($expect, 100);
$this->assertEquals($expect, $this->testPdo::doReplaceStrings($query)); $this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query));
} }
public function testSingleQuotedString() public function testSingleQuotedString()
{ {
$query = 'SELECT \'"foo\'\'\\\'\' FROM bar WHERE foo = \'\\\\\''; $query = 'SELECT \'"foo\'\'\\\'\' FROM bar WHERE foo = \'\\\\\'';
$expect = 'SELECT ? 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); $expect = str_repeat($expect, 100);
$this->assertEquals($expect, $this->testPdo::doReplaceStrings($query)); $this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query));
} }
public function testMixedQuotedString() public function testMixedQuotedString()
{ {
$query = 'SELECT """\'", \'"\' FROM bar WHERE foo IN (\'\'\'"\'"")'; $query = 'SELECT """\'", \'"\' FROM bar WHERE foo IN (\'\'\'"\'"")';
$expect = '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); $expect = str_repeat($expect, 100);
$this->assertEquals($expect, $this->testPdo::doReplaceStrings($query)); $this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query));
} }
public function testUnterminatedSingleQuote() 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'; $expect = 'SELECT ? ORDER BY \'au.username asc';
$this->assertEquals($expect, $this->testPdo::doReplaceStrings($query)); $this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query));
} }
public function testUnterminatedDoubleQuote() 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'; $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