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