#!/usr/bin/perl # The LearningOnline Network with CAPA # Generating TeX tables. # # $Id: lontable.test,v 1.1 2008/12/02 11:57:25 foxr Exp $ # # # Copyright Michigan State University Board of Trustees # # This file is part of the LearningOnline Network with CAPA (LON-CAPA). # # LON-CAPA is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # LON-CAPA is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with LON-CAPA; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # /home/httpd/html/adm/gpl.txt # # http://www.lon-capa.org/ ## Copyright for TtHfunc and TtMfunc by Ian Hutchinson. # TtHfunc and TtMfunc (the "Code") may be compiled and linked into # binary executable programs or libraries distributed by the # Michigan State University (the "Licensee"), but any binaries so # distributed are hereby licensed only for use in the context # of a program or computational system for which the Licensee is the # primary author or distributor, and which performs substantial # additional tasks beyond the translation of (La)TeX into HTML. # The C source of the Code may not be distributed by the Licensee # to any other parties under any circumstances. # # A TEST SUITE??? You've got to be kidding!!! LonCAPA don't have no # TEST SUITEs!!! # # Well lontable does and this is it. The test suite ensures that # the lontable.pm module is able to create the data structures it # purports to create. The suite also ensures that the correct # information is passed ot the LaTeX::Table class at generate # time. # use strict; use lontable; use Test::More tests=>18; #------------------- Default Construction tests: --------------------------------- # Tests the getter forms of the configuration methods too: my $testobject = new Apache::lontable(); ok(($testobject->alignment() eq 'left'), "Default Construction - Correct alignment"); ok(($testobject->table_border() == 0), "Default Construction - Correct table border"); ok(($testobject->cell_border() == 0), "Default Construction - Correct cell border"); ok(($testobject->caption() eq ''), "Default Construction - Correct caption"); ok(($testobject->theme() eq "Zurich"), "Default Construction - Correct theme"); ok(($testobject->get_object_attribute('column_count') == 0), "Default Construction - zero columncount"); ok((!$testobject->get_object_attribute('row_open')), "Default Construction - Row not open"); my $rows = $testobject->get_object_attribute('rows'); ok((scalar(@$rows) == 0), 'Default Construction - empty row array'); #--------------- Configured construction tests ----------------------------------- # my $testobject = new Apache::lontable({alignment => 'right', outer_border => 1, inner_border => 1, caption => 'Test caption', theme => 'Houston'}); ok($testobject->alignment() eq 'right', 'Configured Construction - Correct alignment'); ok($testobject->table_border() == 1, 'Configured Construction - correct border'); ok($testobject->cell_border() == 1, 'Configured Construction - correct cell border'); ok($testobject->caption eq 'Test caption', 'Configured Construction - Correct caption'); ok($testobject->theme() eq 'Houston', 'Confiugred construction - correct theme'); #-------------- Test global configuration setters ---------------------------- # Each test starts with a fresh object: # Table of methods to test... my @configmethods = ('alignment', 'table_border', 'cell_border', 'caption', 'theme'); # Table of parameters for each method and expected results from the getter my @values = ('center', '1', '1', "Testing", 'Miami'); my $i = 0; foreach my $method (@configmethods) { $testobject = new Apache::lontable(); $testobject->$method($values[$i]); ok($testobject->$method() eq $values[$i], "Global Config: Testing $method as a setter"); $i++; }