mirror of
https://github.com/ICDSystems/ICD.Common.Utils.git
synced 2026-01-11 19:44:55 +00:00
refactor: Splitting ANSI into codes and texts, instead of converting straight to HTML
This commit is contained in:
27
ICD.Common.Utils.Tests/AnsiUtilsTest.cs
Normal file
27
ICD.Common.Utils.Tests/AnsiUtilsTest.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
using System.Linq;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace ICD.Common.Utils.Tests
|
||||
{
|
||||
[TestFixture]
|
||||
public sealed class AnsiUtilsTest
|
||||
{
|
||||
[Test]
|
||||
public void ToSpansTest()
|
||||
{
|
||||
string ansi = "\x1b[30mblack\x1b[37mwhite\x1b[0mdefault";
|
||||
AnsiSpan[] spans = AnsiUtils.ToSpans(ansi).ToArray();
|
||||
|
||||
Assert.AreEqual(3, spans.Length);
|
||||
|
||||
Assert.AreEqual("black", spans[0].Text);
|
||||
Assert.AreEqual("30", spans[0].Code);
|
||||
|
||||
Assert.AreEqual("white", spans[1].Text);
|
||||
Assert.AreEqual("37", spans[1].Code);
|
||||
|
||||
Assert.AreEqual("default", spans[2].Text);
|
||||
Assert.AreEqual("0", spans[2].Code);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
using ICD.Common.Utils.Converters;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace ICD.Common.Utils.Tests.Converters
|
||||
{
|
||||
[TestFixture]
|
||||
public sealed class AnsiToHtmlTest
|
||||
{
|
||||
[TestCase("black\x1b[37mwhite",
|
||||
@"black<span style=""color:#BBBBBB"">white</span>")]
|
||||
[TestCase("black\x1b[0mblack",
|
||||
@"blackblack")]
|
||||
[TestCase("black\x1b[37mwhite\x1b[0m",
|
||||
@"black<span style=""color:#BBBBBB"">white</span>")]
|
||||
[TestCase("\x1b[30mblack\x1b[37mwhite",
|
||||
@"<span style=""color:#000000"">black<span style=""color:#BBBBBB"">white</span></span>")]
|
||||
public void ConvertTest(string ansi, string expected)
|
||||
{
|
||||
Assert.AreEqual(expected, AnsiToHtml.Convert(ansi));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user