From caecd2a528aa09a1443b9257718f8befa48ce75f Mon Sep 17 00:00:00 2001 From: Ruud Kamphuis Date: Thu, 13 Feb 2020 14:16:23 +0100 Subject: [PATCH] IntlExtension > Return empty string when input is null --- extra/intl-extra/src/IntlExtension.php | 36 +++++++++++++++---- .../tests/Fixtures/country_name.test | 2 ++ .../tests/Fixtures/currency_name.test | 2 ++ .../tests/Fixtures/currency_symbol.test | 2 ++ .../tests/Fixtures/language_name.test | 2 ++ .../tests/Fixtures/locale_name.test | 2 ++ .../tests/Fixtures/timezone_name.test | 2 ++ 7 files changed, 42 insertions(+), 6 deletions(-) diff --git a/extra/intl-extra/src/IntlExtension.php b/extra/intl-extra/src/IntlExtension.php index acf928ad94..3bb23bac78 100644 --- a/extra/intl-extra/src/IntlExtension.php +++ b/extra/intl-extra/src/IntlExtension.php @@ -155,8 +155,12 @@ public function getFunctions() ]; } - public function getCountryName(string $country, string $locale = null): string + public function getCountryName(?string $country, string $locale = null): string { + if ($country === null) { + return ''; + } + try { return Countries::getName($country, $locale); } catch (MissingResourceException $exception) { @@ -164,8 +168,12 @@ public function getCountryName(string $country, string $locale = null): string } } - public function getCurrencyName(string $currency, string $locale = null): string + public function getCurrencyName(?string $currency, string $locale = null): string { + if ($currency === null) { + return ''; + } + try { return Currencies::getName($currency, $locale); } catch (MissingResourceException $exception) { @@ -173,8 +181,12 @@ public function getCurrencyName(string $currency, string $locale = null): string } } - public function getCurrencySymbol(string $currency, string $locale = null): string + public function getCurrencySymbol(?string $currency, string $locale = null): string { + if ($currency === null) { + return ''; + } + try { return Currencies::getSymbol($currency, $locale); } catch (MissingResourceException $exception) { @@ -182,8 +194,12 @@ public function getCurrencySymbol(string $currency, string $locale = null): stri } } - public function getLanguageName(string $language, string $locale = null): string + public function getLanguageName(?string $language, string $locale = null): string { + if ($language === null) { + return ''; + } + try { return Languages::getName($language, $locale); } catch (MissingResourceException $exception) { @@ -191,8 +207,12 @@ public function getLanguageName(string $language, string $locale = null): string } } - public function getLocaleName(string $data, string $locale = null): string + public function getLocaleName(?string $data, string $locale = null): string { + if ($data === null) { + return ''; + } + try { return Locales::getName($data, $locale); } catch (MissingResourceException $exception) { @@ -200,8 +220,12 @@ public function getLocaleName(string $data, string $locale = null): string } } - public function getTimezoneName(string $timezone, string $locale = null): string + public function getTimezoneName(?string $timezone, string $locale = null): string { + if ($timezone === null) { + return ''; + } + try { return Timezones::getName($timezone, $locale); } catch (MissingResourceException $exception) { diff --git a/extra/intl-extra/tests/Fixtures/country_name.test b/extra/intl-extra/tests/Fixtures/country_name.test index 068aa6c746..b368d51705 100644 --- a/extra/intl-extra/tests/Fixtures/country_name.test +++ b/extra/intl-extra/tests/Fixtures/country_name.test @@ -2,6 +2,7 @@ "country_name" filter --TEMPLATE-- {{ 'UNKNOWN'|country_name }} +{{ null|country_name }} {{ 'FR'|country_name }} {{ 'US'|country_name }} {{ 'US'|country_name('fr') }} @@ -10,6 +11,7 @@ return []; --EXPECT-- UNKNOWN + France United States États-Unis diff --git a/extra/intl-extra/tests/Fixtures/currency_name.test b/extra/intl-extra/tests/Fixtures/currency_name.test index eb221b0bda..6f88fdce3d 100644 --- a/extra/intl-extra/tests/Fixtures/currency_name.test +++ b/extra/intl-extra/tests/Fixtures/currency_name.test @@ -2,6 +2,7 @@ "currency_name" filter --TEMPLATE-- {{ 'UNKNOWN'|currency_name }} +{{ null|currency_name }} {{ 'EUR'|currency_name }} {{ 'JPY'|currency_name }} {{ 'EUR'|currency_name('fr') }} @@ -10,6 +11,7 @@ return []; --EXPECT-- UNKNOWN + Euro Japanese Yen euro diff --git a/extra/intl-extra/tests/Fixtures/currency_symbol.test b/extra/intl-extra/tests/Fixtures/currency_symbol.test index 2fc29744d9..6503a4262b 100644 --- a/extra/intl-extra/tests/Fixtures/currency_symbol.test +++ b/extra/intl-extra/tests/Fixtures/currency_symbol.test @@ -2,11 +2,13 @@ "currency_symbol" filter --TEMPLATE-- {{ 'UNKNOWN'|currency_symbol }} +{{ null|currency_symbol }} {{ 'EUR'|currency_symbol }} {{ 'JPY'|currency_symbol }} --DATA-- return []; --EXPECT-- UNKNOWN + € ¥ diff --git a/extra/intl-extra/tests/Fixtures/language_name.test b/extra/intl-extra/tests/Fixtures/language_name.test index c74f63c161..040aa5a674 100644 --- a/extra/intl-extra/tests/Fixtures/language_name.test +++ b/extra/intl-extra/tests/Fixtures/language_name.test @@ -2,6 +2,7 @@ "language_name" filter --TEMPLATE-- {{ 'UNKNOWN'|language_name }} +{{ null|language_name }} {{ 'de'|language_name }} {{ 'fr'|language_name }} {{ 'de'|language_name('fr') }} @@ -11,6 +12,7 @@ return []; --EXPECT-- UNKNOWN + German French allemand diff --git a/extra/intl-extra/tests/Fixtures/locale_name.test b/extra/intl-extra/tests/Fixtures/locale_name.test index 5b194b6301..222d9fb392 100644 --- a/extra/intl-extra/tests/Fixtures/locale_name.test +++ b/extra/intl-extra/tests/Fixtures/locale_name.test @@ -2,6 +2,7 @@ "locale_name" filter --TEMPLATE-- {{ 'UNKNOWN'|locale_name }} +{{ null|locale_name }} {{ 'de'|locale_name }} {{ 'fr'|locale_name }} {{ 'de'|locale_name('fr') }} @@ -11,6 +12,7 @@ return []; --EXPECT-- UNKNOWN + German French allemand diff --git a/extra/intl-extra/tests/Fixtures/timezone_name.test b/extra/intl-extra/tests/Fixtures/timezone_name.test index 9ee40db55d..d22204a753 100644 --- a/extra/intl-extra/tests/Fixtures/timezone_name.test +++ b/extra/intl-extra/tests/Fixtures/timezone_name.test @@ -2,6 +2,7 @@ "timezone_name" filter --TEMPLATE-- {{ 'UNKNOWN'|timezone_name }} +{{ null|timezone_name }} {{ 'Europe/Paris'|timezone_name }} {{ 'America/Los_Angeles'|timezone_name }} {{ 'America/Los_Angeles'|timezone_name('fr') }} @@ -9,6 +10,7 @@ return []; --EXPECT-- UNKNOWN + Central European Time (Paris) Pacific Time (Los Angeles) heure du Pacifique nord-américain (Los Angeles)