Automatisierte Syntaxtests, Framework für spätere Modultests.
[kivitendo-erp.git] / t / 006spellcheck.t
1 # -*- Mode: perl; indent-tabs-mode: nil -*-
2 #
3 # The contents of this file are subject to the Mozilla Public
4 # License Version 1.1 (the "License"); you may not use this file
5 # except in compliance with the License. You may obtain a copy of
6 # the License at http://www.mozilla.org/MPL/
7 #
8 # Software distributed under the License is distributed on an "AS
9 # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
10 # implied. See the License for the specific language governing
11 # rights and limitations under the License.
12 #
13 # The Original Code are the Bugzilla Tests.
14 #
15 # The Initial Developer of the Original Code is Zach Lipton
16 # Portions created by Zach Lipton are
17 # Copyright (C) 2002 Zach Lipton.  All
18 # Rights Reserved.
19 #
20 # Contributor(s): Zach Lipton <zach@zachlipton.com>
21
22
23 #################
24 #Bugzilla Test 6#
25 ####Spelling#####
26
27 use lib 't';
28 use Support::Files;
29
30 BEGIN { # yes the indenting is off, deal with it
31 #add the words to check here:
32 @evilwords = qw(
33 anyways
34 arbitary
35 databasa
36 dependan
37 existance
38 existant
39 paramater
40 varsion
41 fomr
42 );
43
44 $testcount = scalar(@Support::Files::testitems);
45 }
46
47 use Test::More tests => $testcount;
48
49 # Capture the TESTOUT from Test::More or Test::Builder for printing errors.
50 # This will handle verbosity for us automatically.
51 my $fh;
52 {
53     local $^W = 0;  # Don't complain about non-existent filehandles
54     if (-e \*Test::More::TESTOUT) {
55         $fh = \*Test::More::TESTOUT;
56     } elsif (-e \*Test::Builder::TESTOUT) {
57         $fh = \*Test::Builder::TESTOUT;
58     } else {
59         $fh = \*STDOUT;
60     }
61 }
62
63 my @testitems = @Support::Files::testitems;
64
65 # at last, here we actually run the test...
66 my $evilwordsregexp = join('|', @evilwords);
67
68 foreach my $file (@testitems) {
69     $file =~ s/\s.*$//; # nuke everything after the first space (#comment)
70     next if (!$file); # skip null entries
71
72     if (open (FILE, $file)) { # open the file for reading
73
74         my $found_word = '';
75
76         while (my $file_line = <FILE>) { # and go through the file line by line
77             if ($file_line =~ /($evilwordsregexp)/i) { # found an evil word
78                 $found_word = $1;
79                 last;
80             }
81         }
82
83         close (FILE);
84
85         if ($found_word) {
86             ok(0,"$file: found SPELLING ERROR $found_word --WARNING");
87         } else {
88             ok(1,"$file does not contain registered spelling errors");
89         }
90     } else {
91         ok(0,"could not open $file for spellcheck --WARNING");
92     }
93 }
94
95 exit 0;