#!/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++;
}
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>