[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
This commit is contained in:
TJ Lambert 2020-10-19 09:18:30 -05:00 коммит произвёл GitHub
Родитель f8b66658c5
Коммит 369c3f8668
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 43 добавлений и 0 удалений

Просмотреть файл

@ -1,3 +1,4 @@
using System;
using System.IO; using System.IO;
using System.Reflection; using System.Reflection;
using Microsoft.Build.Utilities; using Microsoft.Build.Utilities;
@ -5,6 +6,7 @@ using NUnit.Framework;
using System.Globalization; using System.Globalization;
using System.Threading; using System.Threading;
using System.Collections.Generic; using System.Collections.Generic;
using Xamarin.Localization.MSBuild;
namespace Xamarin.iOS.Tasks { namespace Xamarin.iOS.Tasks {
[TestFixture] [TestFixture]
@ -41,5 +43,45 @@ namespace Xamarin.iOS.Tasks {
Thread.CurrentThread.CurrentUICulture = originalCulture; 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);
}
} }
} }

Просмотреть файл

@ -24,6 +24,7 @@
<Reference Include="Microsoft.Build.Tasks.Core" HintPath="$(MSBuildBinPath)\Microsoft.Build.Tasks.Core.dll" /> <Reference Include="Microsoft.Build.Tasks.Core" HintPath="$(MSBuildBinPath)\Microsoft.Build.Tasks.Core.dll" />
<Reference Include="Microsoft.Build.Utilities.Core" HintPath="$(MSBuildBinPath)\Microsoft.Build.Utilities.Core.dll" /> <Reference Include="Microsoft.Build.Utilities.Core" HintPath="$(MSBuildBinPath)\Microsoft.Build.Utilities.Core.dll" />
<Reference Include="Xamarin.iOS.Tasks" HintPath="..\..\..\msbuild\Xamarin.iOS.Tasks\bin\$(Configuration)\netstandard2.0\Xamarin.iOS.Tasks.dll" /> <Reference Include="Xamarin.iOS.Tasks" HintPath="..\..\..\msbuild\Xamarin.iOS.Tasks\bin\$(Configuration)\netstandard2.0\Xamarin.iOS.Tasks.dll" />
<Reference Include="Xamarin.Localization.MSBuild" HintPath="..\..\..\msbuild\Xamarin.iOS.Tasks\bin\$(Configuration)\netstandard2.0\Xamarin.Localization.MSBuild.dll" />
<PackageReference Include="NUnit" Version="3.12.0" /> <PackageReference Include="NUnit" Version="3.12.0" />
<PackageReference Include="NUnit.ConsoleRunner" Version="3.11.1" /> <PackageReference Include="NUnit.ConsoleRunner" Version="3.11.1" />
<PackageReference Include="NUnit.Extension.NUnitV2ResultWriter" Version="3.6.0" /> <PackageReference Include="NUnit.Extension.NUnitV2ResultWriter" Version="3.6.0" />