Files
MBN_STOCK_WEBVIEW/tests/MBN_STOCK_WEBVIEW.LegacyWeb.Tests/LegacyHiddenNonOriginalControlsTests.cs

82 lines
2.6 KiB
C#

namespace MBN_STOCK_WEBVIEW.LegacyWeb.Tests;
public sealed class LegacyHiddenNonOriginalControlsTests
{
private static readonly string RepositoryRoot = FindRepositoryRoot();
private static readonly string Markup = File.ReadAllText(Path.Combine(
RepositoryRoot,
"src",
"MBN_STOCK_WEBVIEW.LegacyParityApp",
"Web",
"index.html"));
private static readonly string Styles = File.ReadAllText(Path.Combine(
RepositoryRoot,
"src",
"MBN_STOCK_WEBVIEW.LegacyParityApp",
"Web",
"styles.css"));
[Fact]
public void Non_original_shortcuts_prepare_and_fade_are_hidden_but_remain_native_wired()
{
Assert.Contains("class=\"manual-list-actions\" aria-label=\"수동 송출 목록\" hidden",
Markup,
StringComparison.Ordinal);
Assert.Contains("id=\"playout-prepare\" class=\"prepare\" type=\"button\" disabled hidden",
Markup,
StringComparison.Ordinal);
Assert.Contains("class=\"fade-control\" for=\"playout-fade-duration\" hidden",
Markup,
StringComparison.Ordinal);
Assert.Contains("id=\"playout-fade-duration\" disabled aria-label=\"장면 효과 시간\" hidden",
Markup,
StringComparison.Ordinal);
Assert.Contains("*[hidden] { display: none !important; }", Styles,
StringComparison.Ordinal);
foreach (var id in new[]
{
"playout-prepare",
"playout-fade-duration"
})
{
Assert.Equal(1, Count(Markup, $"id=\"{id}\""));
}
foreach (var screen in new[] { "individual", "foreign", "institution", "vi" })
{
Assert.Contains($"data-manual-list-screen=\"{screen}\"", Markup,
StringComparison.Ordinal);
}
}
private static int Count(string value, string token)
{
var count = 0;
var start = 0;
while ((start = value.IndexOf(token, start, StringComparison.Ordinal)) >= 0)
{
count++;
start += token.Length;
}
return count;
}
private static string FindRepositoryRoot()
{
var directory = new DirectoryInfo(AppContext.BaseDirectory);
while (directory is not null)
{
if (File.Exists(Path.Combine(directory.FullName, "MBN_STOCK_WEBVIEW.sln")))
{
return directory.FullName;
}
directory = directory.Parent;
}
throw new DirectoryNotFoundException("Repository root was not found.");
}
}