feat: add sanitizer

This commit is contained in:
kalilistic 2021-04-04 09:20:07 -04:00
parent 09e651b3ab
commit 4504bb049f
6 changed files with 230 additions and 1 deletions

View file

@ -43,6 +43,7 @@
</ItemGroup>
<ItemGroup>
<Compile Include="LocalizationTests.cs" />
<Compile Include="Plugin\Sanitizer\SanitizerTests.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>

View file

@ -0,0 +1,67 @@
// ReSharper disable StringLiteralTypo
using System.Linq;
using NUnit.Framework;
namespace Dalamud.Test.Plugin.Sanitizer {
[TestFixture]
public class SanitizerTests {
global::Dalamud.Plugin.Sanitizer.Sanitizer sanitizer;
[Test]
public void Sanitize_NormalString_NoChange() {
sanitizer = new global::Dalamud.Plugin.Sanitizer.Sanitizer(ClientLanguage.English);
const string str = "Pixie Cotton Hood of Healing";
var sanitizedString = sanitizer.Sanitize(str);
Assert.AreEqual(str, sanitizedString);
}
[Test]
public void Sanitize_DESpecialCharacters_Sanitized() {
sanitizer = new global::Dalamud.Plugin.Sanitizer.Sanitizer(ClientLanguage.German);
const string str = @"Anemos-Panzerhandschuhe des Drachenbluts";
var sanitizedString = sanitizer.Sanitize(str);
Assert.AreEqual(@"Anemos-Panzerhandschuhe des Drachenbluts", sanitizedString);
}
[Test]
public void Sanitize_FRSpecialCharacters_Sanitized() {
sanitizer = new global::Dalamud.Plugin.Sanitizer.Sanitizer(ClientLanguage.French);
const string str = @"Le Diademe: terrains de chasse|Le Diademe: terrains de chasse";
var sanitizedString = sanitizer.Sanitize(str);
Assert.AreEqual(@"Le Diademe: terrains de chasse|Le Diademe: terrains de chasse", sanitizedString);
}
[Test]
public void Sanitize_SpecifyLanguage_Sanitized() {
sanitizer = new global::Dalamud.Plugin.Sanitizer.Sanitizer(ClientLanguage.French);
const string str = @"Le Diademe: terrains de chasse|Le Diademe: terrains de chasse";
var sanitizedString = sanitizer.Sanitize(str, ClientLanguage.French);
Assert.AreEqual(@"Le Diademe: terrains de chasse|Le Diademe: terrains de chasse", sanitizedString);
}
[Test]
public void Sanitize_List_Sanitized() {
sanitizer = new global::Dalamud.Plugin.Sanitizer.Sanitizer(ClientLanguage.German);
const string str = @"Anemos-Panzerhandschuhe des Drachenbluts";
var sanitizedStrings = sanitizer.Sanitize(new[] {str});
Assert.AreEqual(@"Anemos-Panzerhandschuhe des Drachenbluts", sanitizedStrings.First());
}
[Test]
public void Sanitize_SpecifyLanguageList_Sanitized() {
sanitizer = new global::Dalamud.Plugin.Sanitizer.Sanitizer(ClientLanguage.German);
const string str = @"Anemos-Panzerhandschuhe des Drachenbluts";
var sanitizedStrings = sanitizer.Sanitize(new[] {str}, ClientLanguage.German);
Assert.AreEqual(@"Anemos-Panzerhandschuhe des Drachenbluts", sanitizedStrings.First());
}
[Test]
public void Sanitize_UseAlternateLanguage_Sanitized() {
sanitizer = new global::Dalamud.Plugin.Sanitizer.Sanitizer(ClientLanguage.English);
const string str = @"Anemos-Panzerhandschuhe des Drachenbluts";
var sanitizedStrings = sanitizer.Sanitize(new[] {str}, ClientLanguage.German);
Assert.AreEqual(@"Anemos-Panzerhandschuhe des Drachenbluts", sanitizedStrings.First());
}
}
}