]> granicus.if.org Git - php/commitdiff
- Add testcases for bug #28220 and #30549.
authorMoriyoshi Koizumi <moriyoshi@php.net>
Mon, 21 Feb 2005 07:45:37 +0000 (07:45 +0000)
committerMoriyoshi Koizumi <moriyoshi@php.net>
Mon, 21 Feb 2005 07:45:37 +0000 (07:45 +0000)
ext/mbstring/tests/bug28220.phpt [new file with mode: 0644]
ext/mbstring/tests/bug30549.phpt [new file with mode: 0644]

diff --git a/ext/mbstring/tests/bug28220.phpt b/ext/mbstring/tests/bug28220.phpt
new file mode 100644 (file)
index 0000000..563e2da
--- /dev/null
@@ -0,0 +1,23 @@
+--TEST--
+Bug #28220 (mb_strwidth() returns wrong width values for some Hangul characters)
+--FILE--
+<?php
+$coderange = array(
+       range(0x0000, 0x1fff),
+       range(0xff60, 0xff9f)
+);
+
+
+foreach ($coderange as $r) {
+       $ng = 0;
+       foreach ($r as $c) {
+               if (mb_strwidth(pack('N1', $c), 'UCS-4BE') != 2) {
+                       $ng++;
+               }
+       }
+       echo "$ng\n";
+}
+?>
+--EXPECT--
+8101
+63
diff --git a/ext/mbstring/tests/bug30549.phpt b/ext/mbstring/tests/bug30549.phpt
new file mode 100644 (file)
index 0000000..dbd8e0b
--- /dev/null
@@ -0,0 +1,29 @@
+--TEST--
+Bug #30549 (incorrect character translations for some ISO8859 charsets)
+--FILE--
+<?php
+test('ISO-8859-7',  array(0xa4 => 0x20ac, 0xa5 => 0x20af, 0xaa => 0x037a));
+test('ISO-8859-8',  array(0xaf => 0x00af, 0xfd => 0x200e, 0xfe => 0x200f));
+test('ISO-8859-10', array(0xa4 => 0x012a                                ));
+
+function test($enc, $map) {
+       print "$enc\n";
+
+       foreach($map as $fromc => $toc) {
+               $ustr = mb_convert_encoding(pack('C', $fromc), 'UCS-4BE', $enc);
+               foreach (unpack('Nc', $ustr) as $unic);
+               printf("0x%04x, 0x%04x\n", $toc, $unic);
+       }
+}
+?>
+--EXPECT--
+ISO-8859-7
+0x20ac, 0x20ac
+0x20af, 0x20af
+0x037a, 0x037a
+ISO-8859-8
+0x00af, 0x00af
+0x200e, 0x200e
+0x200f, 0x200f
+ISO-8859-10
+0x012a, 0x012a