releases/tests/Paca.Tests/Browser/ChromeSiteSecurityEvaluatorTests.cs

64 lines
1.9 KiB
C#

using Paca.Browser.Tabs;
using Xunit;
namespace Paca.Tests.Browser;
public class ChromeSiteSecurityEvaluatorTests
{
[Theory]
[InlineData("https://www.google.com")]
[InlineData("https://github.com/Video-Downloader")]
[InlineData("https://youtube.com/watch?v=123")]
public void Evaluate_ReturnsSecure_ForHttps(string url)
{
var status = SiteSecurityEvaluator.Evaluate(url);
Assert.True(status.IsSecure);
Assert.False(status.IsInsecure);
Assert.False(status.IsInternal);
Assert.Equal("\uE72E", status.Glyph);
Assert.Contains("보안 연결됨", status.StatusText);
}
[Theory]
[InlineData("http://neverssl.com")]
[InlineData("http://example.com/test")]
public void Evaluate_ReturnsInsecure_ForHttp(string url)
{
var status = SiteSecurityEvaluator.Evaluate(url);
Assert.False(status.IsSecure);
Assert.True(status.IsInsecure);
Assert.False(status.IsInternal);
Assert.Equal("\uE7BA", status.Glyph);
Assert.Contains("주의 요함", status.StatusText);
}
[Theory]
[InlineData("paca://settings")]
[InlineData("paca://newtab")]
[InlineData("chrome://downloads")]
[InlineData("about:blank")]
public void Evaluate_ReturnsInternal_ForSystemPages(string url)
{
var status = SiteSecurityEvaluator.Evaluate(url);
Assert.False(status.IsSecure);
Assert.False(status.IsInsecure);
Assert.True(status.IsInternal);
Assert.Equal("\uE83D", status.Glyph);
Assert.Contains("시스템", status.StatusText);
}
[Theory]
[InlineData("")]
[InlineData(" ")]
[InlineData(null)]
public void Evaluate_HandlesNullAndEmptySafely(string? url)
{
var status = SiteSecurityEvaluator.Evaluate(url);
Assert.NotNull(status);
Assert.True(status.IsInternal);
}
}