Annotation of loncom/cfgedittests/delete.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:
! 28: # Test new functionality of ConfigFileEditor::delete
! 29: #
! 30:
! 31: use strict;
! 32: use Test;
! 33: use ConfigFileEdit;
! 34:
! 35:
! 36: #
! 37: # Tests we plan are:
! 38: # Delete a line from the middle of the test file
! 39: # with a pile of consistency test.
! 40: # Delete a line from the end of the test file
! 41: # with a pile of consistency tests.
! 42: # NOTE: deleting from the beginning is the same as
! 43: # from the middle.
! 44: #
! 45:
! 46: BEGIN {plan tests => 6}
! 47:
! 48: #
! 49: # Test deletion of middle element.
! 50: # - Use the test file test2config.cfg
! 51: # - Delete the line with key line2
! 52: # - Total number of lines should go down by 1.
! 53: # - line1 - index should not change.
! 54: # - last - index should go down by 1.
! 55: sub TestDeleteMiddle {
! 56:
! 57: my $editor = ConfigFileEdit->new("test2config.cfg", 0);
! 58:
! 59: my $linecount = $editor->LineCount();
! 60: $editor->DeleteLine("line2");
! 61: ok($editor->LineCount(), $linecount-1);
! 62:
! 63: my $hashref = $editor->{KeyToLines};
! 64: ok($hashref->{"line1"}, 0);
! 65:
! 66: ok($hashref->{"last"}, $editor->LineCount()-1);
! 67: }
! 68:
! 69: #
! 70: # Test deletion of last element:
! 71: # - Use the test file test2config.cfg
! 72: # - Delete the line with key "last" (last line).
! 73: # - # lines should go down by 1.
! 74: # - line1 index should not change.
! 75: # - line2 index should not change.
! 76: sub TestDeleteEnd {
! 77: my $editor = ConfigFileEdit->new("test2config.cfg", 0);
! 78: my $linecount = $editor->LineCount();
! 79: my $hashref = $editor->{KeyToLines};
! 80: my $line1idx = $hashref->{"line1"};
! 81: my $line2idx = $hashref->{"line2"};
! 82:
! 83: $editor->DeleteLine("last");
! 84:
! 85: ok($editor->LineCount(), $linecount-1);
! 86: $hashref = $editor->{KeyToLines}; # Hash may change due to reindex!!
! 87: ok($hashref->{"line1"}, $line1idx);
! 88: ok($hashref->{"line2"}, $line2idx);
! 89:
! 90: }
! 91:
! 92: TestDeleteMiddle;
! 93: TestDeleteEnd;
! 94:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>