annotate tests/html-validator.t @ 148:f4f02112a523

Updated Debian files
author Steve Kemp <steve@steve.org.uk>
date Fri, 28 Dec 2007 14:32:12 +0000
parents 918bfcb2787e
children f107f6107ad4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
138
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
1 #!/usr/bin/perl -w
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
2 #
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
3 # Test that our output is validatored
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
4 #
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
5 # Steve
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
6 # --
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
7
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
8
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
9 use File::Find;
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
10 use HTML::Lint;
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
11 use Test::More;
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
12
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
13
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
14 #
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
15 # Basically this test validates the HTML which would be produced if
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
16 # a blog is compiled - if one is not present then we have nothing to
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
17 # validate against.
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
18 #
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
19
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
20 if ( -d "./output/" )
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
21 {
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
22 plan no_plan;
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
23 }
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
24 else
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
25 {
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
26 plan skip_all => 'There is no output directory to validate against!';
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
27 exit;
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
28 }
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
29
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
30 #
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
31 # Find all the files beneath the current directory,
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
32 # and call 'checkFile' with the name.
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
33 #
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
34 find( { wanted => \&checkFile, no_chdir => 1 }, './output/' );
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
35
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
36
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
37
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
38 #
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
39 # Check a file.
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
40 #
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
41 #
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
42 sub checkFile
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
43 {
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
44 # The file.
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
45 my $file = $File::Find::name;
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
46
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
47 # We don't care about directories
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
48 return if ( ! -f $file );
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
49
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
50 # We only care about html files.
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
51 return if ( $file !~ /\.html$/ );
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
52
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
53 my $lint = HTML::Lint->new;
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
54
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
55 $lint->parse_file( $file );
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
56
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
57 my $error_count = $lint->errors;
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
58
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
59 # foreach my $error ( $lint->errors ) {
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
60 # print $error->as_string, "\n";
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
61 # }
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
62
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
63 is( $error_count, 0 , "There are no errors in $file" );
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
64 }
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
65
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
66
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
67
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
68 #
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
69 # Count and return the number of literal TAB characters contained
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
70 # in the specified file.
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
71 #
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
72 sub countTabCharacters
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
73 {
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
74 my ( $file ) = (@_);
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
75 my $count = 0;
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
76
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
77 open( FILE, "<", $file )
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
78 or die "Cannot open $file - $!";
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
79 foreach my $line ( <FILE> )
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
80 {
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
81 # We will count multiple tab characters in a single line.
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
82 while( $line =~ /(.*)\t(.*)/ )
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
83 {
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
84 $count += 1;
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
85 $line = $1 . $2;
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
86 }
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
87 }
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
88 close( FILE );
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
89
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
90 return( $count );
918bfcb2787e Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff changeset
91 }