Mercurial > hg > chronicle
annotate tests/html-validator.t @ 307:fe474f3ed3e5 default tip
Making archive pages have the same layout as the index
author | Dominic Cleal <dominic@computerkb.co.uk> |
---|---|
date | Mon, 22 Dec 2008 12:08:20 +0000 |
parents | f107f6107ad4 |
children |
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 # 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
|
15 # 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
|
16 # validate against. |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
17 # |
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 if ( -d "./output/" ) |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
20 { |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
21 plan no_plan; |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
22 } |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
23 else |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
24 { |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
25 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
|
26 exit; |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
27 } |
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 # Find all the files beneath the current directory, |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
31 # and call 'checkFile' with the name. |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
32 # |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
33 find( { wanted => \&checkFile, no_chdir => 1 }, './output/' ); |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
34 |
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 # Check a file. |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
39 # |
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 sub checkFile |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
42 { |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
43 # The file. |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
44 my $file = $File::Find::name; |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
45 |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
46 # We don't care about directories |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
47 return if ( ! -f $file ); |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
48 |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
49 # We only care about html files. |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
50 return if ( $file !~ /\.html$/ ); |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
51 |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
52 my $lint = HTML::Lint->new; |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
53 |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
54 $lint->parse_file( $file ); |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
55 |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
56 my $error_count = $lint->errors; |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
57 |
201
f107f6107ad4
Ignore errors which relate to <cut> tag
Steve Kemp <steve@steve.org.uk>
parents:
138
diff
changeset
|
58 foreach my $error ( $lint->errors ) { |
f107f6107ad4
Ignore errors which relate to <cut> tag
Steve Kemp <steve@steve.org.uk>
parents:
138
diff
changeset
|
59 if ( $error->as_string =~ /<cut>/ ) |
f107f6107ad4
Ignore errors which relate to <cut> tag
Steve Kemp <steve@steve.org.uk>
parents:
138
diff
changeset
|
60 { |
f107f6107ad4
Ignore errors which relate to <cut> tag
Steve Kemp <steve@steve.org.uk>
parents:
138
diff
changeset
|
61 $error_count -= 1; |
f107f6107ad4
Ignore errors which relate to <cut> tag
Steve Kemp <steve@steve.org.uk>
parents:
138
diff
changeset
|
62 } |
f107f6107ad4
Ignore errors which relate to <cut> tag
Steve Kemp <steve@steve.org.uk>
parents:
138
diff
changeset
|
63 #print $error->as_string, "\n"; |
f107f6107ad4
Ignore errors which relate to <cut> tag
Steve Kemp <steve@steve.org.uk>
parents:
138
diff
changeset
|
64 } |
138
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 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
|
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 |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
70 |
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 # 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
|
73 # in the specified file. |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
74 # |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
75 sub countTabCharacters |
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 my ( $file ) = (@_); |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
78 my $count = 0; |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
79 |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
80 open( FILE, "<", $file ) |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
81 or die "Cannot open $file - $!"; |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
82 foreach my $line ( <FILE> ) |
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 # 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
|
85 while( $line =~ /(.*)\t(.*)/ ) |
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 $count += 1; |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
88 $line = $1 . $2; |
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 } |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
91 close( FILE ); |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
92 |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
93 return( $count ); |
918bfcb2787e
Added test to validate HTML output.
Steve Kemp <steve@steve.org.uk>
parents:
diff
changeset
|
94 } |