summaryrefslogtreecommitdiff
path: root/ext/standard/tests/strings/htmlentities_html4.phpt
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2013-03-14 05:42:27 +0000
committer <>2013-04-03 16:25:08 +0000
commitc4dd7a1a684490673e25aaf4fabec5df138854c4 (patch)
tree4d57c44caae4480efff02b90b9be86f44bf25409 /ext/standard/tests/strings/htmlentities_html4.phpt
downloadphp2-master.tar.gz
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'ext/standard/tests/strings/htmlentities_html4.phpt')
-rw-r--r--ext/standard/tests/strings/htmlentities_html4.phpt313
1 files changed, 313 insertions, 0 deletions
diff --git a/ext/standard/tests/strings/htmlentities_html4.phpt b/ext/standard/tests/strings/htmlentities_html4.phpt
new file mode 100644
index 0000000..22b0305
--- /dev/null
+++ b/ext/standard/tests/strings/htmlentities_html4.phpt
@@ -0,0 +1,313 @@
+--TEST--
+htmlentities() conformance check (HTML 4)
+--FILE--
+<?php
+function utf32_utf8($k) {
+ if ($k < 0x80) {
+ $retval = pack('C', $k);
+ } else if ($k < 0x800) {
+ $retval = pack('C2',
+ 0xc0 | ($k >> 6),
+ 0x80 | ($k & 0x3f));
+ } else if ($k < 0x10000) {
+ $retval = pack('C3',
+ 0xe0 | ($k >> 12),
+ 0x80 | (($k >> 6) & 0x3f),
+ 0x80 | ($k & 0x3f));
+ } else if ($k < 0x200000) {
+ $retval = pack('C4',
+ 0xf0 | ($k >> 18),
+ 0x80 | (($k >> 12) & 0x3f),
+ 0x80 | (($k >> 6) & 0x3f),
+ 0x80 | ($k & 0x3f));
+ } else if ($k < 0x4000000) {
+ $retval = pack('C5',
+ 0xf8 | ($k >> 24),
+ 0x80 | (($k >> 18) & 0x3f),
+ 0x80 | (($k >> 12) & 0x3f),
+ 0x80 | (($k >> 6) & 0x3f),
+ 0x80 | ($k & 0x3f));
+ } else {
+ $retval = pack('C6',
+ 0xfc | ($k >> 30),
+ 0x80 | (($k >> 24) & 0x3f),
+ 0x80 | (($k >> 18) & 0x3f),
+ 0x80 | (($k >> 12) & 0x3f),
+ 0x80 | (($k >> 6) & 0x3f),
+ 0x80 | ($k & 0x3f));
+ }
+ return $retval;
+}
+
+$table = get_html_translation_table(HTML_ENTITIES, ENT_QUOTES, 'UTF-8');
+
+for ($i = 0; $i < 0x2710; $i++) {
+ if ($i >= 0xd800 && $i < 0xe000)
+ continue;
+ $str = utf32_utf8($i);
+ if (isset($table[$str])) {
+ printf("%s\tU+%05X\n", $table[$str], $i);
+ unset($table[$str]);
+ }
+}
+
+if (!empty($table)) {
+ echo "Not matched entities: ";
+ var_dump($table);
+}
+
+?>
+--EXPECT--
+&quot; U+00022
+&amp; U+00026
+&#039; U+00027
+&lt; U+0003C
+&gt; U+0003E
+&nbsp; U+000A0
+&iexcl; U+000A1
+&cent; U+000A2
+&pound; U+000A3
+&curren; U+000A4
+&yen; U+000A5
+&brvbar; U+000A6
+&sect; U+000A7
+&uml; U+000A8
+&copy; U+000A9
+&ordf; U+000AA
+&laquo; U+000AB
+&not; U+000AC
+&shy; U+000AD
+&reg; U+000AE
+&macr; U+000AF
+&deg; U+000B0
+&plusmn; U+000B1
+&sup2; U+000B2
+&sup3; U+000B3
+&acute; U+000B4
+&micro; U+000B5
+&para; U+000B6
+&middot; U+000B7
+&cedil; U+000B8
+&sup1; U+000B9
+&ordm; U+000BA
+&raquo; U+000BB
+&frac14; U+000BC
+&frac12; U+000BD
+&frac34; U+000BE
+&iquest; U+000BF
+&Agrave; U+000C0
+&Aacute; U+000C1
+&Acirc; U+000C2
+&Atilde; U+000C3
+&Auml; U+000C4
+&Aring; U+000C5
+&AElig; U+000C6
+&Ccedil; U+000C7
+&Egrave; U+000C8
+&Eacute; U+000C9
+&Ecirc; U+000CA
+&Euml; U+000CB
+&Igrave; U+000CC
+&Iacute; U+000CD
+&Icirc; U+000CE
+&Iuml; U+000CF
+&ETH; U+000D0
+&Ntilde; U+000D1
+&Ograve; U+000D2
+&Oacute; U+000D3
+&Ocirc; U+000D4
+&Otilde; U+000D5
+&Ouml; U+000D6
+&times; U+000D7
+&Oslash; U+000D8
+&Ugrave; U+000D9
+&Uacute; U+000DA
+&Ucirc; U+000DB
+&Uuml; U+000DC
+&Yacute; U+000DD
+&THORN; U+000DE
+&szlig; U+000DF
+&agrave; U+000E0
+&aacute; U+000E1
+&acirc; U+000E2
+&atilde; U+000E3
+&auml; U+000E4
+&aring; U+000E5
+&aelig; U+000E6
+&ccedil; U+000E7
+&egrave; U+000E8
+&eacute; U+000E9
+&ecirc; U+000EA
+&euml; U+000EB
+&igrave; U+000EC
+&iacute; U+000ED
+&icirc; U+000EE
+&iuml; U+000EF
+&eth; U+000F0
+&ntilde; U+000F1
+&ograve; U+000F2
+&oacute; U+000F3
+&ocirc; U+000F4
+&otilde; U+000F5
+&ouml; U+000F6
+&divide; U+000F7
+&oslash; U+000F8
+&ugrave; U+000F9
+&uacute; U+000FA
+&ucirc; U+000FB
+&uuml; U+000FC
+&yacute; U+000FD
+&thorn; U+000FE
+&yuml; U+000FF
+&OElig; U+00152
+&oelig; U+00153
+&Scaron; U+00160
+&scaron; U+00161
+&Yuml; U+00178
+&fnof; U+00192
+&circ; U+002C6
+&tilde; U+002DC
+&Alpha; U+00391
+&Beta; U+00392
+&Gamma; U+00393
+&Delta; U+00394
+&Epsilon; U+00395
+&Zeta; U+00396
+&Eta; U+00397
+&Theta; U+00398
+&Iota; U+00399
+&Kappa; U+0039A
+&Lambda; U+0039B
+&Mu; U+0039C
+&Nu; U+0039D
+&Xi; U+0039E
+&Omicron; U+0039F
+&Pi; U+003A0
+&Rho; U+003A1
+&Sigma; U+003A3
+&Tau; U+003A4
+&Upsilon; U+003A5
+&Phi; U+003A6
+&Chi; U+003A7
+&Psi; U+003A8
+&Omega; U+003A9
+&alpha; U+003B1
+&beta; U+003B2
+&gamma; U+003B3
+&delta; U+003B4
+&epsilon; U+003B5
+&zeta; U+003B6
+&eta; U+003B7
+&theta; U+003B8
+&iota; U+003B9
+&kappa; U+003BA
+&lambda; U+003BB
+&mu; U+003BC
+&nu; U+003BD
+&xi; U+003BE
+&omicron; U+003BF
+&pi; U+003C0
+&rho; U+003C1
+&sigmaf; U+003C2
+&sigma; U+003C3
+&tau; U+003C4
+&upsilon; U+003C5
+&phi; U+003C6
+&chi; U+003C7
+&psi; U+003C8
+&omega; U+003C9
+&thetasym; U+003D1
+&upsih; U+003D2
+&piv; U+003D6
+&ensp; U+02002
+&emsp; U+02003
+&thinsp; U+02009
+&zwnj; U+0200C
+&zwj; U+0200D
+&lrm; U+0200E
+&rlm; U+0200F
+&ndash; U+02013
+&mdash; U+02014
+&lsquo; U+02018
+&rsquo; U+02019
+&sbquo; U+0201A
+&ldquo; U+0201C
+&rdquo; U+0201D
+&bdquo; U+0201E
+&dagger; U+02020
+&Dagger; U+02021
+&bull; U+02022
+&hellip; U+02026
+&permil; U+02030
+&prime; U+02032
+&Prime; U+02033
+&lsaquo; U+02039
+&rsaquo; U+0203A
+&oline; U+0203E
+&frasl; U+02044
+&euro; U+020AC
+&image; U+02111
+&weierp; U+02118
+&real; U+0211C
+&trade; U+02122
+&alefsym; U+02135
+&larr; U+02190
+&uarr; U+02191
+&rarr; U+02192
+&darr; U+02193
+&harr; U+02194
+&crarr; U+021B5
+&lArr; U+021D0
+&uArr; U+021D1
+&rArr; U+021D2
+&dArr; U+021D3
+&hArr; U+021D4
+&forall; U+02200
+&part; U+02202
+&exist; U+02203
+&empty; U+02205
+&nabla; U+02207
+&isin; U+02208
+&notin; U+02209
+&ni; U+0220B
+&prod; U+0220F
+&sum; U+02211
+&minus; U+02212
+&lowast; U+02217
+&radic; U+0221A
+&prop; U+0221D
+&infin; U+0221E
+&ang; U+02220
+&and; U+02227
+&or; U+02228
+&cap; U+02229
+&cup; U+0222A
+&int; U+0222B
+&there4; U+02234
+&sim; U+0223C
+&cong; U+02245
+&asymp; U+02248
+&ne; U+02260
+&equiv; U+02261
+&le; U+02264
+&ge; U+02265
+&sub; U+02282
+&sup; U+02283
+&nsub; U+02284
+&sube; U+02286
+&supe; U+02287
+&oplus; U+02295
+&otimes; U+02297
+&perp; U+022A5
+&sdot; U+022C5
+&lceil; U+02308
+&rceil; U+02309
+&lfloor; U+0230A
+&rfloor; U+0230B
+&lang; U+02329
+&rang; U+0232A
+&loz; U+025CA
+&spades; U+02660
+&clubs; U+02663
+&hearts; U+02665
+&diams; U+02666