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 @@
+