Fix databaseSupportsUTF8MB4
authorEileen McNaughton <emcnaughton@wikimedia.org>
Tue, 20 Jul 2021 00:50:49 +0000 (12:50 +1200)
committerEileen McNaughton <emcnaughton@wikimedia.org>
Thu, 22 Jul 2021 02:11:35 +0000 (14:11 +1200)
stripos returns 0 on success, not true.

CRM/Core/BAO/SchemaHandler.php
tests/phpunit/api/v3/ContactTest.php

index cd294c1b5fe666eae617ca9026bf66e739e5e727..2f41ae364c4c50b7511f4d0221b2100e627f5af6 100644 (file)
@@ -920,7 +920,7 @@ MODIFY      {$columnName} varchar( $length )
    */
   public static function databaseSupportsUTF8MB4(): bool {
     if (!isset(\Civi::$statics[__CLASS__][__FUNCTION__])) {
-      \Civi::$statics[__CLASS__][__FUNCTION__] = stripos(self::getInUseCollation(), 'utf8mb4') === TRUE;
+      \Civi::$statics[__CLASS__][__FUNCTION__] = stripos(self::getInUseCollation(), 'utf8mb4') === 0;
     }
     return \Civi::$statics[__CLASS__][__FUNCTION__];
   }
index 600c34cf7ed98facf6df627ca182f079084b6808..79b3e54caf4c4809b26ec9c36064e627d42662dc 100644 (file)
@@ -5194,29 +5194,13 @@ class api_v3_ContactTest extends CiviUnitTestCase {
    *
    * By default our DBs are not 🦉 compliant. This test will age
    * out when we are.
-   *
-   * @throws \CRM_Core_Exception
    */
   public function testEmojiInWhereClause(): void {
-    $schemaNeedsAlter = CRM_Core_BAO_SchemaHandler::databaseSupportsUTF8MB4();
-    if ($schemaNeedsAlter) {
-      CRM_Core_DAO::executeQuery("
-        ALTER TABLE civicrm_contact MODIFY COLUMN
-        `first_name` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'First Name.',
-        CHARSET utf8
-      ");
-    }
     $this->callAPISuccess('Contact', 'get', [
       'debug' => 1,
       'first_name' => '🦉Claire',
+      'version' => 4,
     ]);
-    if ($schemaNeedsAlter) {
-      CRM_Core_DAO::executeQuery("
-        ALTER TABLE civicrm_contact MODIFY COLUMN
-        `first_name` VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'First Name.',
-        CHARSET utf8mb4
-      ");
-    }
   }
 
   /**