#!perl use strict; use File::Temp; my $HAS_ENCODE; BEGIN { $HAS_ENCODE = eval { require Encode }; require Test::More; Test::More->import(tests => 22 - ($HAS_ENCODE ? 0 : 8)); } BEGIN { use_ok("Senna::Constants", "SEN_ENC_EUCJP"); use_ok("Senna::Snippet"); } my $WIDTH = 100; my $MAX_RESULTS = 8; my $text = <new( encoding => SEN_ENC_EUCJP, width => $WIDTH, max_results => $MAX_RESULTS, ); $snip->add_cond(keyword => "sen"); my @r = $snip->exec(string => $text); ok(scalar(@r) < $MAX_RESULTS, "results is less than $MAX_RESULTS"); foreach my $r (@r) { if ($HAS_ENCODE) { $r = Encode::decode('euc-jp', $r); ok(length($r) <= $WIDTH, "string size < $WIDTH"); } like($r, qr|{sen}|, "sen is properly enclosed in {}"); } $snip = Senna::Snippet->new( encoding => SEN_ENC_EUCJP, width => $WIDTH, max_results => $MAX_RESULTS, ); $snip->add_cond(keyword => "snippet", open_tag => "", close_tag => ""); @r = $snip->exec(string => $text); ok(scalar(@r) < $MAX_RESULTS, "results is less than $MAX_RESULTS"); foreach my $r (@r) { if ($HAS_ENCODE) { $r = Encode::decode('euc-jp', $r); ok(length($r) <= $WIDTH, "string size < $WIDTH"); } like($r, qr|snippet|, "snippet is properly enclosed in {}"); } 1;