function LangcodeToAsciiUpdateTest::testLangcodeColumnCollation
Tests that the column collation has been updated on MySQL.
File
-
core/
modules/ system/ tests/ src/ Functional/ Entity/ Update/ LangcodeToAsciiUpdateTest.php, line 28
Class
- LangcodeToAsciiUpdateTest
- Tests that the entity langcode fields have been updated to varchar_ascii.
Namespace
Drupal\Tests\system\Functional\Entity\UpdateCode
public function testLangcodeColumnCollation() {
// Only testable on MySQL.
// @see https://www.drupal.org/node/301038
if (Database::getConnection()->databaseType() !== 'mysql') {
$this->pass('This test can only run on MySQL');
return;
}
// Check a few different tables.
$tables = [
'node_field_data' => [
'langcode',
],
'users_field_data' => [
'langcode',
'preferred_langcode',
'preferred_admin_langcode',
],
];
foreach ($tables as $table => $columns) {
foreach ($columns as $column) {
// Depending on MYSQL versions you get different collations.
$this->assertContains($this->getColumnCollation($table, $column), [
'utf8mb4_0900_ai_ci',
'utf8mb4_general_ci',
], 'Found correct starting collation for ' . $table . '.' . $column);
}
}
// Apply updates.
$this->runUpdates();
foreach ($tables as $table => $columns) {
foreach ($columns as $column) {
$this->assertEqual('ascii_general_ci', $this->getColumnCollation($table, $column), 'Found correct updated collation for ' . $table . '.' . $column);
}
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.