From 0e25f58083c948c9e5d28ab7b2351996ecef95b2 Mon Sep 17 00:00:00 2001 From: Marc Neudert Date: Thu, 12 Sep 2024 10:49:28 +0200 Subject: [PATCH] Configure default collation for test environment --- config/global.ini.php | 1 + .../Integration/Db/Schema/MariadbTest.php | 14 +++++++------- .../PHPUnit/Integration/Db/Schema/MysqlTest.php | 14 +++++++------- tests/PHPUnit/Integration/Db/Schema/TidbTest.php | 16 ++++++++-------- .../Integration/Tracker/Db/MysqliTest.php | 1 + 5 files changed, 24 insertions(+), 22 deletions(-) diff --git a/config/global.ini.php b/config/global.ini.php index b8225832e2a..0e9cf1d4c97 100644 --- a/config/global.ini.php +++ b/config/global.ini.php @@ -92,6 +92,7 @@ type = InnoDB schema = Mysql charset = utf8mb4 +collation = utf8mb4_general_ci enable_ssl = 0 ssl_ca = ssl_cert = diff --git a/tests/PHPUnit/Integration/Db/Schema/MariadbTest.php b/tests/PHPUnit/Integration/Db/Schema/MariadbTest.php index 78b230331a3..65c68ceeece 100644 --- a/tests/PHPUnit/Integration/Db/Schema/MariadbTest.php +++ b/tests/PHPUnit/Integration/Db/Schema/MariadbTest.php @@ -89,19 +89,19 @@ public function testTableCreateOptions(array $optionOverrides, string $expected) public function getTableCreateOptionsTestData(): iterable { - yield 'defaults' => [ - [], + yield 'default charset, empty collation' => [ + ['collation' => ''], 'ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC' ]; - yield 'override charset' => [ - ['charset' => 'utf8mb3'], + yield 'override charset, empty collation' => [ + ['charset' => 'utf8mb3', 'collation' => ''], 'ENGINE=InnoDB DEFAULT CHARSET=utf8mb3' ]; - yield 'override collation' => [ - ['collation' => 'utf8mb4_general_ci'], - 'ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC' + yield 'default charset, override collation' => [ + ['collation' => 'utf8mb4_swedish_ci'], + 'ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_swedish_ci ROW_FORMAT=DYNAMIC' ]; yield 'override charset and collation' => [ diff --git a/tests/PHPUnit/Integration/Db/Schema/MysqlTest.php b/tests/PHPUnit/Integration/Db/Schema/MysqlTest.php index b1c455ff93b..7a2fd9eeaa3 100644 --- a/tests/PHPUnit/Integration/Db/Schema/MysqlTest.php +++ b/tests/PHPUnit/Integration/Db/Schema/MysqlTest.php @@ -89,19 +89,19 @@ public function testTableCreateOptions(array $optionOverrides, string $expected) public function getTableCreateOptionsTestData(): iterable { - yield 'defaults' => [ - [], + yield 'default charset, empty collation' => [ + ['collation' => ''], 'ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC' ]; - yield 'override charset' => [ - ['charset' => 'utf8mb3'], + yield 'override charset, empty collation' => [ + ['charset' => 'utf8mb3', 'collation' => ''], 'ENGINE=InnoDB DEFAULT CHARSET=utf8mb3' ]; - yield 'override collation' => [ - ['collation' => 'utf8mb4_general_ci'], - 'ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC' + yield 'default charset, override collation' => [ + ['collation' => 'utf8mb4_swedish_ci'], + 'ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_swedish_ci ROW_FORMAT=DYNAMIC' ]; yield 'override charset and collation' => [ diff --git a/tests/PHPUnit/Integration/Db/Schema/TidbTest.php b/tests/PHPUnit/Integration/Db/Schema/TidbTest.php index dff8133a388..50a3989aa01 100644 --- a/tests/PHPUnit/Integration/Db/Schema/TidbTest.php +++ b/tests/PHPUnit/Integration/Db/Schema/TidbTest.php @@ -78,19 +78,19 @@ public function testTableCreateOptions(array $optionOverrides, string $expected) public function getTableCreateOptionsTestData(): iterable { - yield 'defaults' => [ - [], + yield 'default charset, empty collation' => [ + ['collation' => ''], 'ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC' ]; - yield 'override charset' => [ - ['charset' => 'utf8mb3'], - 'ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb4_0900_ai_ci' + yield 'override charset, empty collation' => [ + ['charset' => 'utf8mb3', 'collation' => ''], + 'ENGINE=InnoDB DEFAULT CHARSET=utf8mb3' ]; - yield 'override collation' => [ - ['collation' => 'utf8mb4_general_ci'], - 'ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC' + yield 'default charset, override collation' => [ + ['collation' => 'utf8mb4_swedish_ci'], + 'ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_swedish_ci ROW_FORMAT=DYNAMIC' ]; yield 'override charset and collation' => [ diff --git a/tests/PHPUnit/Integration/Tracker/Db/MysqliTest.php b/tests/PHPUnit/Integration/Tracker/Db/MysqliTest.php index d6359887c7d..eed5f2baa68 100644 --- a/tests/PHPUnit/Integration/Tracker/Db/MysqliTest.php +++ b/tests/PHPUnit/Integration/Tracker/Db/MysqliTest.php @@ -35,6 +35,7 @@ public function testConnectionThrowsOnInvalidCharset(): void self::expectExceptionMessageMatches('/Set Charset failed/'); $config = Config::getInstance(); + $config->database['collation'] = null; $config->database['charset'] = 'something really invalid'; Tracker\Db::connectPiwikTrackerDb();