Mercurial > hg > chronicle
annotate tests/html-validator.t @ 140:72a422b4978b
Misc update.
author | Steve Kemp <steve@steve.org.uk> |
---|---|
date | Wed, 26 Dec 2007 12:44:27 +0000 |
parents | 918bfcb2787e |
children | f107f6107ad4 |
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 } |