Annotation of loncom/cfgedittests/append.t, revision 1.1

1.1     ! foxr        1: #
        !             2: # $Id: gplheader.pl,v 1.1 2001/11/29 18:19:27 www Exp $
        !             3: #
        !             4: # Copyright Michigan State University Board of Trustees
        !             5: #
        !             6: # This file is part of the LearningOnline Network with CAPA (LON-CAPA).
        !             7: #
        !             8: # LON-CAPA is free software; you can redistribute it and/or modify
        !             9: # it under the terms of the GNU General Public License as published by
        !            10: # the Free Software Foundation; either version 2 of the License, or
        !            11: # (at your option) any later version.
        !            12: #
        !            13: # LON-CAPA is distributed in the hope that it will be useful,
        !            14: # but WITHOUT ANY WARRANTY; without even the implied warranty of
        !            15: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        !            16: # GNU General Public License for more details.
        !            17: #
        !            18: # You should have received a copy of the GNU General Public License
        !            19: # along with LON-CAPA; if not, write to the Free Software
        !            20: # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        !            21: #
        !            22: # /home/httpd/html/adm/gpl.txt
        !            23: #
        !            24: # http://www.lon-capa.org/
        !            25: #
        !            26: 
        !            27: use strict;
        !            28: use Test;
        !            29: use ConfigFileEdit;
        !            30: 
        !            31: 
        !            32: #
        !            33: #   Test the ability to append an item to the list.
        !            34: #   Tests we plan are:
        !            35: #      Append item and check that:
        !            36: #      1)   The count of items is incremented by 1.
        !            37: #      2)   The last item is the one we added.
        !            38: #      3)   Append comment ensure that size of index is not
        !            39: #           increased.
        !            40: #
        !            41: BEGIN {plan tests=>3}
        !            42: 
        !            43: #
        !            44: #   Test that after an append, the count of items is increased by one.
        !            45: 
        !            46: sub TestAppendCount {
        !            47:     my $editor        = ConfigFileEdit->new("testconfig.cfg", 0);
        !            48:     my $editorlines   = ($editor->{LineArray});
        !            49:     my $initiallength = @$editorlines;
        !            50:  
        !            51:     $editor->Append("onemore:line:added:at:end");
        !            52: 
        !            53:     $editorlines      = ($editor->{LineArray});
        !            54:     my $finallength   = @$editorlines;
        !            55: 
        !            56:     ok($initiallength+1, $finallength);
        !            57: }
        !            58: #
        !            59: #   Test that after an append the new item has an index that is last.
        !            60: #
        !            61: sub TestAppendIsLast
        !            62: {
        !            63:     my $editor       = ConfigFileEdit->new("testconfig.cfg", 0);
        !            64:     $editor->Append("onemore:line:added:at:end");
        !            65: 
        !            66:     my $editorlines  = ($editor->{LineArray});
        !            67:     my $finallength  = @$editorlines;
        !            68:     
        !            69:     my $editorhash   = ($editor->{KeyToLines});
        !            70:     my $linenum      = $editorhash->{"onemore"};
        !            71: 
        !            72:     ok($finallength - 1, $linenum); # New line is last line.
        !            73:     
        !            74: }
        !            75: #
        !            76: #   Test that append comment does not add to the index hash.
        !            77: #
        !            78: sub TestCommentAppend {
        !            79:     my $editor           = ConfigFileEdit->new("testconfig.cfg", 0);
        !            80: 
        !            81:     # Figure out how many keys we have now.
        !            82: 
        !            83:     my $editorhash       = ($editor->{KeyToLines});
        !            84:     my @hashkeys         = keys %$editorhash;
        !            85:     my $initialcount     = @hashkeys;
        !            86: 
        !            87:     #  Append a comment and figure out how many keys we have:
        !            88: 
        !            89:     $editor->Append("#   This is clearly a comment line");
        !            90:     $editorhash         = ($editor->{KeyToLines});
        !            91:     @hashkeys           = keys %$editorhash;
        !            92: 
        !            93:     my $finalcount      = @hashkeys;
        !            94: 
        !            95:     ok($initialcount, $finalcount);
        !            96: }
        !            97: 
        !            98: TestAppendCount;
        !            99: TestAppendIsLast;
        !           100: TestCommentAppend

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