@@ -16,7 +16,7 @@ namespace Microsoft.Framework.Localization.Tests
16
16
public class AccessLanguageHeaderRequestCultureProviderTest
17
17
{
18
18
[ Fact ]
19
- public async void GetFallbackLanguage ( )
19
+ public async void GetFallbackLanguage_ReturnsFirstNonNullCultureFromSupportedCultureList ( )
20
20
{
21
21
using ( var server = TestServer . Create ( app =>
22
22
{
@@ -44,5 +44,67 @@ public async void GetFallbackLanguage()
44
44
var response = await client . GetAsync ( string . Empty ) ;
45
45
}
46
46
}
47
+
48
+ [ Fact ]
49
+ public async void GetFallbackLanguage_ReturnsFromSupportedCulture_AcceptLanguageListContainsSupportedCultures ( )
50
+ {
51
+ using ( var server = TestServer . Create ( app =>
52
+ {
53
+ var options = new RequestLocalizationOptions
54
+ {
55
+ DefaultRequestCulture = new RequestCulture ( new CultureInfo ( "fr-FR" ) ) ,
56
+ SupportedCultures = new List < CultureInfo >
57
+ {
58
+ new CultureInfo ( "ar-SA" ) ,
59
+ new CultureInfo ( "en-US" )
60
+ }
61
+ } ;
62
+ app . UseRequestLocalization ( options ) ;
63
+ app . Run ( context =>
64
+ {
65
+ var requestCultureFeature = context . Features . Get < IRequestCultureFeature > ( ) ;
66
+ var requestCulture = requestCultureFeature . RequestCulture ;
67
+ Assert . Equal ( "ar-SA" , requestCulture . Culture . Name ) ;
68
+ return Task . FromResult ( 0 ) ;
69
+ } ) ;
70
+ } ) )
71
+ {
72
+ var client = server . CreateClient ( ) ;
73
+ client . DefaultRequestHeaders . AcceptLanguage . ParseAdd ( "en-GB,ar-SA,en-US" ) ;
74
+ var count = client . DefaultRequestHeaders . AcceptLanguage . Count ;
75
+ var response = await client . GetAsync ( string . Empty ) ;
76
+ }
77
+ }
78
+
79
+ [ Fact ]
80
+ public async void GetFallbackLanguage_ReturnsDefault_AcceptLanguageListDoesnotContainSupportedCultures ( )
81
+ {
82
+ using ( var server = TestServer . Create ( app =>
83
+ {
84
+ var options = new RequestLocalizationOptions
85
+ {
86
+ DefaultRequestCulture = new RequestCulture ( new CultureInfo ( "fr-FR" ) ) ,
87
+ SupportedCultures = new List < CultureInfo >
88
+ {
89
+ new CultureInfo ( "ar-SA" ) ,
90
+ new CultureInfo ( "af-ZA" )
91
+ }
92
+ } ;
93
+ app . UseRequestLocalization ( options ) ;
94
+ app . Run ( context =>
95
+ {
96
+ var requestCultureFeature = context . Features . Get < IRequestCultureFeature > ( ) ;
97
+ var requestCulture = requestCultureFeature . RequestCulture ;
98
+ Assert . Equal ( "fr-FR" , requestCulture . Culture . Name ) ;
99
+ return Task . FromResult ( 0 ) ;
100
+ } ) ;
101
+ } ) )
102
+ {
103
+ var client = server . CreateClient ( ) ;
104
+ client . DefaultRequestHeaders . AcceptLanguage . ParseAdd ( "en-GB,ar-MA,en-US" ) ;
105
+ var count = client . DefaultRequestHeaders . AcceptLanguage . Count ;
106
+ var response = await client . GetAsync ( string . Empty ) ;
107
+ }
108
+ }
47
109
}
48
110
}
0 commit comments