From d59a4921188753dbe4c0161081755a28112c3ef6 Mon Sep 17 00:00:00 2001 From: Nathan Gass Date: Thu, 22 Mar 2012 18:18:42 +0000 Subject: Branch itools/devel-utf8 created --- devel-utf8/tests/it_html.t | 159 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100755 devel-utf8/tests/it_html.t (limited to 'devel-utf8/tests/it_html.t') diff --git a/devel-utf8/tests/it_html.t b/devel-utf8/tests/it_html.t new file mode 100755 index 0000000..0def431 --- /dev/null +++ b/devel-utf8/tests/it_html.t @@ -0,0 +1,159 @@ +#!/www/server/bin/php -qC + "html")); + +is( + a(array('href' => "&foo", 'true' => true, 'false' => false, 'null' => null, 'empty' => ""), "bar"), + 'bar', + "tag with attributes" +); + +is( + div(), + "
\n", + "empty div tag" +); + +is( + img(array('src' => "foo.png", 'alt' => "ALT")), + 'ALT', + "img tag with attributes" +); + +is( + tag('link'), + "\n", + "empty link tag" +); + +is( + tag('link', "foo"), + "foo\n", + "link tag with data" +); + +is( + it::replace(array('\n+\s*' => ""), select(array('name' => "gna", 'multiple' => true), '1:foo,2:bar', '1,2')), + '', + "select tag with multiselect" +); + +is( + it::replace(array('\n+\s*' => ""), select(array('name' => "gna"), array("1" => "foo", "2" => 'bar', '1,2' => "qux"), '1,2')), + '', + "select tag without multiselect" +); + +# XML generation +unset($GLOBALS['it_html']); +new it_html(array('htmltype' => "xhtml", 'tags' => "xmltest")); + +is( + xmltest(), + "\n", + "empty xmltest tag" +); + +is( + xmltest("foo"), + "foo\n", + "empty xmltest tag" +); + +is( + xmltest(array('href' => "&foo", 'true' => true, 'false' => false, 'null' => null, 'empty' => "")), + '' . "\n", + "xmltest tag with attributes" +); + +# Inheriting and extending it_html +class myhtml extends it_html +{ +function myimg($args) +{ + array_unshift($args, array('alt' => "ALT", 'bar' => "BAR")); + + return parent::img($args); +} +} + +unset($GLOBALS['it_html']); +new myhtml(array('htmltype' => "html")); + +is( + myimg(array('src' => "foo.gif", 'alt' => "foo")), + 'foo', + "it_html inheritance" +); + +is( + it_html::sanitize(" \r \n " . '

swisspics posted < < ä & yesterday a photo tag missmatch:



+ +

Wolken

+'), + ' swisspics posted < < ä & yesterday a photo tag missmatch:

', + 'it_html::sanitize tag soup' +); + +is( + it_html::sanitize('q←x'), + "q←x", + 'it_html::sanitize preserve numeric entities' +); + +it_html::configure(array('charset' => "utf-8")); +is( + it_html::sanitize('qüx'), + "q\xc3\xbcx", + 'it_html::sanitize with utf-8' +); + +it_html::configure(array('charset' => "iso-8859-1")); +is( + it_html::sanitize('qüx'), + "q\xfcx", + 'it_html::sanitize with latin1' +); + +is( + it_html::sanitize('a
b
'), + "a
b
", + 'it_html::sanitize with b and br (tag prefix of other tag bug)' +); + +is( + U("/foo.html", array('bar' => array('gna' => 42, 'qux' => array('quux' => "", 'gnöp' => "fasel")))), + '/foo.html?bar[gna]=42&bar[qux][quux]=%3CZ%FCrich%3E&bar[qux][gn%F6p]=fasel', + 'U() with nested arrays' +); + +is( + U("Jet d'eau"), + 'Jet+d%27eau', + 'U() with single quotes in URL' +); + +is( + U('%% %1%x %1x%x1%xx%11%ff%FF'), + '%25%25+%251%25x+%251x%25x1%25xx%11%ff%FF', + 'U() quoting of % if not followed by 2 hex digits' +); + +is( + U('a\\b'), + 'a/b', + 'U() converting of \ to /' +); + +is(it_html::entity_decode("ä"), "ä"); +is(it_html::entity_decode("’"), "'"); +is(it_html::entity_decode("J"), "J"); +is(it_html::entity_decode("J"), "J"); +is(it_html::entity_decode("࿿"), " "); +is(it_html::entity_decode("A"), "A"); +is(it_html::entity_decode("ϧ"), " "); +?> -- cgit v1.2.3