Commit b2777b71527 for php
commit b2777b715276755e034dfc36cb6aabb3385f2258
Author: Alessio Attilio <attilio.alessio@protonmail.com>
Date: Sun Oct 25 14:02:30 2026 +0100
Backport: Adapt intl timezone test expectations for ICU 79.1 (#24684)
Backport PR #24684 from PHP-8.5 to PHP-8.4.
Original commit: 47d959923c4a6cc6d8551710843a2e9b7381531f
Closes #24684
diff --git a/ext/intl/tests/dateformat_formatObject_calendar_variant_icu72-1.phpt b/ext/intl/tests/dateformat_formatObject_calendar_variant_icu72-1.phpt
index fc5ddb6fc4f..1f0986950d9 100644
--- a/ext/intl/tests/dateformat_formatObject_calendar_variant_icu72-1.phpt
+++ b/ext/intl/tests/dateformat_formatObject_calendar_variant_icu72-1.phpt
@@ -4,6 +4,7 @@
intl
--SKIPIF--
<?php if (version_compare(INTL_ICU_VERSION, '72.1') < 0) die('skip for ICU >= 72.1'); ?>
+<?php if (version_compare(INTL_ICU_VERSION, '79.1') >= 0) die('skip for ICU < 79.1'); ?>
--FILE--
<?php
ini_set("intl.error_level", E_WARNING);
diff --git a/ext/intl/tests/dateformat_formatObject_calendar_variant_icu79-1.phpt b/ext/intl/tests/dateformat_formatObject_calendar_variant_icu79-1.phpt
new file mode 100644
index 00000000000..c467d644343
--- /dev/null
+++ b/ext/intl/tests/dateformat_formatObject_calendar_variant_icu79-1.phpt
@@ -0,0 +1,37 @@
+--TEST--
+IntlDateFormatter::formatObject(): IntlCalendar tests
+--EXTENSIONS--
+intl
+--INI--
+intl.default_locale=pt_PT
+date.timezone=Europe/Lisbon
+--SKIPIF--
+<?php if (version_compare(INTL_ICU_VERSION, '79.1') < 0) die('skip for ICU >= 79.1'); ?>
+--FILE--
+<?php
+
+$cal = IntlCalendar::fromDateTime('2012-01-01 00:00:00'); //Europe/Lisbon
+echo IntlDateFormatter::formatObject($cal), "\n";
+echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";
+echo IntlDateFormatter::formatObject($cal, null, "en-US"), "\n";
+echo IntlDateFormatter::formatObject($cal, array(IntlDateFormatter::SHORT, IntlDateFormatter::FULL), "en-US"), "\n";
+echo IntlDateFormatter::formatObject($cal, 'E y-MM-d HH,mm,ss.SSS v', "en-US"), "\n";
+
+$cal = IntlCalendar::fromDateTime('2012-01-01 05:00:00+03:00');
+echo datefmt_format_object($cal, IntlDateFormatter::FULL), "\n";
+
+$cal = IntlCalendar::createInstance(null,'en-US@calendar=islamic-civil');
+$cal->setTime(strtotime('2012-01-01 00:00:00')*1000.);
+echo IntlDateFormatter::formatObject($cal), "\n";
+echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL, "en-US"), "\n";
+
+?>
+--EXPECTF--
+01/01/2012, 00:00:00
+domingo, 1 de janeiro de 2012 às 00:00:00 Hora padrão %Sda Europa Ocidental
+Jan 1, 2012, 12:00:00 AM
+1/1/12, 12:00:00 AM Western European Standard Time
+Sun 2012-01-1 00,00,00.000 Portugal Time
+domingo, 1 de janeiro de 2012 às 05:00:00 +03:00 GMT
+06/02/1433, 00:00:00
+Sunday, Safar 6, 1433 at 12:00:00 AM Western European Standard Time
diff --git a/ext/intl/tests/dateformat_formatObject_datetime_variant_icu72-1.phpt b/ext/intl/tests/dateformat_formatObject_datetime_variant_icu72-1.phpt
index fe30d1f85ac..130726c9789 100644
--- a/ext/intl/tests/dateformat_formatObject_datetime_variant_icu72-1.phpt
+++ b/ext/intl/tests/dateformat_formatObject_datetime_variant_icu72-1.phpt
@@ -4,6 +4,7 @@
intl
--SKIPIF--
<?php if (version_compare(INTL_ICU_VERSION, '72.1') < 0) die('skip for ICU < 72.1'); ?>
+<?php if (version_compare(INTL_ICU_VERSION, '79.1') >= 0) die('skip for ICU < 79.1'); ?>
--FILE--
<?php
ini_set("intl.error_level", E_WARNING);
diff --git a/ext/intl/tests/dateformat_formatObject_datetime_variant_icu79-1.phpt b/ext/intl/tests/dateformat_formatObject_datetime_variant_icu79-1.phpt
new file mode 100644
index 00000000000..60947db41cb
--- /dev/null
+++ b/ext/intl/tests/dateformat_formatObject_datetime_variant_icu79-1.phpt
@@ -0,0 +1,30 @@
+--TEST--
+IntlDateFormatter::formatObject(): DateTime tests
+--EXTENSIONS--
+intl
+--INI--
+intl.default_locale=pt_PT
+date.timezone=Europe/Lisbon
+--SKIPIF--
+<?php if (version_compare(INTL_ICU_VERSION, '79.1') < 0) die('skip for ICU >= 79.1'); ?>
+--FILE--
+<?php
+
+$dt = new DateTime('2012-01-01 00:00:00'); //Europe/Lisbon
+echo IntlDateFormatter::formatObject($dt), "\n";
+echo IntlDateFormatter::formatObject($dt, IntlDateFormatter::FULL), "\n";
+echo IntlDateFormatter::formatObject($dt, null, "en-US"), "\n";
+echo IntlDateFormatter::formatObject($dt, array(IntlDateFormatter::SHORT, IntlDateFormatter::FULL), "en-US"), "\n";
+echo IntlDateFormatter::formatObject($dt, 'E y-MM-d HH,mm,ss.SSS v', "en-US"), "\n";
+
+$dt = new DateTime('2012-01-01 05:00:00+03:00');
+echo IntlDateFormatter::formatObject($dt, IntlDateFormatter::FULL), "\n";
+
+?>
+--EXPECTF--
+01/01/2012, 00:00:00
+domingo, 1 de janeiro de 2012 às 00:00:00 Hora padrão %Sda Europa Ocidental
+Jan 1, 2012, 12:00:00 AM
+1/1/12, 12:00:00 AM Western European Standard Time
+Sun 2012-01-1 00,00,00.000 Portugal Time
+domingo, 1 de janeiro de 2012 às 05:00:00 +03:00 GMT
diff --git a/ext/intl/tests/timezone_IDforWindowsID_basic_icu76_1.phpt b/ext/intl/tests/timezone_IDforWindowsID_basic_icu76_1.phpt
index 96de341974b..0ad7290e52c 100644
--- a/ext/intl/tests/timezone_IDforWindowsID_basic_icu76_1.phpt
+++ b/ext/intl/tests/timezone_IDforWindowsID_basic_icu76_1.phpt
@@ -4,6 +4,7 @@
intl
--SKIPIF--
<?php if (version_compare(INTL_ICU_VERSION, '76.1') < 0) die('skip for ICU >= 76.1'); ?>
+<?php if (version_compare(INTL_ICU_VERSION, '79.1') >= 0) die('skip for ICU < 79.1'); ?>
--FILE--
<?php
diff --git a/ext/intl/tests/timezone_IDforWindowsID_basic_icu79_1.phpt b/ext/intl/tests/timezone_IDforWindowsID_basic_icu79_1.phpt
new file mode 100644
index 00000000000..a2fa96075cd
--- /dev/null
+++ b/ext/intl/tests/timezone_IDforWindowsID_basic_icu79_1.phpt
@@ -0,0 +1,40 @@
+--TEST--
+IntlTimeZone::getIDForWindowsID basic test
+--EXTENSIONS--
+intl
+--SKIPIF--
+<?php if (version_compare(INTL_ICU_VERSION, '79.1') < 0) die('skip for ICU >= 79.1'); ?>
+--FILE--
+<?php
+
+$tzs = array(
+ 'India Standard Time' => array(NULL),
+ 'Pacific Standard Time' => array('001', 'CA', 'MX', 'US', 'ZZ'),
+ 'Romance Standard Time' => array('001', 'BE', 'DK', 'ES', 'FR'),
+);
+
+foreach ($tzs as $tz => $regions) {
+ echo "** $tz\n";
+ foreach ($regions as $region) {
+ var_dump(IntlTimeZone::getIDForWindowsID($tz, $region));
+ if (intl_get_error_code() != U_ZERO_ERROR) {
+ echo "Error: ", intl_get_error_message(), "\n";
+ }
+ }
+}
+?>
+--EXPECT--
+** India Standard Time
+string(13) "Asia/Calcutta"
+** Pacific Standard Time
+string(19) "America/Los_Angeles"
+string(19) "America/Los_Angeles"
+string(19) "America/Los_Angeles"
+string(19) "America/Los_Angeles"
+string(19) "America/Los_Angeles"
+** Romance Standard Time
+string(12) "Europe/Paris"
+string(15) "Europe/Brussels"
+string(17) "Europe/Copenhagen"
+string(13) "Europe/Madrid"
+string(12) "Europe/Paris"