Commit | Line | Data |
---|---|---|
6aaed204 | 1 | use strict; |
8000a3fa RGS |
2 | |
3 | use I18N::LangTags::Detect; | |
4 | ||
6aaed204 | 5 | use Test::More; |
8000a3fa RGS |
6 | |
7 | my @in = grep m/\S/, split /\n/, q{ | |
8 | ||
9 | [ sv ] sv | |
10 | [ en ] en | |
11 | [ en fi ] en, fi | |
12 | [ en-us ] en-us | |
13 | [ en-us ] en-US | |
14 | [ en-us ] EN-US | |
15 | ||
8575f5e6 RGS |
16 | [ en-au en i-klingon x-klingon en-gb en-us mt-mt mt ja ] EN-au, JA;q=0.14, i-klingon;q=0.83, en-gb;q=0.71, en-us;q=0.57, mt-mt;q=0.43, mt;q=0.29, en;q=0.86 |
17 | [ en-au en i-klingon x-klingon en-gb en-us mt-mt mt tli ja ] EN-au, tli;q=0.201, JA;q=0.14, i-klingon;q=0.83, en-gb;q=0.71, en-us;q=0.57, mt-mt;q=0.43, mt;q=0.29, en;q=0.86 | |
8000a3fa RGS |
18 | [ en-au en en-gb en-us ja ] en-au, ja;q=0.20, en-gb;q=0.60, en-us;q=0.40, en;q=0.80 |
19 | ||
20 | [ en-au en en-gb en-us mt-mt mt ja ] EN-au, JA;q=0.14, en-gb;q=0.71, en-us;q=0.57, mt-mt;q=0.43, mt;q=0.29, en;q=0.86 | |
21 | [ en-au en en-gb en-us ja ] en-au, ja;q=0.20, en-gb;q=0.60, en-us;q=0.40, en;q=0.80 | |
22 | [ en fr ] en;q=1,fr;q=.5 | |
23 | [ en fr ] en;q=1,fr;q=.99 | |
24 | [ en ru ko ] en, ru;q=0.7, ko;q=0.3 | |
25 | [ en ru ko ] en, ru;q=0.7, KO;q=0.3 | |
26 | [ en-us en ] en-us, en;q=0.50 | |
27 | [ en fr ] fr ; q = 0.9, en | |
28 | [ en fr ] en,fr;q=.90 | |
29 | [ ru en-uk en fr ] ru, en-UK;q=0.5, en;q=0.3, fr;q=0.1 | |
30 | [ en-us fr es-mx ] en-us,fr;q=0.7,es-mx;q=0.3 | |
31 | [ en-us en ] en-us, en;q=0.50 | |
32 | ||
33 | [ da en-gb en ] da, en-gb;q=0.8, en;q=0.7 | |
34 | [ da en-gb en ] da, en;q=0.7, en-gb;q=0.8 | |
35 | [ da en-gb en ] da, en-gb;q=0.8, en;q=0.7 | |
36 | [ da en-gb en ] da,en;q=0.7,en-gb;q=0.8 | |
37 | [ da en-gb en ] da, en-gb ; q=0.8, en ; q=0.7 | |
38 | [ da en-gb en ] da , en-gb ; q = 0.8 , en ; q =0.7 | |
39 | [ da en-gb en ] da (yup, Danish) , en-gb ; q = 0.8 , en ; q =0.7 | |
40 | ||
41 | [ no dk en-uk en-us ] en-UK;q=0.7, en-US;q=0.6, no;q=1.0, dk;q=0.8 | |
42 | [ no dk en-uk en-us ] en-US;q=0.6, en-UK;q=0.7, no;q=1.0, dk;q=0.8 | |
43 | [ no dk en-uk en-us ] en-UK;q=0.7, no;q=1.0, en-US;q=0.6, dk;q=0.8 | |
44 | [ no dk en-uk en-us ] en-UK;q=0.7, no;q=1.0, dk;q=0.8, en-US;q=0.6 | |
45 | ||
46 | [ fi en ] fi;q=1, en;q=0.2 | |
47 | [ de-de de en en-us en-gb ] de-DE, de;q=0.80, en;q=0.60, en-US;q=0.40, en-GB;q=0.20 | |
48 | [ ru ] ru; q=1, *; q=0.1 | |
49 | [ ru en ] ru, en; q=0.1 | |
50 | [ ja en ] ja,en;q=0.5 | |
51 | [ en ] en; q=1.0 | |
52 | [ ja ] ja; q=1.0 | |
53 | [ ja ] ja; q=1.0 | |
54 | [ en ja ] en; q=0.5, ja; q=0.5 | |
55 | [ fr-ca fr en ] fr-ca, fr;q=0.8, en;q=0.7 | |
56 | [ NIX ] NIX | |
57 | }; | |
58 | ||
6aaed204 | 59 | plan(tests => 2 * @in); |
8000a3fa RGS |
60 | foreach my $in (@in) { |
61 | $in =~ s/^\s*\[([^\]]+)\]\s*//s or die "Bad input: $in"; | |
62 | my @should = do { my $x = $1; $x =~ m/(\S+)/g }; | |
63 | ||
64 | if($in eq 'NIX') { $in = ''; @should = (); } | |
65 | ||
66 | local $ENV{'HTTP_ACCEPT_LANGUAGE'}; | |
67 | ||
6aaed204 NC |
68 | foreach ( |
69 | ['arg', sub { | |
8000a3fa RGS |
70 | print "# Testing with arg...\n"; |
71 | $ENV{'HTTP_ACCEPT_LANGUAGE'} = 'PLORK'; | |
72 | return $_[0]; | |
6aaed204 NC |
73 | }], |
74 | ['HTTP_ACCEPT_LANGUAGE', sub { | |
8000a3fa RGS |
75 | print "# Testing wath HTTP_ACCEPT_LANGUAGE...\n"; |
76 | $ENV{'HTTP_ACCEPT_LANGUAGE'} = $_[0]; | |
77 | return(); | |
6aaed204 NC |
78 | }], |
79 | ) { | |
80 | my ($type, $modus) = @$_; | |
8000a3fa RGS |
81 | my @args = &$modus($in); |
82 | ||
83 | # //////////////////////////////////////////////////// | |
84 | my @out = I18N::LangTags::Detect->http_accept_langs(@args); | |
85 | # \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ | |
86 | ||
6aaed204 | 87 | is_deeply(\@out, \@should, "Testing [$in] with $type"); |
8000a3fa RGS |
88 | } |
89 | } |