1 # Before `make install' is performed this script should be runnable with 2 # `make test'. After `make install' it should work as `perl test.pl' 3 ######################### 4 5 # change 'tests => 1' to 'tests => last_test_to_print'; 6 7 sub result { 8 my($i, $state) = @_; 9 if ($state) { 10 print "ok $i\n"; 11 } else { 12 print "ng $i\n"; 13 exit $i; 14 } 15 } 16 17 sub sortFunc { 18 my($a, $b) = @_; 19 my($va, $vb); 20 21 $va = $a->objValue(); 22 $vb = $b->objValue(); 23 return $va <=> $vb; 24 } 25 26 use Test; 27 BEGIN { plan tests => 13 }; 28 use ClearSilver; 29 ok(1); # If we made it this far, we're ok. 30 31 $testnum = 2; 32 # 33 # test new() 34 # 35 $hdf = ClearSilver::HDF->new(); 36 $hdf ? result($testnum, 1) : result($testnum, 0); 37 $testnum++; 38 39 # 40 # test reading file 41 # 42 $ret = $hdf->readFile("test.hdf"); 43 $ret ? result($testnum, 1) : result($testnum, 0); 44 $testnum++; 45 46 # 47 # test getObj() 48 # 49 $lev2_node = $hdf->getObj("TopNode.2nd1"); 50 $lev2_node ? result($testnum, 1) : result($testnum, 0); 51 $testnum++; 52 53 54 # 55 # test objName() 56 # 57 $lev2_name = $lev2_node->objName(); 58 ($lev2_name eq "2nd1") ? result($testnum, 1) : result($testnum, 0); 59 $testnum++; 60 61 # 62 # test objChild() & objValue() 63 # 64 $lev3_node = $lev2_node->objChild(); 65 if (!$lev3_node) { 66 result($testnum, 0); 67 } 68 $val = $lev3_node->objValue(); 69 ($val eq "value1") ? result($testnum, 1) : result($testnum, 0); 70 $testnum++; 71 72 # 73 # test objNext() 74 # 75 $next_node = $lev3_node->objNext(); 76 if (!$lev3_node) { 77 result($testnum, 0); 78 } 79 $nam = $next_node->objName(); 80 ($nam eq "Entry2") ? result($testnum, 1) : result($testnum, 0); 81 $testnum++; 82 83 # 84 # test getChild() 85 # 86 $lev2_node = $hdf->getChild("TopNode.2nd1"); 87 $lev2_node ? result($testnum, 1) : result($testnum, 0); 88 $testnum++; 89 90 # 91 # test setValue() & getValue() 92 # 93 $hdf->setValue("Data.1", "Value1"); 94 $str = $hdf->getValue("Data.1", "default"); 95 ($str eq "Value1") ? result($testnum, 1) : result($testnum, 0); 96 $testnum++; 97 98 $str = $hdf->getValue("Data.2", "default"); # doesn't exist 99 ($str eq "default") ? result($testnum, 1) : result($testnum, 0); 100 $testnum++; 101 102 # 103 # test copy tree 104 # 105 $copy = ClearSilver::HDF->new(); 106 $ret = $copy->copy("", $hdf); 107 $ret ? result($testnum, 0) : result($testnum, 1); 108 $testnum++; 109 $str = $copy->getValue("Data.1", "default"); 110 print $str 111 ($str eq "Value1") ? result($testnum, 1) : result($testnum, 0); 112 $testnum++; 113 114 # 115 # test setSymlink() 116 # 117 $ret = $copy->setSymlink( "BottomNode" ,"TopNode"); 118 $ret ? result($testnum, 1) : result($testnum, 0); 119 $testnum++; 120 $tmp = $copy->getObj("BottomNode.2nd1"); 121 $tmp ? result($testnum, 1) : result($testnum, 0); 122 $testnum++; 123 124 # 125 # test removeTree() 126 # 127 $ret = $copy->removeTree("TopNode"); 128 $ret ? result($testnum, 1) : result($testnum, 0); 129 $testnum++; 130 $tmp = $copy->getObj("TopNode.2nd1"); 131 $tmp ? result($testnum, 0) : result($testnum, 1); 132 $testnum++; 133 134 # 135 # test sortObj() 136 # 137 $sort_top = $hdf->getObj("Sort.Data"); 138 $sort_top->sortObj("sortFunc"); 139 $child = $sort_top->objChild(); 140 $name = $child->objName(); 141 ($name eq "entry3") ? result($testnum, 1) : result($testnum, 0); 142 $testnum++; 143 144 145 # 146 # test CS 147 # 148 $cs = ClearSilver::CS->new($hdf); 149 $cs ? result($testnum, 1) : result($testnum, 0); 150 $testnum++; 151 152 # 153 # parseString() and render() 154 # 155 $ret = $cs->parseString("<?cs var:TopNode.2nd1.Entry3 ?>"); 156 if (!$ret) { 157 result($testnum, 0); 158 } 159 $ret = $cs->render(); 160 ($ret eq "value3") ? result($testnum, 1) : result($testnum, 0); 161 $testnum++; 162 163 # 164 # parseFile() 165 # 166 $ret = $cs->parseFile("test.cs"); 167 if (!$ret) { 168 result($testnum, 0); 169 } 170 $ret = $cs->render(); 171 open(FH, "> test.out"); 172 print FH $ret; 173 close(FH); 174 $ret = system("diff test.gold test.out > /dev/null"); 175 $ret ? result($testnum, 0) : result($testnum, 1); 176 177 178