epic-s6ts
[kivitendo-erp.git] / t / 002goodperl.t
index cc39713..9517901 100644 (file)
@@ -32,7 +32,7 @@ use lib 't';
 
 use Support::Files;
 
-use Test::More tests => scalar @Support::Files::testitems * 2;
+use Test::More tests => scalar @Support::Files::testitems * 3;
 
 my @testitems = @Support::Files::testitems; # get the files to test.
 
@@ -103,4 +103,39 @@ foreach my $file (@testitems) {
     }
 }
 
+
+# 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;
+    }
+    while (my $file_line = <FILE>) {
+        last if $file_line =~ /^__END__/;
+        if ($file_line =~ m/(<\/?$tags>)/o) {
+            $found_html_count++;
+            $found_html .= $1;
+        }
+    }
+    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;