Spellchecks
[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 custemer
36 databasa
37 dependan
38 existance
39 existant
40 paramater
41 varsion
42 fomr
43 puhs
44 invoce
45 CONTANTS
46 puchase
47 );
48
49 $testcount = scalar(@Support::Files::testitems);
50 }
51
52 use Test::More tests => $testcount;
53
54 # Capture the TESTOUT from Test::More or Test::Builder for printing errors.
55 # This will handle verbosity for us automatically.
56 my $fh;
57 {
58     local $^W = 0;  # Don't complain about non-existent filehandles
59     if (-e \*Test::More::TESTOUT) {
60         $fh = \*Test::More::TESTOUT;
61     } elsif (-e \*Test::Builder::TESTOUT) {
62         $fh = \*Test::Builder::TESTOUT;
63     } else {
64         $fh = \*STDOUT;
65     }
66 }
67
68 my @testitems = @Support::Files::testitems;
69
70 # at last, here we actually run the test...
71 my $evilwordsregexp = join('|', @evilwords);
72
73 foreach my $file (@testitems) {
74     $file =~ s/\s.*$//; # nuke everything after the first space (#comment)
75     next if (!$file); # skip null entries
76
77     if (open (FILE, $file)) { # open the file for reading
78
79         my $found_word = '';
80
81         while (my $file_line = <FILE>) { # and go through the file line by line
82             if ($file_line =~ /($evilwordsregexp)/i) { # found an evil word
83                 $found_word = $1;
84                 last;
85             }
86         }
87
88         close (FILE);
89
90         if ($found_word) {
91             ok(0,"$file: found SPELLING ERROR $found_word --WARNING");
92         } else {
93             ok(1,"$file does not contain registered spelling errors");
94         }
95     } else {
96         ok(0,"could not open $file for spellcheck --WARNING");
97     }
98 }
99
100 exit 0;