| # Before `make install' is performed this script should be runnable with |
| # `make test'. After `make install' it should work as `perl test.pl' |
| ######################### |
| |
| # change 'tests => 1' to 'tests => last_test_to_print'; |
| |
| sub result { |
| my($i, $state) = @_; |
| if ($state) { |
| print "ok $i\n"; |
| } else { |
| print "ng $i\n"; |
| exit $i; |
| } |
| } |
| |
| sub sortFunc { |
| my($a, $b) = @_; |
| my($va, $vb); |
| |
| $va = $a->objValue(); |
| $vb = $b->objValue(); |
| return $va <=> $vb; |
| } |
| |
| use Test; |
| BEGIN { plan tests => 13 }; |
| use ClearSilver; |
| ok(1); # If we made it this far, we're ok. |
| |
| $testnum = 2; |
| # |
| # test new() |
| # |
| $hdf = ClearSilver::HDF->new(); |
| $hdf ? result($testnum, 1) : result($testnum, 0); |
| $testnum++; |
| |
| # |
| # test reading file |
| # |
| $ret = $hdf->readFile("test.hdf"); |
| $ret ? result($testnum, 1) : result($testnum, 0); |
| $testnum++; |
| |
| # |
| # test getObj() |
| # |
| $lev2_node = $hdf->getObj("TopNode.2nd1"); |
| $lev2_node ? result($testnum, 1) : result($testnum, 0); |
| $testnum++; |
| |
| |
| # |
| # test objName() |
| # |
| $lev2_name = $lev2_node->objName(); |
| ($lev2_name eq "2nd1") ? result($testnum, 1) : result($testnum, 0); |
| $testnum++; |
| |
| # |
| # test objChild() & objValue() |
| # |
| $lev3_node = $lev2_node->objChild(); |
| if (!$lev3_node) { |
| result($testnum, 0); |
| } |
| $val = $lev3_node->objValue(); |
| ($val eq "value1") ? result($testnum, 1) : result($testnum, 0); |
| $testnum++; |
| |
| # |
| # test objNext() |
| # |
| $next_node = $lev3_node->objNext(); |
| if (!$lev3_node) { |
| result($testnum, 0); |
| } |
| $nam = $next_node->objName(); |
| ($nam eq "Entry2") ? result($testnum, 1) : result($testnum, 0); |
| $testnum++; |
| |
| # |
| # test getChild() |
| # |
| $lev2_node = $hdf->getChild("TopNode.2nd1"); |
| $lev2_node ? result($testnum, 1) : result($testnum, 0); |
| $testnum++; |
| |
| # |
| # test setValue() & getValue() |
| # |
| $hdf->setValue("Data.1", "Value1"); |
| $str = $hdf->getValue("Data.1", "default"); |
| ($str eq "Value1") ? result($testnum, 1) : result($testnum, 0); |
| $testnum++; |
| |
| $str = $hdf->getValue("Data.2", "default"); # doesn't exist |
| ($str eq "default") ? result($testnum, 1) : result($testnum, 0); |
| $testnum++; |
| |
| # |
| # test copy tree |
| # |
| $copy = ClearSilver::HDF->new(); |
| $ret = $copy->copy("", $hdf); |
| $ret ? result($testnum, 0) : result($testnum, 1); |
| $testnum++; |
| $str = $copy->getValue("Data.1", "default"); |
| print $str |
| ($str eq "Value1") ? result($testnum, 1) : result($testnum, 0); |
| $testnum++; |
| |
| # |
| # test setSymlink() |
| # |
| $ret = $copy->setSymlink( "BottomNode" ,"TopNode"); |
| $ret ? result($testnum, 1) : result($testnum, 0); |
| $testnum++; |
| $tmp = $copy->getObj("BottomNode.2nd1"); |
| $tmp ? result($testnum, 1) : result($testnum, 0); |
| $testnum++; |
| |
| # |
| # test removeTree() |
| # |
| $ret = $copy->removeTree("TopNode"); |
| $ret ? result($testnum, 1) : result($testnum, 0); |
| $testnum++; |
| $tmp = $copy->getObj("TopNode.2nd1"); |
| $tmp ? result($testnum, 0) : result($testnum, 1); |
| $testnum++; |
| |
| # |
| # test sortObj() |
| # |
| $sort_top = $hdf->getObj("Sort.Data"); |
| $sort_top->sortObj("sortFunc"); |
| $child = $sort_top->objChild(); |
| $name = $child->objName(); |
| ($name eq "entry3") ? result($testnum, 1) : result($testnum, 0); |
| $testnum++; |
| |
| |
| # |
| # test CS |
| # |
| $cs = ClearSilver::CS->new($hdf); |
| $cs ? result($testnum, 1) : result($testnum, 0); |
| $testnum++; |
| |
| # |
| # parseString() and render() |
| # |
| $ret = $cs->parseString("<?cs var:TopNode.2nd1.Entry3 ?>"); |
| if (!$ret) { |
| result($testnum, 0); |
| } |
| $ret = $cs->render(); |
| ($ret eq "value3") ? result($testnum, 1) : result($testnum, 0); |
| $testnum++; |
| |
| # |
| # parseFile() |
| # |
| $ret = $cs->parseFile("test.cs"); |
| if (!$ret) { |
| result($testnum, 0); |
| } |
| $ret = $cs->render(); |
| open(FH, "> test.out"); |
| print FH $ret; |
| close(FH); |
| $ret = system("diff test.gold test.out > /dev/null"); |
| $ret ? result($testnum, 0) : result($testnum, 1); |
| |
| |