-
Notifications
You must be signed in to change notification settings - Fork 7.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Sync some tests for compat with ICU 58.1+
- Loading branch information
Showing
10 changed files
with
242 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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== |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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== |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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== |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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== |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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, ...) |