iconv_mime_decode.phpt 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. --TEST--
  2. iconv_mime_decode()
  3. --EXTENSIONS--
  4. iconv
  5. --INI--
  6. iconv.internal_charset=iso-8859-1
  7. --FILE--
  8. <?php
  9. function my_error_handler($errno, $errmsg, $filename, $linenum)
  10. {
  11. echo "$errno: $errmsg\n";
  12. }
  13. set_error_handler('my_error_handler');
  14. function do_single_test($header)
  15. {
  16. global $mode;
  17. $result = iconv_mime_decode($header, $mode, "UTF-8");
  18. printf("(%d) \"%s\"\n", iconv_strlen($result, "UTF-8"), $result);
  19. }
  20. function do_regression_test()
  21. {
  22. do_single_test(<<< HERE
  23. Subject: =?ISO-8859-1?Q?Pr=FCfung?=
  24. =?ISO-8859-1*de_DE?Q?Pr=FCfung?=\t
  25. =?ISO-8859-2?Q?k=F9=D4=F1=D3let?=
  26. HERE
  27. );
  28. do_single_test(<<< HERE
  29. Subject: =?ISO-8859-1?Q?Pr=FCfung?= =?ISO-8859-1*de_DE?Q?=20Pr=FCfung?= \t =?ISO-8859-2?Q?k=F9=D4=F1=D3let?=
  30. HERE
  31. );
  32. do_single_test(<<< HERE
  33. Subject: =?ISO-8859-1?Q?Pr=FCfung?==?ISO-8859-1*de_DE?Q?Pr=FCfung?==?ISO-8859-2?Q?k=F9=D4=F1=D3let?=
  34. HERE
  35. );
  36. do_single_test(<<< HERE
  37. Subject: =?ISO-8859-1?Q?Pr=FCfung?= =?ISO-8859-1*de_DE?Q?Pr=FCfung?? =?ISO-8859-2?X?k=F9=D4=F1=D3let?=
  38. HERE
  39. );
  40. do_single_test(<<< HERE
  41. From: =?ISO-2022-JP?B?GyRCJTUbKEI=?=
  42. =?ISO-2022-JP?B?GyRCJXMlVxsoQg==?=
  43. =?ISO-2022-JP?B?GyRCJWtKOBsoQg==?=
  44. =?ISO-2022-JP?B?GyRCO3pOcxsoQg==?=
  45. =?ISO-2022-JP?B?GyRCJTUlcxsoQg==?=
  46. =?ISO-2022-JP?B?GyRCJVclaxsoQg==?=
  47. =?ISO-2022-JP?B?GyRCSjg7ehsoQg==?=
  48. =?ISO-2022-JP?B?GyRCTnNGfBsoQg==?=
  49. =?ISO-2022-JP?B?GyRCS1w4bBsoQg==?=
  50. =?ISO-2022-JP?B?GyRCJUYlLRsoQg==?=
  51. =?ISO-2022-JP?B?GyRCJTklSBsoQg==?=
  52. HERE
  53. );
  54. }
  55. $mode = 0;
  56. do_regression_test();
  57. $mode = ICONV_MIME_DECODE_STRICT;
  58. do_regression_test();
  59. $mode = ICONV_MIME_DECODE_CONTINUE_ON_ERROR;
  60. do_regression_test();
  61. $mode = ICONV_MIME_DECODE_STRICT | ICONV_MIME_DECODE_CONTINUE_ON_ERROR;
  62. do_regression_test();
  63. ?>
  64. --EXPECT--
  65. (31) "Subject: PrüfungPrüfungkůÔńÓlet"
  66. (32) "Subject: Prüfung PrüfungkůÔńÓlet"
  67. (31) "Subject: PrüfungPrüfungkůÔńÓlet"
  68. 2: iconv_mime_decode(): Malformed string
  69. (0) ""
  70. (27) "From: サンプル文字列サンプル文字列日本語テキスト"
  71. (31) "Subject: PrüfungPrüfungkůÔńÓlet"
  72. (32) "Subject: Prüfung PrüfungkůÔńÓlet"
  73. (100) "Subject: =?ISO-8859-1?Q?Pr=FCfung?==?ISO-8859-1*de_DE?Q?Pr=FCfung?==?ISO-8859-2?Q?k=F9=D4=F1=D3let?="
  74. 2: iconv_mime_decode(): Malformed string
  75. (0) ""
  76. (27) "From: サンプル文字列サンプル文字列日本語テキスト"
  77. (31) "Subject: PrüfungPrüfungkůÔńÓlet"
  78. (32) "Subject: Prüfung PrüfungkůÔńÓlet"
  79. (31) "Subject: PrüfungPrüfungkůÔńÓlet"
  80. (84) "Subject: Prüfung=?ISO-8859-1*de_DE?Q?Pr=FCfung?? =?ISO-8859-2?X?k=F9=D4=F1=D3let?="
  81. (27) "From: サンプル文字列サンプル文字列日本語テキスト"
  82. (31) "Subject: PrüfungPrüfungkůÔńÓlet"
  83. (32) "Subject: Prüfung PrüfungkůÔńÓlet"
  84. (100) "Subject: =?ISO-8859-1?Q?Pr=FCfung?==?ISO-8859-1*de_DE?Q?Pr=FCfung?==?ISO-8859-2?Q?k=F9=D4=F1=D3let?="
  85. (84) "Subject: Prüfung=?ISO-8859-1*de_DE?Q?Pr=FCfung?? =?ISO-8859-2?X?k=F9=D4=F1=D3let?="
  86. (27) "From: サンプル文字列サンプル文字列日本語テキスト"