<?php
require_once ('lib/simpletest/unit_tester.php');
require_once ('html/HtmlLink.inc') ;
require_once ('html/HtmlList.inc') ;
require_once ('html/HtmlImage.inc') ;
require_once ('html/HtmlJavaScript.inc') ;
require_once ('html/HtmlBlock.inc') ;
require_once ('html/HtmlTabControl.inc') ;
require_once ('html/HtmlAligner.inc') ;
class HtmlTests extends UnitTestCase {
const TEST_PATH = "junit/data/" ;
public function testLink () {
$t = new HtmlLink () ;
$r = $t->build() ;
//print_r (htmlentities ($r)) ; echo "<hr>" ;
$this->assertEqual ($r, "<a></a>") ;
$t->setHREF ("www.IronMaiden.com") ;
$t->setName ("iron maiden") ;
$r = $t->build() ;
//print_r (htmlentities ($r)) ; echo "<hr>" ;
$this->assertEqual ($r, "<a href=\"http://www.IronMaiden.com\" name=\"iron maiden\" ></a>") ;
$t = new HtmlLink ("http://www.marillion.com") ;
$r = $t->build() ;
//print_r (htmlentities ($r)) ; echo "<hr>" ;
$this->assertEqual ($r, "<a href=\"http://www.marillion.com\" ></a>") ;
$t = new HtmlLink ("http://www.marillion.com", "Marillion website") ;
$t->setOnClick ("on_click") ;
$r = $t->build() ;
//print_r (htmlentities ($r)) ; echo "<hr>" ;
$this->assertEqual ($r, "<a href=\"http://www.marillion.com\" onclick=\"on_click\" >Marillion website</a>") ;
echo "<hr>$r<hr>";
$t = new HtmlLink ('#', 'geen link') ;
$t->openInNewWindow();
$r = $t->build() ;
$this->assertNull ($r) ;
}
public function testOrderedLists () {
$t = new HtmlOrderedList () ;
$r = $t->build () ;
//print_r (htmlentities ($r)) ; echo "<hr>" ;
$this->assertEqual ($r, "") ;
$t->addData("eerste item") ;
$t->addData("tweede item") ;
$t->addData(new HtmlLink ("www.ironmaiden.com", "Iron Maiden")) ;
$r = $t->build() ;
//print_r (htmlentities ($r)) ; echo "<hr>" ;
$this->assertEqual($r, "<ol>\n<li>eerste item</li>\n<li>tweede item</li>\n<li><a href=\"http://www.ironmaiden.com\" >Iron Maiden</a></li></ol>\n") ;
echo "<hr>$r<hr>";
}
public function testUnorderedLists () {
$t = new HtmlUnorderedList () ;
$r = $t->build () ;
//print_r (htmlentities ($r)) ; echo "<hr>" ;
$this->assertEqual ($r, "") ;
$t->setData (2, "tweede item") ;
$t->setData (1, "eerste item") ;
$t->setData (0, new HtmlImage ("/junit/data/good_avatar.jpg", "test image")) ;
$r = $t->build () ;
$r = str_replace ("\n", "", $r) ;
//print_r (htmlentities ($r)) ; echo "<hr>" ;
$this->assertEqual($r, "<ul><li><img src=\"/junit/data/good_avatar.jpg\" alt=\"test image\" /></li><li>eerste item</li><li>tweede item</li></ul>") ;
echo "<hr>$r<hr>";
}
public function testImage () {
$t = new HtmlImage () ;
$r = $t->build () ;
//print_r (htmlentities ($r)) ; echo "<hr>" ;
$this->assertEqual ($r, "<img/>") ;
$t->setSRC ("image.jpg") ;
$t->setAlt ("een voor-beeld") ;
$t->setWidth (100) ;
$t->setHeight (200) ;
$t->setAlign (HTML_RIGHT) ;
$t->setBorder (0) ;
$r = $t->build () ;
$r = str_replace ("\n", "", $r) ;
//print_r (htmlentities ($r)) ; echo "<hr>" ;
$this->assertEqual ($r, "<img src=\"image.jpg\" alt=\"een voor-beeld\" width=\"100\" height=\"200\" align=\"right\" border=\"0\" />") ;
// check first if our test-file exists...
if (file_exists(HtmlTests::TEST_PATH . "jan.jpg")) {
$t = new HtmlImage () ;
$t->setImage (HtmlTests::TEST_PATH . "jan.jpg") ;
$r = $t->build () ;
//print_r (htmlentities ($r)) ; echo "<hr>" ;
$this->assertEqual ($r, "<img src=\"junit/data/jan.jpg\" width=\"120\" height=\"79\" />") ;
echo "<hr>$r<hr>";
}
}
public function testJavaScript () {
$t = new HtmlJavaScript ("java", "non-java") ;
$r = $t->build() ;
$r = str_replace ("\n", "", $r) ;
//print_r (htmlentities($r)) ; echo "<hr>" ;
$this->assertEqual ($r, "<script language=\"JavaScript\" type=\"text/javascript\"><!--document.writeln ('java');--></script><noscript>non-java</noscript>") ;
$t = new HtmlJavaScript (new HtmlImage(), new HtmlLink ("test", "test")) ;
$r = $t->build() ;
$r = str_replace ("\n", "", $r) ;
//print_r (htmlentities($r)) ; echo "<hr>" ;
$this->assertEqual ($r, "<script language=\"JavaScript\" type=\"text/javascript\"><!--document.writeln ('<img\/>');--></script><noscript><a href=\"http://test\" >test</a></noscript>") ;
$t = new HtmlJavaScript ("java", NULL) ;
$t->setRaw() ;
$r = $t->build() ;
$r = str_replace ("\n", "", $r) ;
//print_r (htmlentities($r)) ; echo "<hr>" ;
$this->assertEqual ($r, "<script language=\"JavaScript\" type=\"text/javascript\"><!--java--></script><noscript></noscript>") ;
$t = new HtmlJavaScript ("java", NULL) ;
$r = $t->build() ;
$r = str_replace ("\n", "", $r) ;
print_r (htmlentities($r)) ; echo "<hr>" ;
}
public function testHtmlBlock () {
$t = new HtmlBlock () ;
$r = $t->build() ;
$r = str_replace ("\n", "", $r) ;
//print_r (htmlentities($r)) ; echo "<hr>" ;
$this->assertEqual ($r, "<div></div>") ;
$t = new HtmlBlock ("mijn tekst", "my_class", false) ;
$r = $t->build() ;
$r = str_replace ("\n", "", $r) ;
//print_r (htmlentities($r)) ; echo "<hr>" ;
//print_array (str_split ($r)) ;
$this->assertEqual ($r, "<span class=\"my_class\" >mijn tekst</span>") ;
$t = new HtmlBlock () ;
$t->addData ("een") ;
$t->addData (new HtmlImage()) ;
$r = $t->build() ;
$r = str_replace ("\n", "", $r) ;
//print_r (htmlentities($r)) ; echo "<hr>" ;
$this->assertEqual ($r, "<div>een<img/></div>") ;
$t = new HtmlBlock (NULL, '#mystyle') ;
$t->addData ("een") ;
$r = $t->build() ;
$r = str_replace ("\n", "", $r) ;
//print_r (htmlentities($r)) ; echo "<hr>" ;
$this->assertEqual ($r, "<div style=\"mystyle\" >een</div>") ;
}
// public function testHtmlMarker () {
// $t = new HtmlMarker ('test') ;
// $r = $t->build() ;
// //print_r (htmlentities ($r)) ;
// $this->assertEqual ($r, '<!-- test -->') ;
//
// $t = new HtmlMarker () ;
// $t->addData ('test=1') ;
// $t->addData ('karma=10') ;
// $r = $t->build() ;
// //print_r (htmlentities ($r)) ;
// $this->assertEqual ($r, '<!-- test=1,karma=10 -->') ;
// }
public function testSetHREF () {
$e = new HtmlElement () ;
$t = $e->setHREF ("www.ironmaiden.com") ;
$this->assertEqual ($t, "http://www.ironmaiden.com") ;
$t = $e->setHREF ("HttP://www.ironmaiden.com") ;
$this->assertEqual ($t, "HttP://www.ironmaiden.com") ;
$t = $e->setHREF ("#") ;
$this->assertEqual ($t, "#") ;
$t = $e->setHREF ("javascript:blabla") ;
$this->assertEqual ($t, "javascript:blabla") ;
$t = $e->setHREF ("") ;
$this->assertEqual ($t, "") ;
}
public function testQuote () {
$s = 'ja"n' ;
$t = HtmlElement::quote ($s) ;
$this->assertEqual ($t, 'ja"n') ;
}
public function testHtmlTabControl () {
$d = new HtmlDocument ('test') ;
$t = new HtmlTabControl ($d, 'skins/default/') ;
$t->addTab ('een.html' , 'een') ;
$t->addTab ('twee.html', 'twee') ;
$t->addTab ('drie.html', 'drie') ;
$t->setActive(1) ;
$d->setBody ($t) ;
$s = $d->build() ;
$this->assertPattern ('/navlist.css/', $s) ;
$this->assertPattern ('/een.html/' , $s) ;
$this->assertPattern ('/twee.html/', $s) ;
$this->assertPattern ('/drie.html/', $s) ;
$this->assertPattern ('/>een</' , $s) ;
$this->assertPattern ('/>twee</', $s) ;
$this->assertPattern ('/>drie</', $s) ;
$this->assertPattern ('/active/', $s) ;
$this->assertPattern ('/current/', $s) ;
echo $s ;
}
public function testHorizontalAligner () {
$t1 = new HtmlCheckBox('Een test', 'test') ;
$t2 = new HtmlLabel('Een label', 'test') ;
$t = horizontalAlign ($t1, $t2) ;
//echo(htmlentities($t)."<br>");
$t = ereg_replace("[ \n\r]", '', $t) ;
$expect = str_replace(' ', '', '<table><tr><td></td><td><input name="test" value="Een test" type="checkbox" id="test" /></td><td><label for="test">Een label</label> </td></tr></table>') ;
$this->assertEqual ($t, $expect) ;
}
}
?>
|