--- 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}, );