summaryrefslogtreecommitdiff
path: root/devel-utf8/tests/it_html.t
diff options
context:
space:
mode:
authorNathan Gass2012-03-22 18:18:42 +0000
committerNathan Gass2012-03-22 18:18:42 +0000
commitd59a4921188753dbe4c0161081755a28112c3ef6 (patch)
tree81496414d988f37f1db9d92c9750d888ffa13746 /devel-utf8/tests/it_html.t
parentca11771e8fad5fef96615df4c44e04b8fb60ac31 (diff)
downloaditools-d59a4921188753dbe4c0161081755a28112c3ef6.tar.gz
itools-d59a4921188753dbe4c0161081755a28112c3ef6.tar.bz2
itools-d59a4921188753dbe4c0161081755a28112c3ef6.zip
Branch itools/devel-utf8 created
Diffstat (limited to 'devel-utf8/tests/it_html.t')
-rwxr-xr-xdevel-utf8/tests/it_html.t159
1 files changed, 159 insertions, 0 deletions
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
+<?php
+
+# Tests for html.class
+
+# Traditional html generation
+new it_html(array('htmltype' => "html"));
+
+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(
+ 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"
+);
+
+# XML generation
+unset($GLOBALS['it_html']);
+new it_html(array('htmltype' => "xhtml", 'tags' => "xmltest"));
+
+is(
+ xmltest(),
+ "<xmltest />\n",
+ "empty xmltest tag"
+);
+
+is(
+ xmltest("foo"),
+ "<xmltest>foo</xmltest>\n",
+ "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"
+);
+
+# 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")),
+ '<img alt="foo" bar="BAR" src="foo.gif">',
+ "it_html inheritance"
+);
+
+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&#8592;x",
+ 'it_html::sanitize preserve numeric entities'
+);
+
+it_html::configure(array('charset' => "utf-8"));
+is(
+ it_html::sanitize('q&uuml;x'),
+ "q\xc3\xbcx",
+ 'it_html::sanitize with utf-8'
+);
+
+it_html::configure(array('charset' => "iso-8859-1"));
+is(
+ it_html::sanitize('q&uuml;x'),
+ "q\xfcx",
+ 'it_html::sanitize with latin1'
+);
+
+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(
+ U("/foo.html", array('bar' => array('gna' => 42, 'qux' => array('quux' => "<Zürich>", '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("&auml;"), "ä");
+is(it_html::entity_decode("&#8217;"), "'");
+is(it_html::entity_decode("&#x4a;"), "J");
+is(it_html::entity_decode("&#x4A;"), "J");
+is(it_html::entity_decode("&#xfff;"), " ");
+is(it_html::entity_decode("&#65;"), "A");
+is(it_html::entity_decode("&#999;"), " ");
+?>