mirror of
https://github.com/moodle/moodle.git
synced 2025-04-15 05:25:08 +02:00
MDL-48228 database: Unit test addition and update.
This commit is contained in:
parent
0bbefd81cd
commit
8c1288dbdb
@ -584,7 +584,7 @@ class core_ddl_testcase extends database_driver_testcase {
|
||||
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null);
|
||||
$table->add_field('name', XMLDB_TYPE_CHAR, '30', null, null, null, null);
|
||||
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
|
||||
for ($i = 0; $i < 15; $i++) {
|
||||
for ($i = 0; $i < 12; $i++) {
|
||||
$table->add_field('text'.$i, XMLDB_TYPE_CHAR, '1333', null, null, null, null);
|
||||
$data->{'text'.$i} = $text;
|
||||
}
|
||||
|
@ -5543,6 +5543,42 @@ class core_dml_testcase extends database_driver_testcase {
|
||||
$dbman->drop_table($table);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that the database has full utf8 support (4 bytes).
|
||||
*/
|
||||
public function test_four_byte_character_insertion() {
|
||||
$DB = $this->tdb;
|
||||
|
||||
if ($DB->get_dbfamily() === 'mysql' && strpos($DB->get_dbcollation(), 'utf8_') === 0) {
|
||||
$this->markTestSkipped($DB->get_name() .
|
||||
' does not support 4 byte characters with only a utf8 collation.
|
||||
Please change to utf8mb4 for full utf8 support.');
|
||||
}
|
||||
|
||||
$dbman = $this->tdb->get_manager();
|
||||
|
||||
$table = $this->get_test_table();
|
||||
$tablename = $table->getName();
|
||||
|
||||
$table->add_field('id', XMLDB_TYPE_INTEGER, '10', null, XMLDB_NOTNULL, XMLDB_SEQUENCE, null);
|
||||
$table->add_field('name', XMLDB_TYPE_CHAR, '255', null, null, null, null);
|
||||
$table->add_field('content', XMLDB_TYPE_TEXT, 'big', null, XMLDB_NOTNULL);
|
||||
$table->add_key('primary', XMLDB_KEY_PRIMARY, array('id'));
|
||||
$dbman->create_table($table);
|
||||
|
||||
$data = array(
|
||||
'name' => 'Name with a four byte character 𠮟る',
|
||||
'content' => 'Content with a four byte emoji 📝 memo.'
|
||||
);
|
||||
|
||||
$insertid = $DB->insert_record($tablename, $data);
|
||||
$result = $DB->get_record($tablename, array('id' => $insertid));
|
||||
$this->assertEquals($data['name'], $result->name);
|
||||
$this->assertEquals($data['content'], $result->content);
|
||||
|
||||
$dbman->drop_table($table);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user