uconverter_oop_callback.phpt 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. --TEST--
  2. UConverter::convert() w/ Callback Reasons
  3. --SKIPIF--
  4. <?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
  5. --FILE--
  6. <?php
  7. class MyConverter extends UConverter {
  8. /**
  9. * Called during conversion from source encoding to internal UChar representation
  10. */
  11. public function toUCallback($reason, $source, $codeUnits, &$error) {
  12. echo "toUCallback(", UConverter::reasonText($reason), ", ...)\n";
  13. return parent::toUCallback($reason, $source, $codeUnits, $error);
  14. }
  15. /**
  16. * Called during conversion from internal UChar to destination encoding
  17. */
  18. public function fromUCallback($reason, $source, $codePoint, &$error) {
  19. echo "fromUCallback(", UConverter::reasonText($reason), ", ...)\n";
  20. return parent::fromUCallback($reason, $source, $codePoint, $error);
  21. }
  22. }
  23. $c = new MyConverter('ascii', 'utf-8');
  24. foreach(array("regular", "irregul\xC1\xA1r", "\xC2\xA1unsupported!") as $word) {
  25. $c->convert($word);
  26. }
  27. --EXPECT--
  28. toUCallback(REASON_RESET, ...)
  29. toUCallback(REASON_RESET, ...)
  30. fromUCallback(REASON_RESET, ...)
  31. fromUCallback(REASON_RESET, ...)
  32. toUCallback(REASON_RESET, ...)
  33. toUCallback(REASON_ILLEGAL, ...)
  34. toUCallback(REASON_RESET, ...)
  35. toUCallback(REASON_ILLEGAL, ...)
  36. fromUCallback(REASON_RESET, ...)
  37. fromUCallback(REASON_UNASSIGNED, ...)
  38. fromUCallback(REASON_RESET, ...)
  39. fromUCallback(REASON_UNASSIGNED, ...)
  40. toUCallback(REASON_RESET, ...)
  41. toUCallback(REASON_RESET, ...)
  42. fromUCallback(REASON_RESET, ...)
  43. fromUCallback(REASON_UNASSIGNED, ...)
  44. fromUCallback(REASON_RESET, ...)
  45. fromUCallback(REASON_UNASSIGNED, ...)
  46. toUCallback(REASON_CLOSE, ...)
  47. fromUCallback(REASON_CLOSE, ...)
  48. toUCallback(REASON_CLOSE, ...)
  49. fromUCallback(REASON_CLOSE, ...)