/usr/local/CPAN/HTML-Tested/HTML/Tested/Test/Radio.pm
use strict;
use warnings FATAL => 'all';
package HTML::Tested::Test::Radio;
use base 'HTML::Tested::Test::Value';
sub _grep_my_vars {
my ($class, $name, $stash) = @_;
my @res;
while (my ($n, $v) = each %$stash) {
next unless $n =~ /^$name\_/;
push @res, $n;
}
return @res;
}
sub check_stash {
my ($class, $e_root, $name, $e_stash, $r_stash) = @_;
my @err;
for my $n ($class->_grep_my_vars($name, $e_stash)) {
my $e_val = $e_stash->{$n};
my $r_val = HTML::Tested::Test::Ensure_Value_To_Check(
$r_stash, $n, $e_val, \@err);
next unless defined($r_val);
next if ($r_val eq $e_val);
push @err, HTML::Tested::Test::Stash_Mismatch(
$n, $r_val, $e_val);
}
for my $n ($class->_grep_my_vars($name, $r_stash)) {
next if exists $e_stash->{$n};
push @err, HTML::Tested::Test::Stash_Mismatch(
$n, $r_stash->{$n}, undef);
}
return @err;
}
sub check_text {
my ($class, $e_root, $name, $e_stash, $text) = @_;
return map {
$class->_check_text_i($e_root, $name, $e_stash->{$_}, $text)
} $class->_grep_my_vars($name, $e_stash);
}
1;