using System; using System.IO; using System.Windows; using Paca.App; using Paca.Browser; using Paca.Browser.Tabs; using Paca.Tests.Infrastructure; using Xunit; namespace Paca.Tests.Browser; public class ChromeParityMilestone9Tests { [Theory] [InlineData("https://sub.example.com:8080/path?q=1", "sub.example.com")] [InlineData("http://localhost:3000/", "localhost")] [InlineData("https://www.google.com/search?q=test", "www.google.com")] [InlineData("https://naver.com", "naver.com")] public void SiteCookieCleaner_NormalizeDomain_올바른_호스트를_추출한다(string url, string expectedDomain) { var domain = SiteCookieCleaner.NormalizeDomain(url); Assert.Equal(expectedDomain, domain); } [Theory] [InlineData(".example.com", "example.com", true)] [InlineData(".example.com", "sub.example.com", true)] [InlineData("example.com", "example.com", true)] [InlineData("other.com", "example.com", false)] [InlineData("notexample.com", "example.com", false)] [InlineData(".google.com", "mail.google.com", true)] public void SiteCookieCleaner_MatchDomain_도메인_일치여부를_정확히_판정한다(string cookieDomain, string targetHost, bool expectedMatch) { var matches = SiteCookieCleaner.MatchDomain(cookieDomain, targetHost); Assert.Equal(expectedMatch, matches); } [Fact] public void MainWindow_Xaml_고정탭은_닫기버튼이_숨김_처리된다() { var mwXaml = File.ReadAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "../../../../../src/Paca.App/MainWindow.xaml")); Assert.Contains("x:Name=\"TabCloseBtn\"", mwXaml); Assert.Contains("Binding=\"{Binding IsPinned}\"", mwXaml); Assert.Contains("TargetName=\"TabCloseBtn\"", mwXaml); } }