From 45e61057887e81be37d7c5ef06453dbd2210a452 Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Sun, 4 Dec 2005 15:58:14 +0000 Subject: [PATCH] add scan of WebGUI source code for broken i18n labels --- t/i18n.t | 52 ++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 46 insertions(+), 6 deletions(-) diff --git a/t/i18n.t b/t/i18n.t index 2ca7e10a8..26d876f13 100644 --- a/t/i18n.t +++ b/t/i18n.t @@ -29,6 +29,20 @@ initialize(); # this line is required # put your tests here +my $digits = qr/(\d+)/; +my $bareword = qr/(\w+)/; +my $quotelike = qr/((['"])$bareword(['"]))/; +my $subscript = qr/([\[{]\w+[\]\}])/; +my $variable = qr/(\$\w+($subscript)*)/; +my $sub_args = qr/(($quotelike|$digits),?)+/; +my $subroutine = qr/ + WebGUI::International::get + \( ##Opening paren for optional arguments + ($sub_args) + \) ##Closing paren + /x; + + my %helpTable; my @helpFileSet = WebGUI::Operation::Help::_getHelpFilesList(); @@ -53,13 +67,19 @@ my @helpLabels = getHelpLabels(); my @sqlLabels = getSQLLabels(); +my @libLabels; +find(\&label_finder_pm, '../lib/'); + +diag ("Checking ". scalar(@helpLabels). " help labels"); +diag ("Checking ". scalar(@sqlLabels). " SQL labels"); +diag ("Checking ". scalar(@libLabels). " library code labels"); + $numTests = scalar(@helpLabels) - + scalar(@sqlLabels); + + scalar(@sqlLabels) + + scalar(@libLabels); diag("Planning on running $numTests tests\n"); -#find(\&label_finder_pm, '../'); - plan tests => $numTests; foreach my $i18n ( @helpLabels ) { @@ -72,11 +92,31 @@ foreach my $i18n ( @sqlLabels ) { sprintf "label: %s->%s inside %s", @{ $i18n }{'namespace', 'label', 'file', }); } +foreach my $i18n ( @libLabels ) { + ok(WebGUI::International::get(@{ $i18n }{qw(label namespace )} ), + sprintf "label: %s->%s inside %s", @{ $i18n }{'namespace', 'label', 'file', }); +} + cleanup(); # this line is required sub label_finder_pm { - local $_; - next unless /\.pm/; + next unless /\.pm$/; + open my $pmf, $_ + or die "unable to open file $File::Find::name: $!\n"; + my $libFile = ''; + { + local $/; + $libFile = <$pmf>; + } + close $pmf; + while ($libFile =~ m/$subroutine/gc) { + my ($label, $namespace) = split /,/, $1; + push @libLabels, { + file=>$File::Find::name, + label=>$label, + namespace=>$namespace || 'WebGUI', + }; + } } sub getHelpLabels { @@ -119,7 +159,7 @@ sub getHelpLabels { sub getSQLLabels { my @sqlLabels = (); foreach my $file (qw/create.sql previousVersion.sql/) { - my $file2 = join $session{os}{slash}, '..', 'docs', $file; + my $file2 = join '/', '..', 'docs', $file; open my $fh, $file2 or die "Unable to open $file2: $!\n"; local $/;