<?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) ; 
    } 
 
} 
 
?>
 
 |