euc_tw_encoding.phpt 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. --TEST--
  2. Exhaustive test of verification and conversion of EUC-TW text
  3. --EXTENSIONS--
  4. mbstring
  5. --SKIPIF--
  6. <?php
  7. if (getenv("SKIP_SLOW_TESTS")) die("skip slow test");
  8. ?>
  9. --FILE--
  10. <?php
  11. include('encoding_tests.inc');
  12. srand(1000); // Make results consistent
  13. mb_substitute_character(0x25); // '%'
  14. readConversionTable(__DIR__ . '/data/EUC-TW.txt', $toUnicode, $fromUnicode);
  15. findInvalidChars($toUnicode, $invalid, $truncated);
  16. testAllValidChars($toUnicode, 'EUC-TW', 'UTF-16BE', false);
  17. testAllValidChars($fromUnicode, 'UTF-16BE', 'EUC-TW', false);
  18. testAllInvalidChars($invalid, $toUnicode, 'EUC-TW', 'UTF-16BE', "\x00%");
  19. testTruncatedChars($truncated, 'EUC-TW', 'UTF-16BE', "\x00%");
  20. echo "Tested EUC-TW -> UTF-16BE\n";
  21. findInvalidChars($fromUnicode, $invalid, $unused, array_fill_keys(range(0,0xFF), 2));
  22. convertAllInvalidChars($invalid, $fromUnicode, 'UTF-16BE', 'EUC-TW', '%');
  23. echo "Tested UTF-16BE -> EUC-TW\n";
  24. // Test "long" illegal character markers
  25. mb_substitute_character("long");
  26. convertInvalidString("\x80", "%", "EUC-TW", "UTF-8");
  27. convertInvalidString("\x8E\x20", "%", "EUC-TW", "UTF-8");
  28. convertInvalidString("\x8E\xA1\x20", "%", "EUC-TW", "UTF-8");
  29. convertInvalidString("\x8E\xA1\xA1\x20", "%", "EUC-TW", "UTF-8");
  30. convertInvalidString("\x8E\xA2\xA3\x20", "%", "EUC-TW", "UTF-8");
  31. convertInvalidString("\x8F", "%", "EUC-TW", "UTF-8");
  32. convertInvalidString("\xA1\x50", "%", "EUC-TW", "UTF-8");
  33. convertInvalidString("\xFD\xCC", "%", "EUC-TW", "UTF-8");
  34. echo "Done!\n";
  35. ?>
  36. --EXPECT--
  37. Tested EUC-TW -> UTF-16BE
  38. Tested UTF-16BE -> EUC-TW
  39. Done!