From 369c3f86686ef0e85b02d9bfdf29a36fbd379aa5 Mon Sep 17 00:00:00 2001 From: TJ Lambert <50846373+tj-devel709@users.noreply.github.com> Date: Mon, 19 Oct 2020 09:18:30 -0500 Subject: [PATCH] [msbuild] Updating LocalizationStringTest (#9889) Adding a test to check a specific error code to see if the strings in other locales are translated. This test will be added to the Localization wiki in Maccore accessible to the xamarin-macios team: https://github.com/xamarin/maccore/wiki/Localization --- .../TaskTests/LocalizationStringTest.cs | 42 +++++++++++++++++++ .../Xamarin.MacDev.Tasks.Tests.csproj | 1 + 2 files changed, 43 insertions(+) diff --git a/tests/msbuild/Xamarin.MacDev.Tasks.Tests/TaskTests/LocalizationStringTest.cs b/tests/msbuild/Xamarin.MacDev.Tasks.Tests/TaskTests/LocalizationStringTest.cs index d7061cce58..53cd14cda2 100644 --- a/tests/msbuild/Xamarin.MacDev.Tasks.Tests/TaskTests/LocalizationStringTest.cs +++ b/tests/msbuild/Xamarin.MacDev.Tasks.Tests/TaskTests/LocalizationStringTest.cs @@ -1,3 +1,4 @@ +using System; using System.IO; using System.Reflection; using Microsoft.Build.Utilities; @@ -5,6 +6,7 @@ using NUnit.Framework; using System.Globalization; using System.Threading; using System.Collections.Generic; +using Xamarin.Localization.MSBuild; namespace Xamarin.iOS.Tasks { [TestFixture] @@ -41,5 +43,45 @@ namespace Xamarin.iOS.Tasks { Thread.CurrentThread.CurrentUICulture = originalCulture; } } + + [TestCase ("cs-CZ")] + [TestCase ("de-DE")] + [TestCase ("es-ES")] + [TestCase ("fr-FR")] + [TestCase ("it-IT")] + [TestCase ("ja-JP")] + [TestCase ("ko-KR")] + [TestCase ("pl-PL")] + [TestCase ("pt-BR")] + [TestCase ("ru-RU")] + [TestCase ("tr-TR")] + [TestCase ("zh-CN")] + [TestCase ("zh-TW")] + public void SpecificErrorTranslation (string culture) + { + // insert which error code you'd like to test + string errorCode = "E0007"; + CultureInfo originalCulture = Thread.CurrentThread.CurrentUICulture; + + try { + Assert.IsFalse (string.IsNullOrEmpty (errorCode), "Error code is null or empty"); + string englishError = TranslateError ("en-US", errorCode); + string newCultureError = TranslateError (culture, errorCode); + + Assert.AreNotEqual (englishError, newCultureError, $"\"{errorCode}\" is not translated in {culture}."); + } catch (NullReferenceException){ + Assert.IsFalse (true, $"Error code \"{errorCode}\" was not found"); + } finally { + Thread.CurrentThread.CurrentUICulture = originalCulture; + } + } + + private string TranslateError (string culture, string errorCode) + { + CultureInfo cultureInfo = new CultureInfo (culture); + Thread.CurrentThread.CurrentUICulture = cultureInfo; + PropertyInfo propertyInfo = typeof (MSBStrings).GetProperty (errorCode); + return (string) propertyInfo.GetValue (null, null); + } } } diff --git a/tests/msbuild/Xamarin.MacDev.Tasks.Tests/Xamarin.MacDev.Tasks.Tests.csproj b/tests/msbuild/Xamarin.MacDev.Tasks.Tests/Xamarin.MacDev.Tasks.Tests.csproj index a8d526a8d6..2e72eff116 100644 --- a/tests/msbuild/Xamarin.MacDev.Tasks.Tests/Xamarin.MacDev.Tasks.Tests.csproj +++ b/tests/msbuild/Xamarin.MacDev.Tasks.Tests/Xamarin.MacDev.Tasks.Tests.csproj @@ -24,6 +24,7 @@ +