bug75317.phpt 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. --TEST--
  2. Bug #75317 (UConverter::setDestinationEncoding changes source instead of destinatination)
  3. --EXTENSIONS--
  4. intl
  5. --FILE--
  6. <?php
  7. $utf8 = UConverter::getAliases('utf-8')[0];
  8. $utf16 = UConverter::getAliases('utf-16')[0];
  9. $utf32 = UConverter::getAliases('utf-32')[0];
  10. $latin1 = UConverter::getAliases('latin1')[0];
  11. function printResult($actual, $expected) {
  12. var_dump($actual === $expected ? true : "expected: $expected, actual: $actual");
  13. }
  14. // test default values
  15. $c = new UConverter();
  16. printResult($c->getDestinationEncoding(), $utf8);
  17. printResult($c->getSourceEncoding(), $utf8);
  18. // test constructor args
  19. $c = new UConverter('utf-16', 'latin1');
  20. printResult($c->getDestinationEncoding(), $utf16);
  21. printResult($c->getSourceEncoding(), $latin1);
  22. // test setters
  23. var_dump($c->setDestinationEncoding('utf-8'));
  24. var_dump($c->setSourceEncoding('utf-32'));
  25. printResult($c->getDestinationEncoding(), $utf8);
  26. printResult($c->getSourceEncoding(), $utf32);
  27. // test invalid inputs dont change values
  28. var_dump($c->setDestinationEncoding('foobar') === false);
  29. var_dump($c->setSourceEncoding('foobar') === false);
  30. printResult($c->getDestinationEncoding(), $utf8);
  31. printResult($c->getSourceEncoding(), $utf32);
  32. ?>
  33. --EXPECT--
  34. bool(true)
  35. bool(true)
  36. bool(true)
  37. bool(true)
  38. bool(true)
  39. bool(true)
  40. bool(true)
  41. bool(true)
  42. bool(true)
  43. bool(true)
  44. bool(true)
  45. bool(true)