This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Stop 80_all_env.t failing when LC_ALL is set
[perl5.git] / lib / I18N / LangTags / t / 80_all_env.t
1
2 require 5;
3 use Test;
4 # Time-stamp: "2004-06-20 21:51:11 ADT"
5 BEGIN { plan tests => 14; }
6 use I18N::LangTags::Detect 1.01;
7 print "# Hi there...\n";
8 ok 1;
9
10 print "# Using I18N::LangTags::Detect v$I18N::LangTags::Detect::VERSION\n";
11
12 print "# Make sure we can assign to ENV entries\n",
13       "# (Otherwise we can't run the subsequent tests)...\n";
14 $ENV{'MYORP'}   = 'Zing';          ok $ENV{'MYORP'}, 'Zing';
15 $ENV{'SWUZ'}   = 'KLORTHO HOOBOY'; ok $ENV{'SWUZ'}, 'KLORTHO HOOBOY';
16
17 delete $ENV{'MYORP'};
18 delete $ENV{'SWUZ'};
19
20 sub j { "[" . join(' ', map "\"$_\"", @_) . "]" ;}
21
22 sub show {
23   print "#  (Seeing {", join(' ',
24     map(qq{<$_>}, @_)), "} at line ", (caller)[2], ")\n";
25   printenv();
26   return $_[0] || '';
27 }
28 sub printenv {
29   print "# ENV:\n";
30   foreach my $k (sort keys %ENV) {
31     my $p = $ENV{$k};  $p =~ s/\n/\n#/g;
32     print "#   [$k] = [$p]\n"; }
33   print "# [end of ENV]\n#\n";
34 }
35
36 $ENV{'IGNORE_WIN32_LOCALE'} = 1; # a hack, just for testing's sake.
37
38 print "# Test LANG...\n";
39 $ENV{'REQUEST_METHOD'} = '';
40 $ENV{'LANG'}        = 'Eu_MT';
41 $ENV{'LC_ALL'}      = '';
42 $ENV{'LANGUAGE'}    = '';
43 $ENV{'LC_MESSAGES'} = '';
44 ok show( scalar I18N::LangTags::Detect::detect()),    "eu-mt";
45 ok show( j      I18N::LangTags::Detect::detect()), q{["eu-mt"]};
46
47 print "# Test LANGUAGE...\n";
48 $ENV{'LANG'}     = '';
49 $ENV{'LANGUAGE'} = 'Eu-MT';
50 ok show( scalar I18N::LangTags::Detect::detect()),    "eu-mt";
51 ok show( j      I18N::LangTags::Detect::detect()), q{["eu-mt"]};
52
53
54 print "# Test HTTP_ACCEPT_LANGUAGE...\n";
55 $ENV{'REQUEST_METHOD'}       = 'GET';
56 $ENV{'HTTP_ACCEPT_LANGUAGE'} = 'eu-MT';
57 ok show( scalar I18N::LangTags::Detect::detect()),    "eu-mt";
58 ok show( j      I18N::LangTags::Detect::detect()), q{["eu-mt"]};
59
60
61 $ENV{'HTTP_ACCEPT_LANGUAGE'} = 'x-plorp, zaz, eu-MT, i-klung';
62 ok show( scalar I18N::LangTags::Detect::detect()), "x-plorp";
63 ok show( j      I18N::LangTags::Detect::detect()), qq{["x-plorp" "i-plorp" "zaz" "eu-mt" "i-klung" "x-klung"]};
64
65 $ENV{'HTTP_ACCEPT_LANGUAGE'} = 'x-plorp, zaz, eU-Mt, i-klung';
66 ok show( scalar I18N::LangTags::Detect::detect()), "x-plorp";
67 ok show( j      I18N::LangTags::Detect::detect()), qq{["x-plorp" "i-plorp" "zaz" "eu-mt" "i-klung" "x-klung"]};
68
69
70
71
72 print "# Byebye!\n";
73 ok 1;
74