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