#!/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" ); is( div('arg' => "val: \x03, \x0e, \x0f, \x0c, \xc2\x80, \xc2\x9f, \x09, \n", "\x02, \x0e, \x0f, \x0c, \xc2\x80, \xc2\x9f, \x09, \n"), "
\x02, \x0e, \x0f, \x0c, \xc2\x80, \xc2\x9f, \x09, \n
\n", "blank unprintable characters and illegal utf8 in attributes but not in normal text" ); is( div('arg' => "& \" < > \n '", "& \" < > \n '"), "
& \" < > \n '
\n", "use html entities in attributes but not in normal text", ); # 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 myhtml($p = array()) { parent::it_html($p + array('nonewlinetags' => 'a,b,em,img,input,span,div')); } 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( div(array('attr' => 'value'), 'content'), '
content
', "different nonewlinetags respected" ); 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' ); is( it_html::sanitize('qüx'), "q\xc3\xbcx", 'it_html::sanitize with utf-8' ); 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%C3%BCrich%3E&bar[qux][gn%C3%B6p]=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("J"), "J"); is(it_html::entity_decode("J"), "J"); is(it_html::entity_decode("A"), "A"); # # check transliterations in iso-8859-1 # it_html::configure(array('charset' => "iso-8859-1")); ini_set('default_charset', "iso-8859-1"); is( it_html::sanitize('qüx'), "q\xfcx", 'it_html::sanitize with latin1' ); is( it_html::sanitize('q←x'), "q←x", 'it_html::sanitize preserve non-decodable numeric entities' ); is(it_html::entity_decode("’"), "'", "it_html::entity_decode numeric decimal entity"); is(it_html::entity_decode("࿿"), " ", "it_html::entity_decode invalid numeric hex entity"); is(it_html::entity_decode("ϧ"), " ", "it_html::entity_decode invalid numeric decimal entity"); is(it_html::entity_decode("‹"), " ", "it_html::entity_decode entity von 0x80-0x9f"); ?>