epic-s6ts
[kivitendo-erp.git] / t / 002goodperl.t
index 3196d00..9517901 100644 (file)
@@ -32,7 +32,7 @@ use lib 't';
 
 use Support::Files;
 
-use Test::More tests => (scalar(@Support::Files::testitems) * 3);
+use Test::More tests => scalar @Support::Files::testitems * 3;
 
 my @testitems = @Support::Files::testitems; # get the files to test.
 
@@ -70,7 +70,10 @@ foreach my $file (@testitems) {
             if ($file_line1 =~ m#\s-$flags#) {
                 ok(1,"$file uses standard perl location and -$flags");
             } else {
+              TODO: {
+                local $TODO = q(warning isn't supported globally);
                 ok(0,"$file is MISSING -$flags --WARNING");
+              }
             }
         } else {
             ok(0,"$file uses non-standard perl location");
@@ -100,30 +103,39 @@ foreach my $file (@testitems) {
     }
 }
 
-# Check to see that all error messages use tags (for l10n reasons.)
+
+# note, the html checker is not really thorough.
+# in particular it will not find standard tags with parameters.
+# the estimate whether a file is dirty or not is still pretty helpful, as it will catch most of the closing tags.
+# if you are in doubt about a specific file, you still have to check it manually.
+my $tags = qr/b|i|u|h[1-6]|a href.*|input|form|br|textarea|table|tr|td|th|body|head|html|p|button|select|option|script/;
 foreach my $file (@testitems) {
+    my $found_html_count = 0;
+    my $found_html       = '';
     $file =~ s/\s.*$//; # nuke everything after the first space (#comment)
+
     next if (!$file); # skip null entries
     if (! open (FILE, $file)) {
         ok(0,"could not open $file --WARNING");
         next;
     }
-    my $lineno = 0;
-    my $error = 0;
-
-    while (!$error && (my $file_line = <FILE>)) {
-        $lineno++;
-        if ($file_line =~ /Throw.*Error\("(.*?)"/) {
-            if ($1 =~ /\s/) {
-                ok(0,"$file has a Throw*Error call on line $lineno which doesn't use a tag --ERROR");
-                $error = 1;
-            }
+    while (my $file_line = <FILE>) {
+        last if $file_line =~ /^__END__/;
+        if ($file_line =~ m/(<\/?$tags>)/o) {
+            $found_html_count++;
+            $found_html .= $1;
         }
     }
-
-    ok(1,"$file uses Throw*Error calls correctly") if !$error;
-
-    close(FILE);
+    close (FILE);
+    if (!$found_html_count) {
+        ok(1,"$file does not contain HTML");
+    } elsif ($found_html_count < 50) {
+      TODO: { local $TODO = q(Even little amounts of HTML should go away....);
+        ok(0,"$file contains at least $found_html_count html tags.");
+      }
+    } else {
+      ok(0,"$file contains at least $found_html_count html tags.");
+    }
 }
 
 exit 0;