-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy path03_get_locale.t
98 lines (85 loc) · 3.58 KB
/
03_get_locale.t
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!perl
use strict;
use warnings;
use Test::Most tests=>22;
#use Test::NoWarnings;
# Cannot run with NoWarnings since we get a warning from HTTP::BrowserDetect
# wen running under make test
use lib qw(t/testapp/lib);
use Catalyst::Test 'TestApp';
{
my($res, $c) = ctx_request('/base/test6');
my $request = $c->request;
$request->header('Accept-Language','zh, fr_CH; q=0.8, sk; q=0.6');
cmp_deeply($c->request->accept_language,['zh','fr_CH','sk','fr'],'Accept language');
is($c->get_locale_from_browser,'fr_CH','Locale from accept-language');
}
{
my($res, $c) = ctx_request('/base/test6');
my $request = $c->request;
$request->header('Accept-Language','zh, FR; q=0.8, fr_CH; q=0.6');
cmp_deeply($c->request->accept_language,['zh','fr','fr_CH'],'Accept language');
is($c->get_locale_from_browser,'fr','Locale from accept-language');
}
{
my($res, $c) = ctx_request('/base/test6');
my $request = $c->request;
$request->header('Accept-Language','zh, de-at; q=0.8, de; q=0.6');
cmp_deeply($c->request->accept_language,['zh','de_AT','de'],'Accept language');
is($c->get_locale_from_browser,'de_AT','Locale from accept-language');
}
{
my($res, $c) = ctx_request('/base/test6');
my $request = $c->request;
$request->header('Accept-Language','zh, de; q=0.8, de-at; q=0.6');
cmp_deeply($c->request->accept_language,['zh','de','de_AT'],'Accept language');
is($c->get_locale_from_browser,'de_AT','Locale from accept-language');
}
{
my($res, $c) = ctx_request('/base/test6');
my $request = $c->request;
$request->header('Accept-Language','xx, de-ch; q=0.8, de-at; q=0.6');
cmp_deeply($c->request->accept_language,['xx','de_CH','de_AT','de'],'Accept language');
is($c->get_locale_from_browser,'de_CH','Locale from accept-language');
}
{
my($res, $c) = ctx_request('/base/test6');
my $request = $c->request;
$request->header('Accept-Language','zh, sk, fr-ca');
$request->header('User-Agent',"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; de; rv:1.9.2) Gecko/20100115 Firefox/3.6");
cmp_deeply($c->request->accept_language,['zh','sk','fr_CA','fr'],'Accept language');
is($c->request->browser_language,'de','Browser language');
is($c->get_locale_from_browser,'fr','Locale from accept-language');
}
{
my($res, $c) = ctx_request('/base/test6');
my $request = $c->request;
$request->header('Accept-Language','zh, sk, cz, gibe-rsih');
$request->header('User-Agent',"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; fr; rv:1.9.2) Gecko/20100115 Firefox/3.6");
cmp_deeply($c->request->accept_language,['zh','sk','cz'],'Accept language');
is($c->request->browser_language,'fr','Browser language');
is($c->get_locale_from_browser,'fr','Locale from browser');
}
{
my($res, $c) = ctx_request('/base/test6');
my $request = $c->request;
$request->header('Accept-Language','zh, sk, cz');
$request->address('84.20.181.0');
cmp_deeply($c->request->accept_language,['zh','sk','cz'],'Accept language');
is($c->request->client_country,'AT','Browser territory');
is($c->get_locale_from_browser,'de_AT','Locale from IP');
}
{
my($res, $c) = ctx_request('/base/test6');
my $request = $c->request;
$request->header('Accept-Language','giberish');
$request->address('84.20.181.0');
is($c->request->client_country,'AT','Browser territory');
is($c->get_locale_from_browser,'de_AT','Locale from IP');
}
{
my($res, $c) = ctx_request('/base/test6');
delete $c->config->{I18N}{default_locale};
my $request = $c->request;
isnt($c->get_locale,'de','Locale from fallback');
}