61 lines
2.1 KiB
C#
61 lines
2.1 KiB
C#
6 years ago
|
using System;
|
||
|
using Xunit;
|
||
|
using System.IO;
|
||
|
using System.Diagnostics;
|
||
|
|
||
6 years ago
|
namespace test
|
||
6 years ago
|
{
|
||
6 years ago
|
|
||
|
[Trait("regres", "no")]
|
||
|
public class NodeTests
|
||
6 years ago
|
{
|
||
|
[Fact]
|
||
|
void TestNodeJsForAnsitohtml ()
|
||
|
{
|
||
6 years ago
|
var procStart = new ProcessStartInfo("node", "node_modules/ansi-to-html/bin/ansi-to-html");
|
||
6 years ago
|
procStart.UseShellExecute = false;
|
||
|
procStart.RedirectStandardInput = true;
|
||
|
procStart.RedirectStandardOutput = true;
|
||
|
procStart.RedirectStandardError = true;
|
||
|
var proc = Process.Start(procStart);
|
||
|
proc.StandardInput.WriteLine("\x001b[30mblack\x1b[37mwhite");
|
||
|
proc.StandardInput.Close();
|
||
|
while (!proc.StandardOutput.EndOfStream)
|
||
|
{
|
||
|
Console.Write(proc.StandardOutput.ReadToEnd());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[Fact]
|
||
|
void AnsiToHtml()
|
||
|
{
|
||
|
var procStart = new ProcessStartInfo("ls", "-l --color=always");
|
||
|
procStart.UseShellExecute = false;
|
||
|
procStart.RedirectStandardInput = false;
|
||
|
procStart.RedirectStandardOutput = true;
|
||
|
var proc = Process.Start(procStart);
|
||
|
var encoded = GetStream(proc.StandardOutput);
|
||
|
var reader = new StreamReader(encoded);
|
||
|
var txt = reader.ReadToEnd();
|
||
6 years ago
|
|
||
6 years ago
|
Console.WriteLine(txt);
|
||
|
}
|
||
|
|
||
|
public static Stream GetStream(StreamReader reader)
|
||
|
{
|
||
6 years ago
|
var procStart = new ProcessStartInfo("node", "node_modules/ansi-to-html/bin/ansi-to-html");
|
||
6 years ago
|
procStart.UseShellExecute = false;
|
||
|
procStart.RedirectStandardInput = true;
|
||
|
procStart.RedirectStandardOutput = true;
|
||
|
procStart.RedirectStandardError = true;
|
||
|
var mem = new MemoryStream();
|
||
|
StreamWriter writer = new StreamWriter(mem);
|
||
|
var proc = Process.Start(procStart);
|
||
|
var text = reader.ReadToEnd();
|
||
|
proc.StandardInput.WriteLine(text);
|
||
|
proc.StandardInput.Close();
|
||
|
return proc.StandardOutput.BaseStream;
|
||
|
}
|
||
|
}
|
||
|
}
|