5df76ce08d3ec2f7ca76e4f3c5625ba8685fb4c2
[working/Evergreen.git] / Open-ILS / src / perlmods / t / 24-sql-gettext-unique.t
1 use strict;
2 use warnings;
3 use Test::More;
4 use Test::Output;
5
6 my $num_tests = 0;
7
8 my $data;
9 {
10     open(my $fh, "<", "../sql/Pg/950.data.seed-values.sql")
11         or die "Can't open 950.data.seed-values.sql: $!";
12     local $/ = undef;
13     $data = <$fh>;
14 }
15
16 my $findi18n = qr/oils_i18n_gettext\((.*?)\'\s*\)/;
17 my $intkey = qr/\s*(\d+)\s*,\s*E?\'(.+?)\',\s*\'(.+?)\',\s*\'(.+?)$/;
18 my $textkey = qr/\s*\'(.*?)\'\s*,\s*E?\'(.+?)\',\s*\'(.+?)\',\s*\'(.+?)$/;
19
20 my %found;
21 my @caps = $data =~ m/$findi18n/gms;
22 foreach my $cap (@caps) {
23     my $unique;
24     my @matches = $cap =~ m/$intkey/gms;
25     if (length($matches[0])) {
26         $unique = join('', $matches[0], $matches[2], $matches[3]);
27     } else {
28         @matches = $cap =~ m/$textkey/gms;
29         $unique = join('', $matches[0], $matches[2], $matches[3]);
30     }
31     isnt(exists($found{$unique}), 1, "oils_18n_gettext duplicate key: $cap'");
32     $found{"$unique"} = 1;
33     $num_tests++;
34     #print "$cap \n";
35 }
36  
37 done_testing($num_tests);