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); } }