Skip to content
Snippets Groups Projects
Unverified Commit 972e560e authored by Morris Jobke's avatar Morris Jobke
Browse files

Adding tests for 4 byte unicode characters

* success on SQLite and Postgres
* failure on MySQL due to the limited charset that only supports up to 3 bytes
parent e115bf96
No related branches found
No related tags found
No related merge requests found
......@@ -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>
......@@ -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
];
}
}
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