From 40e54bf77d510f59b737ee97e4e77d94130a2a28 Mon Sep 17 00:00:00 2001 From: hishamco Date: Mon, 7 Nov 2016 07:56:00 +0300 Subject: [PATCH] Minor Fixes Remove the blank line before conditional block Remove versions from project.json in test projects Address feedback Address feedback Add CommandLine configuration package to avoid breaking test Add missing using --- samples/LocalizationSample/Startup.cs | 4 +++- .../RequestCultureProvider.cs | 1 - .../RequestLocalizationMiddleware.cs | 2 +- .../StringLocalizerOfT.cs | 2 +- .../Internal/AssemblyResourceStringProvider.cs | 3 +-- .../ResourceManagerStringLocalizer.cs | 2 ++ .../ResourceManagerWithCultureStringLocalizer.cs | 2 ++ test/LocalizationWebsite/Models/Customer.cs | 6 ++---- .../LocalizationSampleTest.cs | 3 +++ .../LocalizationTest.cs | 12 ++++++++++++ .../RouteDataRequestCultureProviderTest.cs | 2 ++ ...AcceptLanguageHeaderRequestCultureProviderTest.cs | 1 + .../CookieRequestCultureProviderTest.cs | 1 + .../QueryStringRequestCultureProviderTest.cs | 1 + .../ResourceManagerStringLocalizerTest.cs | 7 ++----- 15 files changed, 34 insertions(+), 15 deletions(-) diff --git a/samples/LocalizationSample/Startup.cs b/samples/LocalizationSample/Startup.cs index 237fc4b8a1..07b6fbd6cd 100644 --- a/samples/LocalizationSample/Startup.cs +++ b/samples/LocalizationSample/Startup.cs @@ -155,7 +155,9 @@ $@" public static void Main(string[] args) { - var config = new ConfigurationBuilder().AddCommandLine(args).Build(); + var config = new ConfigurationBuilder() + .AddCommandLine(args) + .Build(); var host = new WebHostBuilder() .UseKestrel() diff --git a/src/Microsoft.AspNetCore.Localization/RequestCultureProvider.cs b/src/Microsoft.AspNetCore.Localization/RequestCultureProvider.cs index bc806a58d3..c3103596e2 100644 --- a/src/Microsoft.AspNetCore.Localization/RequestCultureProvider.cs +++ b/src/Microsoft.AspNetCore.Localization/RequestCultureProvider.cs @@ -19,6 +19,5 @@ namespace Microsoft.AspNetCore.Localization /// public abstract Task DetermineProviderCultureResult(HttpContext httpContext); - } } diff --git a/src/Microsoft.AspNetCore.Localization/RequestLocalizationMiddleware.cs b/src/Microsoft.AspNetCore.Localization/RequestLocalizationMiddleware.cs index f9bc60a222..ff5edf81ca 100644 --- a/src/Microsoft.AspNetCore.Localization/RequestLocalizationMiddleware.cs +++ b/src/Microsoft.AspNetCore.Localization/RequestLocalizationMiddleware.cs @@ -14,7 +14,7 @@ using Microsoft.Extensions.Options; namespace Microsoft.AspNetCore.Localization { /// - /// Enables automatic setting of the culture for s based on information + /// Enables automatic setting of the culture for s based on information /// sent by the client in headers and logic provided by the application. /// public class RequestLocalizationMiddleware diff --git a/src/Microsoft.Extensions.Localization.Abstractions/StringLocalizerOfT.cs b/src/Microsoft.Extensions.Localization.Abstractions/StringLocalizerOfT.cs index 6862db7e37..131c1126ec 100644 --- a/src/Microsoft.Extensions.Localization.Abstractions/StringLocalizerOfT.cs +++ b/src/Microsoft.Extensions.Localization.Abstractions/StringLocalizerOfT.cs @@ -10,7 +10,7 @@ namespace Microsoft.Extensions.Localization /// /// Provides strings for . /// - /// The to provide strings for. + /// The to provide strings for. public class StringLocalizer : IStringLocalizer { private IStringLocalizer _localizer; diff --git a/src/Microsoft.Extensions.Localization/Internal/AssemblyResourceStringProvider.cs b/src/Microsoft.Extensions.Localization/Internal/AssemblyResourceStringProvider.cs index 1c57960271..4289aec633 100644 --- a/src/Microsoft.Extensions.Localization/Internal/AssemblyResourceStringProvider.cs +++ b/src/Microsoft.Extensions.Localization/Internal/AssemblyResourceStringProvider.cs @@ -15,8 +15,6 @@ namespace Microsoft.Extensions.Localization.Internal public class AssemblyResourceStringProvider : IResourceStringProvider { private const string AssemblyElementDelimiter = ", "; - private static readonly string[] _assemblyElementDelimiterArray = new[] { AssemblyElementDelimiter }; - private static readonly char[] _assemblyEqualDelimiter = new[] { '=' }; private readonly AssemblyWrapper _assembly; private readonly string _resourceBaseName; @@ -65,6 +63,7 @@ namespace Microsoft.Extensions.Localization.Internal public IList GetAllResourceStrings(CultureInfo culture, bool throwOnMissing) { var cacheKey = GetResourceCacheKey(culture); + return _resourceNamesCache.GetOrAdd(cacheKey, _ => { var assembly = GetAssembly(culture); diff --git a/src/Microsoft.Extensions.Localization/ResourceManagerStringLocalizer.cs b/src/Microsoft.Extensions.Localization/ResourceManagerStringLocalizer.cs index 128c1c1f6a..74611a2e73 100644 --- a/src/Microsoft.Extensions.Localization/ResourceManagerStringLocalizer.cs +++ b/src/Microsoft.Extensions.Localization/ResourceManagerStringLocalizer.cs @@ -106,6 +106,7 @@ namespace Microsoft.Extensions.Localization } var value = GetStringSafely(name, null); + return new LocalizedString(name, value ?? name, resourceNotFound: value == null); } } @@ -122,6 +123,7 @@ namespace Microsoft.Extensions.Localization var format = GetStringSafely(name, null); var value = string.Format(format ?? name, arguments); + return new LocalizedString(name, value, resourceNotFound: format == null); } } diff --git a/src/Microsoft.Extensions.Localization/ResourceManagerWithCultureStringLocalizer.cs b/src/Microsoft.Extensions.Localization/ResourceManagerWithCultureStringLocalizer.cs index 4ca2ed0748..3cd0b898c2 100644 --- a/src/Microsoft.Extensions.Localization/ResourceManagerWithCultureStringLocalizer.cs +++ b/src/Microsoft.Extensions.Localization/ResourceManagerWithCultureStringLocalizer.cs @@ -117,6 +117,7 @@ namespace Microsoft.Extensions.Localization } var value = GetStringSafely(name, _culture); + return new LocalizedString(name, value ?? name); } } @@ -133,6 +134,7 @@ namespace Microsoft.Extensions.Localization var format = GetStringSafely(name, _culture); var value = string.Format(_culture, format ?? name, arguments); + return new LocalizedString(name, value ?? name, resourceNotFound: format == null); } } diff --git a/test/LocalizationWebsite/Models/Customer.cs b/test/LocalizationWebsite/Models/Customer.cs index 7d3447df72..b38d34e7f1 100644 --- a/test/LocalizationWebsite/Models/Customer.cs +++ b/test/LocalizationWebsite/Models/Customer.cs @@ -1,7 +1,5 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. namespace LocalizationWebsite.Models { diff --git a/test/Microsoft.AspNetCore.Localization.FunctionalTests/LocalizationSampleTest.cs b/test/Microsoft.AspNetCore.Localization.FunctionalTests/LocalizationSampleTest.cs index 2fac8633ea..92ed3f505e 100644 --- a/test/Microsoft.AspNetCore.Localization.FunctionalTests/LocalizationSampleTest.cs +++ b/test/Microsoft.AspNetCore.Localization.FunctionalTests/LocalizationSampleTest.cs @@ -19,6 +19,7 @@ namespace Microsoft.AspNetCore.Localization.FunctionalTests public Task RunSite_WindowsOnly() { var testRunner = new TestRunner(_applicationPath); + return testRunner.RunTestAndVerifyResponseHeading( RuntimeFlavor.Clr, RuntimeArchitecture.x64, @@ -27,10 +28,12 @@ namespace Microsoft.AspNetCore.Localization.FunctionalTests "fr-FR", "

Bonjour

"); } + [Fact] public Task RunSite_AnyOS() { var testRunner = new TestRunner(_applicationPath); + return testRunner.RunTestAndVerifyResponseHeading( RuntimeFlavor.CoreClr, RuntimeArchitecture.x64, diff --git a/test/Microsoft.AspNetCore.Localization.FunctionalTests/LocalizationTest.cs b/test/Microsoft.AspNetCore.Localization.FunctionalTests/LocalizationTest.cs index 9e8b81dd88..1c8be16ab4 100644 --- a/test/Microsoft.AspNetCore.Localization.FunctionalTests/LocalizationTest.cs +++ b/test/Microsoft.AspNetCore.Localization.FunctionalTests/LocalizationTest.cs @@ -17,6 +17,7 @@ namespace Microsoft.AspNetCore.Localization.FunctionalTests public Task Localization_CustomCulture_AllOS() { var testRunner = new TestRunner(_applicationPath); + return testRunner.RunTestAndVerifyResponse( RuntimeFlavor.CoreClr, RuntimeArchitecture.x64, @@ -32,6 +33,7 @@ namespace Microsoft.AspNetCore.Localization.FunctionalTests public Task Localization_CustomCulture_Windows() { var testRunner = new TestRunner(_applicationPath); + return testRunner.RunTestAndVerifyResponse( RuntimeFlavor.Clr, RuntimeArchitecture.x64, @@ -45,6 +47,7 @@ namespace Microsoft.AspNetCore.Localization.FunctionalTests public Task Localization_ResourcesInClassLibrary_ReturnLocalizedValue_AllOS() { var testRunner = new TestRunner(_applicationPath); + return testRunner.RunTestAndVerifyResponse( RuntimeFlavor.CoreClr, RuntimeArchitecture.x64, @@ -60,6 +63,7 @@ namespace Microsoft.AspNetCore.Localization.FunctionalTests public Task Localization_ResourcesInClassLibrary_ReturnLocalizedValue_Windows() { var testRunner = new TestRunner(_applicationPath); + return testRunner.RunTestAndVerifyResponse( RuntimeFlavor.Clr, RuntimeArchitecture.x64, @@ -73,6 +77,7 @@ namespace Microsoft.AspNetCore.Localization.FunctionalTests public Task Localization_ResourcesInFolder_ReturnLocalizedValue_AllOS() { var testRunner = new TestRunner(_applicationPath); + return testRunner.RunTestAndVerifyResponse( RuntimeFlavor.CoreClr, RuntimeArchitecture.x64, @@ -88,6 +93,7 @@ namespace Microsoft.AspNetCore.Localization.FunctionalTests public Task Localization_ResourcesInFolder_ReturnLocalizedValue_Windows() { var testRunner = new TestRunner(_applicationPath); + return testRunner.RunTestAndVerifyResponse( RuntimeFlavor.Clr, RuntimeArchitecture.x64, @@ -101,6 +107,7 @@ namespace Microsoft.AspNetCore.Localization.FunctionalTests public Task Localization_ResourcesInFolder_ReturnLocalizedValue_WithCultureFallback_AllOS() { var testRunner = new TestRunner(_applicationPath); + return testRunner.RunTestAndVerifyResponse( RuntimeFlavor.CoreClr, RuntimeArchitecture.x64, @@ -116,6 +123,7 @@ namespace Microsoft.AspNetCore.Localization.FunctionalTests public Task Localization_ResourcesInFolder_ReturnLocalizedValue_WithCultureFallback_Windows() { var testRunner = new TestRunner(_applicationPath); + return testRunner.RunTestAndVerifyResponse( RuntimeFlavor.Clr, RuntimeArchitecture.x64, @@ -129,6 +137,7 @@ namespace Microsoft.AspNetCore.Localization.FunctionalTests public Task Localization_ResourcesInFolder_ReturnNonLocalizedValue_CultureHierarchyTooDeep_AllOS() { var testRunner = new TestRunner(_applicationPath); + return testRunner.RunTestAndVerifyResponse( RuntimeFlavor.CoreClr, RuntimeArchitecture.x64, @@ -144,6 +153,7 @@ namespace Microsoft.AspNetCore.Localization.FunctionalTests public Task Localization_ResourcesInFolder_ReturnNonLocalizedValue_CultureHierarchyTooDeep_Windows() { var testRunner = new TestRunner(_applicationPath); + return testRunner.RunTestAndVerifyResponse( RuntimeFlavor.Clr, RuntimeArchitecture.x64, @@ -157,6 +167,7 @@ namespace Microsoft.AspNetCore.Localization.FunctionalTests public Task Localization_ResourcesAtRootFolder_ReturnLocalizedValue_AllOS() { var testRunner = new TestRunner(_applicationPath); + return testRunner.RunTestAndVerifyResponse( RuntimeFlavor.CoreClr, RuntimeArchitecture.x64, @@ -172,6 +183,7 @@ namespace Microsoft.AspNetCore.Localization.FunctionalTests public Task Localization_ResourcesAtRootFolder_ReturnLocalizedValue_Windows() { var testRunner = new TestRunner(_applicationPath); + return testRunner.RunTestAndVerifyResponse( RuntimeFlavor.Clr, RuntimeArchitecture.x64, diff --git a/test/Microsoft.AspNetCore.Localization.Routing.Tests/RouteDataRequestCultureProviderTest.cs b/test/Microsoft.AspNetCore.Localization.Routing.Tests/RouteDataRequestCultureProviderTest.cs index b5400a2cd6..dd57f56f68 100644 --- a/test/Microsoft.AspNetCore.Localization.Routing.Tests/RouteDataRequestCultureProviderTest.cs +++ b/test/Microsoft.AspNetCore.Localization.Routing.Tests/RouteDataRequestCultureProviderTest.cs @@ -106,6 +106,7 @@ namespace Microsoft.AspNetCore.Localization.Routing { var requestCultureFeature = context.Features.Get(); var requestCulture = requestCultureFeature.RequestCulture; + return context.Response.WriteAsync( $"{requestCulture.Culture.Name},{requestCulture.UICulture.Name}"); }); @@ -168,6 +169,7 @@ namespace Microsoft.AspNetCore.Localization.Routing { var requestCultureFeature = context.Features.Get(); var requestCulture = requestCultureFeature.RequestCulture; + return context.Response.WriteAsync( $"{requestCulture.Culture.Name},{requestCulture.UICulture.Name}"); }); diff --git a/test/Microsoft.AspNetCore.Localization.Tests/AcceptLanguageHeaderRequestCultureProviderTest.cs b/test/Microsoft.AspNetCore.Localization.Tests/AcceptLanguageHeaderRequestCultureProviderTest.cs index 4861c8ac08..c5c2a7722e 100644 --- a/test/Microsoft.AspNetCore.Localization.Tests/AcceptLanguageHeaderRequestCultureProviderTest.cs +++ b/test/Microsoft.AspNetCore.Localization.Tests/AcceptLanguageHeaderRequestCultureProviderTest.cs @@ -137,6 +137,7 @@ namespace Microsoft.Extensions.Localization.Tests { var requestCultureFeature = context.Features.Get(); var requestCulture = requestCultureFeature.RequestCulture; + Assert.Equal("ar-YE", requestCulture.Culture.Name); Assert.Equal("ar-YE", requestCulture.UICulture.Name); return Task.FromResult(0); diff --git a/test/Microsoft.AspNetCore.Localization.Tests/CookieRequestCultureProviderTest.cs b/test/Microsoft.AspNetCore.Localization.Tests/CookieRequestCultureProviderTest.cs index d40833e97a..316ab69d57 100644 --- a/test/Microsoft.AspNetCore.Localization.Tests/CookieRequestCultureProviderTest.cs +++ b/test/Microsoft.AspNetCore.Localization.Tests/CookieRequestCultureProviderTest.cs @@ -93,6 +93,7 @@ namespace Microsoft.Extensions.Localization.Tests using (var server = new TestServer(builder)) { var client = server.CreateClient(); + client.DefaultRequestHeaders.Add("Cookie", new CookieHeaderValue("Preferences", "uic=ar-SA").ToString()); var response = await client.GetAsync(string.Empty); } diff --git a/test/Microsoft.AspNetCore.Localization.Tests/QueryStringRequestCultureProviderTest.cs b/test/Microsoft.AspNetCore.Localization.Tests/QueryStringRequestCultureProviderTest.cs index d7935fc113..113d54c90e 100644 --- a/test/Microsoft.AspNetCore.Localization.Tests/QueryStringRequestCultureProviderTest.cs +++ b/test/Microsoft.AspNetCore.Localization.Tests/QueryStringRequestCultureProviderTest.cs @@ -273,6 +273,7 @@ namespace Microsoft.Extensions.Localization.Tests } }; var provider = new QueryStringRequestCultureProvider(); + provider.QueryStringKey = "c"; provider.UIQueryStringKey = "uic"; options.RequestCultureProviders.Insert(0, provider); diff --git a/test/Microsoft.Extensions.Localization.Tests/ResourceManagerStringLocalizerTest.cs b/test/Microsoft.Extensions.Localization.Tests/ResourceManagerStringLocalizerTest.cs index c0ef4b9714..a3fada4bb2 100644 --- a/test/Microsoft.Extensions.Localization.Tests/ResourceManagerStringLocalizerTest.cs +++ b/test/Microsoft.Extensions.Localization.Tests/ResourceManagerStringLocalizerTest.cs @@ -56,7 +56,6 @@ namespace Microsoft.Extensions.Localization.Tests var resourceManager2 = new TestResourceManager(baseName, resourceAssembly2.Assembly); var resourceStreamManager1 = new TestResourceStringProvider(resourceNamesCache, resourceAssembly1, baseName); var resourceStreamManager2 = new TestResourceStringProvider(resourceNamesCache, resourceAssembly2, baseName); - var localizer1 = new ResourceManagerStringLocalizer( resourceManager1, resourceStreamManager1, @@ -194,17 +193,15 @@ namespace Microsoft.Extensions.Localization.Tests public class TestAssemblyWrapper : AssemblyWrapper { - private readonly string _name; - public TestAssemblyWrapper(string name = nameof(TestAssemblyWrapper)) : base(typeof(TestAssemblyWrapper).GetTypeInfo().Assembly) { - _name = name; + FullName = name; } public int GetManifestResourceStreamCallCount { get; private set; } - public override string FullName => _name; + public override string FullName { get; } public override Stream GetManifestResourceStream(string name) {