diff --git a/tests/data/db_structure.xml b/tests/data/db_structure.xml index 371da9448326b940342e4d5719187d5e14fec90d..b155114f2edde573b5484fc1afee1d6363b29c82 100644 --- a/tests/data/db_structure.xml +++ b/tests/data/db_structure.xml @@ -293,4 +293,19 @@ </table> + <table> + + <name>*dbprefix*text_table</name> + <declaration> + + <field> + <name>textfield</name> + <type>text</type> + <notnull>false</notnull> + <length>255</length> + </field> + + </declaration> + </table> + </database> diff --git a/tests/lib/DB/LegacyDBTest.php b/tests/lib/DB/LegacyDBTest.php index 7aeeb3dd1f915c1fcad7dd33c0bb65432f914bdd..2c91121c02479bfbf69e99123dac1aa3577074e4 100644 --- a/tests/lib/DB/LegacyDBTest.php +++ b/tests/lib/DB/LegacyDBTest.php @@ -46,6 +46,11 @@ class LegacyDBTest extends \Test\TestCase { */ private $table5; + /** + * @var string + */ + private $text_table; + protected function setUp() { parent::setUp(); @@ -63,6 +68,7 @@ class LegacyDBTest extends \Test\TestCase { $this->table3 = $this->test_prefix.'vcategory'; $this->table4 = $this->test_prefix.'decimal'; $this->table5 = $this->test_prefix.'uniconst'; + $this->text_table = $this->test_prefix.'text_table'; } protected function tearDown() { @@ -390,4 +396,29 @@ class LegacyDBTest extends \Test\TestCase { $result = $query->execute(array('%ba%')); $this->assertCount(1, $result->fetchAll()); } + + /** + * @dataProvider insertAndSelectDataProvider + */ + public function testInsertAndSelectData($expected) { + $table = "*PREFIX*{$this->text_table}"; + + $query = OC_DB::prepare("INSERT INTO `$table` (`textfield`) VALUES (?)"); + $result = $query->execute(array($expected)); + $this->assertEquals(1, $result); + + $actual = OC_DB::prepare("SELECT `textfield` FROM `$table`")->execute()->fetchOne(); + $this->assertSame($expected, $actual); + } + + public function insertAndSelectDataProvider() { + return [ + ['abcdefghijklmnopqrstuvwxyzABCDEFGHIKLMNOPQRSTUVWXYZ'], + ['0123456789'], + ['äöüÄÖÜß!"§$%&/()=?#\'+*~°^`´'], + ['²³¼½¬{[]}\\'], + ['♡⚗'], + ['💩'], # :hankey: on github + ]; + } }