--- test/html-webhacc/WebHACC/Result.pm 2008/08/14 15:50:42 1.9
+++ test/html-webhacc/WebHACC/Result.pm 2008/09/11 09:13:57 1.19
@@ -52,6 +52,7 @@
my ($self, %opt) = @_;
my $out = $self->output;
+ $out->has_error (1);
my $error_level = $opt{level};
if (not defined $error_level) {
@@ -80,8 +81,6 @@
$error_layer = 'syntax'; ## NOTE: Unknown - an error of the implementation
}
- my $error_type_text = $opt{type};
-
my $class = qq[level-$error_level layer-$error_layer];
## Line & column numbers (prepare values)
@@ -171,7 +170,37 @@
if (defined $opt{value}) {
$out->html (' ');
- $out->code ($opt{value});
+ if (defined $opt{pos_start}) {
+ $out->start_tag ('code');
+ $out->text (substr $opt{value}, 0, $opt{pos_start});
+ $out->start_tag ('mark');
+ $out->text (substr $opt{value}, $opt{pos_start},
+ $opt{pos_end} - $opt{pos_start} + 1);
+ $out->end_tag ('mark');
+ $out->text (substr $opt{value}, $opt{pos_end} + 1)
+ if $opt{pos_end} < length $opt{value};
+ $out->end_tag ('code');
+ } elsif ($opt{value_mark_end}) {
+ $out->start_tag ('code');
+ $out->text ($opt{value});
+ $out->start_tag ('mark');
+ $out->end_tag ('mark');
+ $out->end_tag ('code');
+ } elsif (defined $opt{value_mark}) {
+ $out->start_tag ('code');
+ for (split /($opt{value_mark})/, $opt{value}) {
+ if (/$opt{value_mark}/) {
+ $out->start_tag ('mark');
+ $out->text ($_);
+ $out->end_tag ('mark');
+ } else {
+ $out->text ($_);
+ }
+ }
+ $out->end_tag ('code');
+ } else {
+ $out->code ($opt{value});
+ }
$has_location = 1;
}
@@ -186,14 +215,14 @@
} elsif (defined $opt{input}->{request_uri}) {
$out->url ($opt{input}->{request_uri});
$has_location = 1;
- } elsif (defined $opt{input}->{uri}) {
- $out->url ($opt{input}->{uri});
+ } elsif (defined $opt{input}->url) {
+ $out->url ($opt{input}->url);
$has_location = 1;
}
}
unless ($has_location) {
- $out->text ('Unknown location');
+ $out->nl_text ('Unknown location');
}
}
@@ -204,14 +233,10 @@
$out->text (': ');
## Error message
- $out->nl_text ($error_type_text, node => $opt{node}, text => $opt{text});
-
- ## Additional error description
- if (defined $opt{text}) {
- $out->html (' (');
- $out->text ($opt{text});
- $out->html ('
)');
- }
+ my $error_type_text = $opt{type};
+ $out->nl_text ($error_type_text, node => $opt{node}, text => $opt{text},
+ value => $opt{value}, char => $opt{char},
+ octets => $opt{octets});
## Link to a long description
@@ -219,8 +244,10 @@
$fragment =~ tr/ /-/;
$fragment = $out->encode_url_component ($fragment);
$out->text (' [');
- $out->link ('Description', url => '../error-description#' . $fragment,
- rel => 'help');
+ $out->start_tag ('a', href => '../error-description#' . $fragment,
+ rel => 'help');
+ $out->nl_text ('Description');
+ $out->end_tag ('a');
$out->text (']');
if ($error_level eq 'm') {
@@ -287,22 +314,23 @@
$out->start_tag ('th', colspan => 7, scope => 'col');
$out->nl_text ('Main document');
},
- {label => 'Transfer', status => $self->{layers}->{transfer},
+ {label => 'Transfer L.', status => $self->{layers}->{transfer},
target => 'transfer-errors', score_base => 20,
parent_status => $maindoc_status},
- {label => 'Encode', status => $self->{layers}->{encode},
- score_base => 10,
+ {label => 'Encode L.', status => $self->{layers}->{encode},
+ target => 'parse-errors', score_base => 10,
parent_status => $maindoc_status},
- {label => 'Charset', status => $self->{layers}->{charset},
- score_base => 10,
+ {label => 'Char L.', status => $self->{layers}->{charset},
+ target => 'parse-errors', score_base => 10,
parent_status => $maindoc_status},
- {label => 'Syntax', status => $self->{layers}->{syntax},
+ ## TODO: char semantics layer
+ {label => 'Syntax L.', status => $self->{layers}->{syntax},
target => 'parse-errors', score_base => 20,
parent_status => $maindoc_status},
- {label => 'Structure', status => $self->{layers}->{structure},
+ {label => 'Structure L.', status => $self->{layers}->{structure},
target => 'document-errors', score_base => 20,
parent_status => $maindoc_status},
- {label => 'Semantics', status => $self->{layers}->{semantics},
+ {label => 'Semantics L.', status => $self->{layers}->{semantics},
score_base => 20,
parent_status => $maindoc_status},
);