]> granicus.if.org Git - php/commitdiff
Sync some tests for compat with ICU 58.1+
authorAnatol Belski <ab@php.net>
Fri, 20 Oct 2017 11:55:32 +0000 (13:55 +0200)
committerAnatol Belski <ab@php.net>
Fri, 20 Oct 2017 11:55:32 +0000 (13:55 +0200)
ext/intl/tests/breakiter_getPartsIterator_basic.phpt
ext/intl/tests/breakiter_getPartsIterator_basic2.phpt [new file with mode: 0644]
ext/intl/tests/breakiter_preceding_basic.phpt
ext/intl/tests/breakiter_preceding_basic2.phpt [new file with mode: 0644]
ext/intl/tests/dateformat_create_cal_arg_variant4.phpt
ext/intl/tests/dateformat_create_cal_arg_variant5.phpt [new file with mode: 0644]
ext/intl/tests/dateformat_get_set_calendar_variant4.phpt
ext/intl/tests/dateformat_get_set_calendar_variant5.phpt [new file with mode: 0644]
ext/intl/tests/uconverter_oop_callback.phpt
ext/intl/tests/uconverter_oop_callback2.phpt [new file with mode: 0644]

index 36ad80d5fb0f576a7eab7448466ee47481fb0bc7..58516ea7457b2c7dee6aa2fa93d27d368adaf4d9 100644 (file)
@@ -1,9 +1,11 @@
 --TEST--
-IntlBreakIterator::getPartsIterator(): basic test
+IntlBreakIterator::getPartsIterator(): basic test, ICU <= 57.1
 --SKIPIF--
 <?php
 if (!extension_loaded('intl'))
        die('skip intl extension not enabled');
+if (version_compare(INTL_ICU_VERSION, '57.1') >= 0) die('skip for ICU <= 57.1');
+?>
 --FILE--
 <?php
 ini_set("intl.error_level", E_WARNING);
@@ -34,4 +36,4 @@ Array
     [2] => bar
 )
 int(0)
-==DONE==
\ No newline at end of file
+==DONE==
diff --git a/ext/intl/tests/breakiter_getPartsIterator_basic2.phpt b/ext/intl/tests/breakiter_getPartsIterator_basic2.phpt
new file mode 100644 (file)
index 0000000..c802f96
--- /dev/null
@@ -0,0 +1,39 @@
+--TEST--
+IntlBreakIterator::getPartsIterator(): basic test, ICU >= 58.1
+--SKIPIF--
+<?php
+if (!extension_loaded('intl'))
+       die('skip intl extension not enabled');
+if (version_compare(INTL_ICU_VERSION, '57.1') < 0) die('skip for ICU >= 58.1');
+?>
+--FILE--
+<?php
+ini_set("intl.error_level", E_WARNING);
+ini_set("intl.default_locale", "pt_PT");
+
+$bi = IntlBreakIterator::createWordInstance('pt');
+$pi = $bi->getPartsIterator();
+var_dump(get_class($pi));
+print_r(iterator_to_array($pi));
+
+$bi->setText("foo bar");
+$pi = $bi->getPartsIterator();
+var_dump(get_class($pi->getBreakIterator()));
+print_r(iterator_to_array($pi));
+var_dump($pi->getRuleStatus());
+?>
+==DONE==
+--EXPECT--
+string(17) "IntlPartsIterator"
+Array
+(
+)
+string(26) "IntlRuleBasedBreakIterator"
+Array
+(
+    [0] => foo
+    [1] =>  
+    [2] => bar
+)
+int(200)
+==DONE==
index 6fa8dd7fa71610c847c9fee92156afa5f7bfb92b..7ef8804c4f08aa14f4d4ac1231cb4e6946f5a8ed 100644 (file)
@@ -1,9 +1,11 @@
 --TEST--
-IntlBreakIterator::preceding(): basic test
+IntlBreakIterator::preceding(): basic test, ICU <= 57.1
 --SKIPIF--
 <?php
 if (!extension_loaded('intl'))
        die('skip intl extension not enabled');
+if (version_compare(INTL_ICU_VERSION, '57.1') >= 0) die('skip for ICU <= 57.1');
+?>
 --FILE--
 <?php
 ini_set("intl.error_level", E_WARNING);
@@ -21,4 +23,4 @@ var_dump($bi->preceding(-1));
 int(4)
 int(21)
 int(0)
-==DONE==
\ No newline at end of file
+==DONE==
diff --git a/ext/intl/tests/breakiter_preceding_basic2.phpt b/ext/intl/tests/breakiter_preceding_basic2.phpt
new file mode 100644 (file)
index 0000000..e84e5fc
--- /dev/null
@@ -0,0 +1,25 @@
+--TEST--
+IntlBreakIterator::preceding(): basic test, ICU >= 58.1
+--SKIPIF--
+<?php
+if (!extension_loaded('intl'))
+       die('skip intl extension not enabled');
+if (version_compare(INTL_ICU_VERSION, '57.1') < 0) die('skip for ICU >= 58.1');
+--FILE--
+<?php
+ini_set("intl.error_level", E_WARNING);
+ini_set("intl.default_locale", "pt_PT");
+
+$bi = IntlBreakIterator::createWordInstance('pt');
+$bi->setText('foo bar trans zoo bee');
+
+var_dump($bi->preceding(5));
+var_dump($bi->preceding(50));
+var_dump($bi->preceding(-1));
+?>
+==DONE==
+--EXPECT--
+int(4)
+int(21)
+int(-1)
+==DONE==
index 4086e4558aebd87b77cbfd53640de92e6e09aa85..4796b93abdfd504477d1fb38ff286bdd1ce4c4f0 100644 (file)
@@ -4,6 +4,7 @@ IntlDateFormatter: several forms of the calendar arg
 <?php
 if (!extension_loaded('intl')) die('skip intl extension not enabled'); ?>
 <?php if (version_compare(INTL_ICU_VERSION, '54.1') < 0) die('skip for ICU >= 54.1'); ?>
+<?php if (version_compare(INTL_ICU_VERSION, '57.1') >= 0) die('skip for ICU <= 57.1'); ?>
 --FILE--
 <?php
 ini_set("intl.error_level", E_WARNING);
diff --git a/ext/intl/tests/dateformat_create_cal_arg_variant5.phpt b/ext/intl/tests/dateformat_create_cal_arg_variant5.phpt
new file mode 100644 (file)
index 0000000..b42d0b3
--- /dev/null
@@ -0,0 +1,54 @@
+--TEST--
+IntlDateFormatter: several forms of the calendar arg
+--SKIPIF--
+<?php
+if (!extension_loaded('intl')) die('skip intl extension not enabled'); ?>
+<?php if (version_compare(INTL_ICU_VERSION, '54.1') < 0) die('skip for ICU >= 54.1'); ?>
+<?php if (version_compare(INTL_ICU_VERSION, '57.1') < 0) die('skip for ICU >= 58.1'); ?>
+--FILE--
+<?php
+ini_set("intl.error_level", E_WARNING);
+ini_set("intl.default_locale", "pt_PT");
+ini_set("date.timezone", 'Atlantic/Azores');
+
+$ts = strtotime('2012-01-01 00:00:00 UTC');
+
+$cal = new IntlGregorianCalendar('UTC', NULL);
+$df = new IntlDateFormatter('es_ES', 0, 0, NULL, $cal);
+echo $df->format($ts), "\n";
+
+$cal = IntlCalendar::createInstance('UTC', 'en@calendar=islamic');
+$df = new IntlDateFormatter('es_ES', 0, 0, NULL, $cal);
+echo $df->format($ts), "\n";
+
+//override calendar's timezone
+$cal = new IntlGregorianCalendar('UTC', NULL);
+$df = new IntlDateFormatter('es_ES', 0, 0, 'Europe/Madrid', $cal);
+echo $df->format($ts), "\n";
+
+//default calendar is gregorian
+$df = new IntlDateFormatter('es_ES@calendar=islamic', 0, 0);
+echo $df->format($ts), "\n";
+
+//try now with traditional
+$df = new IntlDateFormatter('es_ES@calendar=islamic', 0, 0, NULL, IntlDateFormatter::TRADITIONAL);
+echo $df->format($ts), "\n";
+
+//the timezone can be overridden when not specifying a calendar
+$df = new IntlDateFormatter('es_ES@calendar=islamic', 0, 0, 'UTC', IntlDateFormatter::TRADITIONAL);
+echo $df->format($ts), "\n";
+
+$df = new IntlDateFormatter('es_ES', 0, 0, 'UTC', 0);
+echo $df->format($ts), "\n";
+
+?>
+==DONE==
+--EXPECTF--
+domingo%S 1 de enero de 2012, 0:00:00 (tiempo universal coordinado)
+domingo%S 8 de safar de 1433, 0:00:00 (tiempo universal coordinado)
+domingo, 1 de enero de 2012, 1:00:00 (hora estándar de Europa central)
+sábado, 31 de diciembre de 2011 d. C., 23:00:00 (hora estándar de las Azores)
+sábado, 7 de safar de 1433 AH, 23:00:00 (hora estándar de las Azores)
+domingo%S 8 de safar de 1433 AH, 0:00:00 (tiempo universal coordinado)
+domingo%S 1 de enero de 2012, 0:00:00 (tiempo universal coordinado)
+==DONE==
index dc9db09740981ea6c3ad95797a925a30f21ffb0a..884f46980d7273a924183947c9b1642816b3bd14 100644 (file)
@@ -4,6 +4,7 @@ IntlDateFormatter: setCalendar()/getCalendar()/getCalendarObject()
 <?php
 if (!extension_loaded('intl')) die('skip intl extension not enabled'); ?>
 <?php if (version_compare(INTL_ICU_VERSION, '54.1') < 0) die('skip for ICU >= 54.1'); ?>
+<?php if (version_compare(INTL_ICU_VERSION, '57.1') >= 0) die('skip for ICU <= 57.1'); ?>
 --FILE--
 <?php
 ini_set("intl.error_level", E_WARNING);
diff --git a/ext/intl/tests/dateformat_get_set_calendar_variant5.phpt b/ext/intl/tests/dateformat_get_set_calendar_variant5.phpt
new file mode 100644 (file)
index 0000000..de16dc8
--- /dev/null
@@ -0,0 +1,56 @@
+--TEST--
+IntlDateFormatter: setCalendar()/getCalendar()/getCalendarObject()
+--SKIPIF--
+<?php
+if (!extension_loaded('intl')) die('skip intl extension not enabled'); ?>
+<?php if (version_compare(INTL_ICU_VERSION, '54.1') < 0) die('skip for ICU >= 54.1'); ?>
+<?php if (version_compare(INTL_ICU_VERSION, '57.1') < 0) die('skip for ICU >= 58.1'); ?>
+--FILE--
+<?php
+ini_set("intl.error_level", E_WARNING);
+ini_set("intl.default_locale", "pt_PT");
+ini_set("date.timezone", 'Atlantic/Azores');
+
+$ts = strtotime('2012-01-01 00:00:00 UTC');
+
+function d(IntlDateFormatter $df) {
+global $ts;
+echo $df->format($ts), "\n";
+var_dump($df->getCalendar(),
+$df->getCalendarObject()->getType(),
+$df->getCalendarObject()->getTimeZone()->getId());
+echo "\n";
+}
+
+$df = new IntlDateFormatter('fr@calendar=islamic', 0, 0, 'Europe/Minsk');
+d($df);
+
+
+//changing the calendar with a cal type should not change tz
+$df->setCalendar(IntlDateFormatter::TRADITIONAL);
+d($df);
+
+//but changing with an actual calendar should
+$cal = IntlCalendar::createInstance("UTC");
+$df->setCalendar($cal);
+d($df);
+
+?>
+==DONE==
+--EXPECT--
+dimanche 1 janvier 2012 ap. J.-C. à 03:00:00 heure de Kaliningrad
+int(1)
+string(9) "gregorian"
+string(12) "Europe/Minsk"
+
+dimanche 8 safar 1433 AH à 03:00:00 heure de Kaliningrad
+int(0)
+string(7) "islamic"
+string(12) "Europe/Minsk"
+
+dimanche 1 janvier 2012 ap. J.-C. à 00:00:00 Temps universel coordonné
+bool(false)
+string(9) "gregorian"
+string(3) "UTC"
+
+==DONE==
index 47daf4330586cb23d94fbbc40bd0b340abb97cf6..9e79b543b2a270de605f2d33705d2745af02a16f 100644 (file)
@@ -2,6 +2,7 @@
 UConverter::convert() w/ Callback Reasons
 --SKIPIF--
 <?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
+<?php if (version_compare(INTL_ICU_VERSION, '57.1') >= 0) die('skip for ICU <= 57.1'); ?>
 --FILE--
 <?php
 class MyConverter extends UConverter {
diff --git a/ext/intl/tests/uconverter_oop_callback2.phpt b/ext/intl/tests/uconverter_oop_callback2.phpt
new file mode 100644 (file)
index 0000000..dba70be
--- /dev/null
@@ -0,0 +1,57 @@
+--TEST--
+UConverter::convert() w/ Callback Reasons
+--SKIPIF--
+<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
+<?php if (version_compare(INTL_ICU_VERSION, '57.1') < 0) die('skip for ICU >= 58.1'); ?>
+--FILE--
+<?php
+class MyConverter extends UConverter {
+  /**
+   * Called during conversion from source encoding to internal UChar representation
+   */
+  public function toUCallback($reason, $source, $codeUnits, &$error) {
+    echo "toUCallback(", UConverter::reasonText($reason), ", ...)\n";
+    return parent::toUCallback($reason, $source, $codeUnits, $error);
+  }
+
+  /**
+   * Called during conversion from internal UChar to destination encoding
+   */
+  public function fromUCallback($reason, $source, $codePoint, &$error) {
+    echo "fromUCallback(", UConverter::reasonText($reason), ", ...)\n";
+    return parent::fromUCallback($reason, $source, $codePoint, $error);
+  }
+
+}
+
+$c = new MyConverter('ascii', 'utf-8');
+foreach(array("regular", "irregul\xC1\xA1r", "\xC2\xA1unsupported!") as $word) {
+  $c->convert($word);
+}
+--EXPECT--
+toUCallback(REASON_RESET, ...)
+toUCallback(REASON_RESET, ...)
+fromUCallback(REASON_RESET, ...)
+fromUCallback(REASON_RESET, ...)
+toUCallback(REASON_RESET, ...)
+toUCallback(REASON_ILLEGAL, ...)
+toUCallback(REASON_RESET, ...)
+toUCallback(REASON_ILLEGAL, ...)
+fromUCallback(REASON_RESET, ...)
+fromUCallback(REASON_UNASSIGNED, ...)
+fromUCallback(REASON_RESET, ...)
+fromUCallback(REASON_UNASSIGNED, ...)
+toUCallback(REASON_RESET, ...)
+toUCallback(REASON_RESET, ...)
+fromUCallback(REASON_RESET, ...)
+fromUCallback(REASON_UNASSIGNED, ...)
+fromUCallback(REASON_RESET, ...)
+fromUCallback(REASON_UNASSIGNED, ...)
+toUCallback(REASON_CLOSE, ...)
+fromUCallback(REASON_CLOSE, ...)
+toUCallback(REASON_CLOSE, ...)
+fromUCallback(REASON_CLOSE, ...)
+toUCallback(REASON_ILLEGAL, ...)
+toUCallback(REASON_ILLEGAL, ...)
+fromUCallback(REASON_UNASSIGNED, ...)
+fromUCallback(REASON_UNASSIGNED, ...)