summaryrefslogtreecommitdiff
path: root/tests/it_html.t
diff options
context:
space:
mode:
authorUrban Müller2018-06-21 16:42:32 +0200
committerUrban Müller2018-06-21 16:43:32 +0200
commit3dabbbd5325c9fad9582cd44b1da68dece78eaa0 (patch)
tree92d951b948f0e01dc6b7ae3f11b9c03034edb69a /tests/it_html.t
parent455b15f7a850a58ef667ad170732769043eb1522 (diff)
downloaditools-3dabbbd5325c9fad9582cd44b1da68dece78eaa0.tar.gz
itools-3dabbbd5325c9fad9582cd44b1da68dece78eaa0.tar.bz2
itools-3dabbbd5325c9fad9582cd44b1da68dece78eaa0.zip
no reason for different naming
Diffstat (limited to 'tests/it_html.t')
-rwxr-xr-xtests/it_html.t291
1 files changed, 0 insertions, 291 deletions
diff --git a/tests/it_html.t b/tests/it_html.t
deleted file mode 100755
index d18afdc..0000000
--- a/tests/it_html.t
+++ /dev/null
@@ -1,291 +0,0 @@
-#!/www/server/bin/php -qC
-<?php
-
-it::getopt(""); #handle possible --debug parameter
-
-# Tests for html.class
-
-# Traditional html5 generation
-ini_set('default_charset', "utf-8");
-new it_html(array('htmltype' => "html5", 'prettyprint' => false, 'error_on_redefine' => false));
-
-is(
- a(array('href' => "&foo", 'true' => true, 'false' => false, 'null' => null, 'empty' => ""), "bar"),
- '<a href="&amp;foo" true empty="">bar</a>',
- "tag with attributes"
-);
-
-is(
- div(),
- "<div></div>\n",
- "empty div tag"
-);
-
-is(
- h1(),
- "<h1></h1>\n",
- "empty h1 tag"
-);
-
-is(
- input(),
- "<input>",
- "no closing tag for void elements"
-);
-
-is(
- img(array('src' => "foo.png", 'alt' => "ALT")),
- '<img src="foo.png" alt="ALT">',
- "img tag with attributes"
-);
-
-is(
- tag('link'),
- "<link>\n",
- "empty link tag"
-);
-
-is(
- tag('link', "foo"),
- "<link>foo</link>\n",
- "link tag with data"
-);
-
-is(
- it::replace(array('\n+\s*' => ""), select(array('name' => "gna", 'multiple' => true), '1:foo,2:bar', '1,2')),
- '<select name="gna" multiple><option value="1" selected>foo</option><option value="2" selected>bar</option></select>',
- "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 name="gna"><option value="1">foo</option><option value="2">bar</option><option value="1,2" selected>qux</option></select>',
- "select tag without multiselect"
-);
-
-is(
- div(array('arg' => "val: \x03, \x0e, \x0f, \x0c, \xc2\x80, \xc2\x9f, \t, \n, \r", "\x02, \x0e, \x0f, \x0c, \xc2\x80, \xc2\x9f, \t, \n, \r")),
- "<div arg=\"val: , , , , , , &#9;, &#10;, &#13;\">\x02, \x0e, \x0f, \x0c, \xc2\x80, \xc2\x9f, \t, \n, \r</div>\n",
- "blank unprintable characters and illegal utf8 in attributes but not in normal text"
-);
-
-is(
- div(array("arg\x03\x0e\x0f\xc2\x80\xc2\x9fendarg" => "value", "content")),
- "<div arg\x03\x0e\x0f\xc2\x80\xc2\x9fendarg=\"value\">content</div>\n",
- "don't blank unprintable characters and illegal utf8 in attribute names"
-);
-
-is(
- div(array('arg' => "abc äüö éá© œàè îôÇ xyz", "abc äüö éá© œàè îôÇ xyz")),
- "<div arg=\"abc äüö éá© œàè îôÇ xyz\">abc äüö éá© œàè îôÇ xyz</div>\n",
- "leave legal utf8 intact"
-);
-
-unset($GLOBALS['debug_utf8check']);
-is(
- div(array('arg' => "value \xc2", "content")),
- "<div arg=\"value \xc2\">content</div>\n",
- "handle single \\xc2 at end of attribute value"
-);
-
-is(
- div(array("arg\x00end" => "value \x00 end", "content \x00 content end")),
- "<div arg\x00end=\"value end\">content \x00 content end</div>\n",
- "handle 0-bytes"
-);
-
-is(
- div(array('arg' => "& \" < > \n '", "& \" < > \n '")),
- "<div arg=\"&amp; &quot; &lt; &gt; &#10; '\">& \" < > \n '</div>\n",
- "use html entities in attributes but not in normal text"
-);
-
-is(
- html(),
- "<!DOCTYPE html>\n<html lang=\"de\">\n</html>\n",
- "html5 doctype"
-);
-
-# Test different html types
-foreach (array('html5' => "<br flag>", 'html' => "<br flag>", 'xhtml' => "<br flag=\"flag\" />", 'xhtml-mobile' => "<br flag=\"flag\" />") as $type => $value)
-{
- unset($GLOBALS['it_html']);
- new it_html(array('htmltype' => $type, 'error_on_redefine' => false));
- is (trim(br(array('flag' => true))), $value, "Check empty tag and attribute for $type");
-}
-
-# XHTML generation
-unset($GLOBALS['it_html']);
-new it_html(array('htmltype' => "xhtml", 'tags' => "script", 'error_on_redefine' => false));
-
-is(
- script(),
- "<script></script>\n",
- "script may not be shortened (see xhtml spec)"
-);
-
-is(
- h1(),
- "<h1></h1>\n",
- "empty h1 tag in xhtml context"
-);
-
-is(
- html(),
- "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"de\">\n</html>\n",
- "xhtml doctype"
-);
-
-
-# XML generation
-unset($GLOBALS['it_html']);
-new it_html(array('htmltype' => "xml", 'name' => 'it_html', 'tags' => "xmltest", 'error_on_redefine' => false));
-
-is(
- xmltest(),
- "<xmltest />\n",
- "empty xmltest tag"
-);
-
-is(
- xmltest("foo"),
- "<xmltest>foo</xmltest>\n",
- "non-empty xmltest tag"
-);
-
-is(
- xmltest(array('href' => "&foo", 'true' => true, 'false' => false, 'null' => null, 'empty' => "")),
- '<xmltest href="&amp;foo" true="true" empty="" />' . "\n",
- "xmltest tag with attributes"
-);
-
-is(
- h1(),
- "<h1 />\n",
- "empty h1 tag in xml context"
-);
-
-is(
- input(),
- "<input />",
- "empty input tag in xml context"
-);
-
-# Inheriting and extending it_html
-class myhtml extends it_html
-{
-
-function myhtml($p = array())
-{
- parent::__construct($p + ['moretags' => 'overriddentag,defaulttag', 'nonewlinetags' => 'a,b,defaulttag,em,img,input,overriddentag,span,div']);
-}
-
-function myimg($args)
-{
- array_unshift($args, array('alt' => "ALT", 'bar' => "BAR"));
- return parent::img(array_filter(it_parse_args($args)));
-}
-
-function overriddentag($args)
-{
- return parent::overriddentag($args);
-}
-
-}
-
-unset($GLOBALS['it_html']);
-new myhtml(array('htmltype' => "html", 'error_on_redefine' => false));
-
-is(
- myimg(['src' => "foo.gif", 'alt' => "foo"]),
- '<img alt="foo" bar="BAR" src="foo.gif">',
- "it_html inheritance"
-);
-
-is(
- div(array('attr' => 'value'), 'content'),
- '<div attr="value">content</div>',
- "different nonewlinetags respected"
-);
-
-is(
- overriddentag("one ", ['src' => "evil", 'alt' => ""], "two ", ['foo' => "bar"], "three"),
- '<overriddentag src="evil" alt="" foo="bar">one two three</overriddentag>',
- "moretags override"
-);
-
-is(
- defaulttag("one ", ['src' => "evil", 'alt' => ""], "two ", ['foo' => "bar"], "three"),
- '<defaulttag src="evil" alt="" foo="bar">one two three</defaulttag>',
- "moretags default"
-);
-
-is(
- it_html::sanitize(" \r \n " . ' <p><a href="http://www.flickr.com/people/swisspics%/">swisspics</a> posted < &lt; &auml; &amp; yesterday <b>a <i>photo</i></b> <b><i>tag missmatch</b></i>:</p><br><BR />
-
-<P><a href="javascript:window.close()" title="Wolken"><img src="http://farm1.static.flickr.com/177/377214376_bcba167a7d_m.jpg" width="240" height="180" alt="Wolken" style="border: 1px solid #ddd;" /></a></p>
-'),
- ' <a href="http://www.flickr.com/people/swisspics%25/">swisspics</a> posted &lt; &lt; ä &amp; yesterday a <i>photo</i> <i>tag missmatch</i>:<br /><br /> <p><img src="http://farm1.static.flickr.com/177/377214376_bcba167a7d_m.jpg" alt="" /></p> ',
- 'it_html::sanitize tag soup'
-);
-
-is(
- it_html::sanitize('q&#8592;x'),
- "q←x",
- 'it_html::sanitize preserve numeric entities'
-);
-
-is(
- it_html::sanitize('q&uuml;x'),
- "q\xc3\xbcx",
- 'it_html::sanitize with utf-8'
-);
-
-is(
- it_html::sanitize('<b>a<br>b</b>'),
- "<b>a<br />b</b>",
- 'it_html::sanitize with b and br (tag prefix of other tag bug)'
-);
-
-is(
- it_html::sanitize('<div></div>'),
- '',
- 'empty tags removal'
-);
-
-foreach (json_decode(file_get_contents(dirname($argv[0]) . '/U_tests.json'), true) as $test) {
- is(U(...$test['args']), $test['exp'], $test['name']);
-}
-
-is(it_html::entity_decode("&auml;"), "ä");
-is(it_html::entity_decode("&#x4a;"), "J");
-is(it_html::entity_decode("&#x4A;"), "J");
-is(it_html::entity_decode("&#65;"), "A");
-
-# tests for itools extension
-is(table(null), "<table></table>\n", "table() null argument");
-list($data, $attr) = it_parse_args(array(null));
-ok($data === "", "it_parse_args compatiblity: treat null like empty string");
-
-#
-# 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&uuml;x'),
- "q\xfcx",
- 'it_html::sanitize with latin1'
-);
-
-is(
- it_html::sanitize('q&#8592;x'),
- "q&#8592;x",
- 'it_html::sanitize preserve non-decodable numeric entities'
-);
-is(it_html::entity_decode("&#8217;"), "'", "it_html::entity_decode numeric decimal entity");
-is(it_html::entity_decode("&#xfff;"), " ", "it_html::entity_decode invalid numeric hex entity");
-is(it_html::entity_decode("&#999;"), " ", "it_html::entity_decode invalid numeric decimal entity");
-is(it_html::entity_decode("&#x8b;"), " ", "it_html::entity_decode entity von 0x80-0x9f");