File:  [LON-CAPA] / loncom / xml / lontable.test
Revision 1.1: download - view: text, annotated - select for diffs
Tue Dec 2 11:57:25 2008 UTC (15 years, 7 months ago) by foxr
Branches: MAIN
CVS tags: HEAD
- Start writing tests for lontable.
- Fix some errors in lontable that the tests written so far pointed out.

    1: #!/usr/bin/perl
    2: 
    3: # The LearningOnline Network with CAPA
    4: #  Generating TeX tables.
    5: #
    6: # $Id: lontable.test,v 1.1 2008/12/02 11:57:25 foxr Exp $
    7: # 
    8: #
    9: # Copyright Michigan State University Board of Trustees
   10: #
   11: # This file is part of the LearningOnline Network with CAPA (LON-CAPA).
   12: #
   13: # LON-CAPA is free software; you can redistribute it and/or modify
   14: # it under the terms of the GNU General Public License as published by
   15: # the Free Software Foundation; either version 2 of the License, or
   16: # (at your option) any later version.
   17: #
   18: # LON-CAPA is distributed in the hope that it will be useful,
   19: # but WITHOUT ANY WARRANTY; without even the implied warranty of
   20: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   21: # GNU General Public License for more details.
   22: #
   23: # You should have received a copy of the GNU General Public License
   24: # along with LON-CAPA; if not, write to the Free Software
   25: # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
   26: #
   27: # /home/httpd/html/adm/gpl.txt
   28: #
   29: # http://www.lon-capa.org/
   30: ## Copyright for TtHfunc and TtMfunc by Ian Hutchinson. 
   31: # TtHfunc and TtMfunc (the "Code") may be compiled and linked into 
   32: # binary executable programs or libraries distributed by the 
   33: # Michigan State University (the "Licensee"), but any binaries so 
   34: # distributed are hereby licensed only for use in the context
   35: # of a program or computational system for which the Licensee is the 
   36: # primary author or distributor, and which performs substantial 
   37: # additional tasks beyond the translation of (La)TeX into HTML.
   38: # The C source of the Code may not be distributed by the Licensee
   39: # to any other parties under any circumstances.
   40: #
   41: 
   42: 
   43: # A TEST SUITE??? You've got to be kidding!!! LonCAPA don't have no
   44: # TEST SUITEs!!!
   45: #
   46: # Well lontable does and this is it.  The test suite ensures that
   47: # the lontable.pm module is able to create the data structures it
   48: # purports to create.  The suite also ensures that the correct
   49: # information is passed ot the LaTeX::Table class at generate
   50: # time.
   51: #
   52: 
   53: use strict;
   54: use lontable;
   55: use Test::More tests=>18;
   56: 
   57: #------------------- Default Construction tests: ---------------------------------
   58: #  Tests the getter forms of the configuration methods too:
   59: 
   60: my $testobject = new Apache::lontable();
   61: ok(($testobject->alignment() eq 'left'), "Default Construction - Correct alignment");
   62: ok(($testobject->table_border() == 0),   "Default Construction - Correct table border");
   63: ok(($testobject->cell_border()  == 0),   "Default Construction - Correct cell border");
   64: ok(($testobject->caption()  eq ''),      "Default Construction - Correct caption");
   65: ok(($testobject->theme() eq "Zurich"),   "Default Construction - Correct theme");
   66: ok(($testobject->get_object_attribute('column_count') == 0),
   67:                                          "Default Construction - zero columncount");
   68: ok((!$testobject->get_object_attribute('row_open')), 
   69:                                          "Default Construction - Row not open");
   70: my $rows = $testobject->get_object_attribute('rows');
   71: ok((scalar(@$rows) == 0),                'Default Construction - empty row array');
   72: 
   73: 
   74: #--------------- Configured construction tests -----------------------------------
   75: #
   76: 
   77: my $testobject = new Apache::lontable({alignment    => 'right',
   78: 				       outer_border => 1,
   79: 				       inner_border => 1,
   80: 				       caption      => 'Test caption',
   81: 				       theme        => 'Houston'});
   82: ok($testobject->alignment() eq 'right',  'Configured Construction - Correct alignment');
   83: ok($testobject->table_border() == 1,     'Configured Construction - correct border');
   84: ok($testobject->cell_border() == 1,      'Configured Construction - correct cell border');
   85: ok($testobject->caption eq 'Test caption', 'Configured Construction - Correct caption');
   86: ok($testobject->theme() eq 'Houston',    'Confiugred construction - correct theme');
   87: 
   88: 
   89: #-------------- Test global configuration setters ----------------------------
   90: 
   91: # Each test starts with a fresh object:
   92: 
   93: # Table of methods to test...
   94: 
   95: my @configmethods = ('alignment', 'table_border', 'cell_border', 'caption', 'theme');
   96: 
   97: # Table of parameters for each method and expected results from the getter
   98: 
   99: my @values        = ('center', '1', '1', "Testing", 'Miami');
  100: my $i = 0;
  101: foreach my $method (@configmethods) {
  102:     $testobject = new Apache::lontable();
  103:     $testobject->$method($values[$i]);
  104:     ok($testobject->$method() eq $values[$i], "Global Config: Testing $method as a setter");
  105:     $i++;
  106: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>