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