assertEquals($expect, TestStudipPDO::doReplaceStrings($query)); } public function testDoubleQuotedString() { $query = 'SELECT "\'foo""\\"" FROM bar WHERE foo = "\\\\"'; $expect = 'SELECT ? FROM bar WHERE foo = ?'; $this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query)); $query = str_repeat($query, 100); $expect = str_repeat($expect, 100); $this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query)); } public function testSingleQuotedString() { $query = 'SELECT \'"foo\'\'\\\'\' FROM bar WHERE foo = \'\\\\\''; $expect = 'SELECT ? FROM bar WHERE foo = ?'; $this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query)); $query = str_repeat($query, 100); $expect = str_repeat($expect, 100); $this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query)); } public function testMixedQuotedString() { $query = 'SELECT """\'", \'"\' FROM bar WHERE foo IN (\'\'\'"\'"")'; $expect = 'SELECT ?, ? FROM bar WHERE foo IN (??)'; $this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query)); $query = str_repeat($query, 100); $expect = str_repeat($expect, 100); $this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query)); } public function testUnterminatedSingleQuote() { $query = 'SELECT \'1\' ORDER BY \'au.username asc'; $expect = 'SELECT ? ORDER BY \'au.username asc'; $this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query)); } public function testUnterminatedDoubleQuote() { $query = 'SELECT "1" ORDER BY "au.username asc'; $expect = 'SELECT ? ORDER BY "au.username asc'; $this->assertEquals($expect, TestStudipPDO::doReplaceStrings($query)); } }