Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / web / core / tests / Drupal / KernelTests / Core / Database / BasicSyntaxTest.php
index 53a87b7dbf9c3e55308aae40b86200ffd7ee96d2..837b8ea0364d0c4dc1b43ece7fd1e5a4340f0fcd 100644 (file)
@@ -12,6 +12,7 @@ namespace Drupal\KernelTests\Core\Database;
  * @group Database
  */
 class BasicSyntaxTest extends DatabaseTestBase {
+
   /**
    * Tests string concatenation.
    */
@@ -28,15 +29,22 @@ class BasicSyntaxTest extends DatabaseTestBase {
 
   /**
    * Tests string concatenation with field values.
+   *
+   * We use 'job' and 'age' fields from the {test} table. Using the 'name' field
+   * for concatenation causes issues with custom or contrib database drivers,
+   * since its type 'varchar_ascii' may lead to using field-level collations not
+   * compatible with the other fields.
    */
   public function testConcatFields() {
-    $result = db_query('SELECT CONCAT(:a1, CONCAT(name, CONCAT(:a2, CONCAT(age, :a3)))) FROM {test} WHERE age = :age', [
-      ':a1' => 'The age of ',
-      ':a2' => ' is ',
-      ':a3' => '.',
-      ':age' => 25,
-    ]);
-    $this->assertIdentical($result->fetchField(), 'The age of John is 25.', 'Field CONCAT works.');
+    $result = $this->connection->query(
+      'SELECT CONCAT(:a1, CONCAT(job, CONCAT(:a2, CONCAT(age, :a3)))) FROM {test} WHERE age = :age', [
+        ':a1' => 'The age of ',
+        ':a2' => ' is ',
+        ':a3' => '.',
+        ':age' => 25,
+      ]
+    );
+    $this->assertSame('The age of Singer is 25.', $result->fetchField(), 'Field CONCAT works.');
   }
 
   /**