diff options
Diffstat (limited to 'ext/standard/tests/strings/html_entity_decode3.phpt')
-rw-r--r-- | ext/standard/tests/strings/html_entity_decode3.phpt | 193 |
1 files changed, 193 insertions, 0 deletions
diff --git a/ext/standard/tests/strings/html_entity_decode3.phpt b/ext/standard/tests/strings/html_entity_decode3.phpt new file mode 100644 index 0000000..fcf2710 --- /dev/null +++ b/ext/standard/tests/strings/html_entity_decode3.phpt @@ -0,0 +1,193 @@ +--TEST-- +html_entity_decode: Do not decode numerical entities that refer to non-SGML or otherwise disallowed chars +--FILE-- +<?php + +$tests = array( + "�", //C0 + "", + "	", + "
", + "", + "", + "
", //note that HTML5 is unique in that it forbids this entity, but allows a literal U+0D + "", + "", + " ", //allowed always + "", //DEL + "€", //C1 + "Ÿ", + " ", //allowed always + "퟿", //surrogates + "�", + "�", + "", //allowed always + "", //nonchar + "", + "﷏", //allowed always + "", //nonchar + "", + "ﷰ", //allowed always + "", //nonchar + "", +); + +echo "*** HTML 4.01 ***\n"; + +foreach ($tests as $t) { + $dec = html_entity_decode($t, ENT_QUOTES | ENT_HTML401, "UTF-8"); + if ($t == $dec) { + echo "$t\tNOT DECODED\n"; + } else { + echo "$t\tDECODED\n"; + } +} + +echo "\n*** XHTML 1.0 ***\n"; + +foreach ($tests as $t) { + $dec = html_entity_decode($t, ENT_QUOTES | ENT_XHTML, "UTF-8"); + if ($t == $dec) { + echo "$t\tNOT DECODED\n"; + } else { + echo "$t\tDECODED\n"; + } +} + +echo "\n*** HTML5 ***\n"; + +foreach ($tests as $t) { + $dec = html_entity_decode($t, ENT_QUOTES | ENT_HTML5, "UTF-8"); + if ($t == $dec) { + echo "$t\tNOT DECODED\n"; + } else { + echo "$t\tDECODED\n"; + } +} + +echo "\n*** XML 1.0 ***\n"; + +foreach ($tests as $t) { + $dec = html_entity_decode($t, ENT_QUOTES | ENT_XML1, "UTF-8"); + if ($t == $dec) { + echo "$t\tNOT DECODED\n"; + } else { + echo "$t\tDECODED\n"; + } +} + +echo "\nDone.\n"; +--EXPECT-- +*** HTML 4.01 *** +� NOT DECODED + NOT DECODED +	 DECODED +
 DECODED + NOT DECODED + NOT DECODED +
 DECODED + NOT DECODED + NOT DECODED +  DECODED + NOT DECODED +€ NOT DECODED +Ÿ NOT DECODED +  DECODED +퟿ DECODED +� NOT DECODED +� NOT DECODED + DECODED + DECODED + DECODED +﷏ DECODED + DECODED + DECODED +ﷰ DECODED + DECODED + DECODED + +*** XHTML 1.0 *** +� NOT DECODED + NOT DECODED +	 DECODED +
 DECODED + NOT DECODED + NOT DECODED +
 DECODED + NOT DECODED + NOT DECODED +  DECODED + DECODED +€ DECODED +Ÿ DECODED +  DECODED +퟿ DECODED +� NOT DECODED +� NOT DECODED + DECODED + NOT DECODED + NOT DECODED +﷏ DECODED + DECODED + DECODED +ﷰ DECODED + DECODED + DECODED + +*** HTML5 *** +� NOT DECODED + NOT DECODED +	 DECODED +
 DECODED + NOT DECODED + DECODED +
 NOT DECODED + NOT DECODED + NOT DECODED +  DECODED + NOT DECODED +€ NOT DECODED +Ÿ NOT DECODED +  DECODED +퟿ DECODED +� NOT DECODED +� NOT DECODED + DECODED + NOT DECODED + NOT DECODED +﷏ DECODED + NOT DECODED + NOT DECODED +ﷰ DECODED + NOT DECODED + NOT DECODED + +*** XML 1.0 *** +� NOT DECODED + NOT DECODED +	 DECODED +
 DECODED + NOT DECODED + NOT DECODED +
 DECODED + NOT DECODED + NOT DECODED +  DECODED + DECODED +€ DECODED +Ÿ DECODED +  DECODED +퟿ DECODED +� NOT DECODED +� NOT DECODED + DECODED + NOT DECODED + NOT DECODED +﷏ DECODED + DECODED + DECODED +ﷰ DECODED + DECODED + DECODED + +Done. |