using System; using System.IO; using Paca.Browser; using Paca.Tests.Infrastructure; using Xunit; namespace Paca.Tests.Browser; public class ChromeParityMilestone14Tests { [Theory] [InlineData("https://example.com/watch?v=12345&utm_source=twitter&utm_medium=social&si=abc", "https://example.com/watch?v=12345")] [InlineData("https://example.com/search?q=hello&fbclid=xyz987", "https://example.com/search?q=hello")] [InlineData("https://example.com/article?gclid=test1234&msclkid=test5678", "https://example.com/article")] [InlineData("https://example.com/page?id=42&igshid=abc#section", "https://example.com/page?id=42#section")] [InlineData("https://example.com/clean?no_tracking=1", "https://example.com/clean?no_tracking=1")] public void UrlCleaner_StripTrackingParams_추적파라미터만_정밀_제거(string input, string expected) { var cleaned = UrlCleaner.StripTrackingParams(input); Assert.Equal(expected, cleaned); } [Fact] public void MainWindow_AddressBox_AltEnter_새탭_핸들러_검증() { var csPath = SourceTree.AppPath("MainWindow.xaml.cs"); Assert.True(File.Exists(csPath), "MainWindow.xaml.cs 파일이 존재해야 합니다."); var code = File.ReadAllText(csPath); // AddressBox_PreviewKeyDown 내에서 Alt+Enter 또는 Shift+Enter 로 새 탭/새 창 네비게이션이 분기되어야 함 Assert.Contains("ModifierKeys.Alt", code); Assert.Contains("NewTab", code); } [Fact] public void MainWindow_AddressBox_ContextMenu_추적파라미터제거_복사_항목_존재() { var xamlPath = SourceTree.AppPath("MainWindow.xaml"); Assert.True(File.Exists(xamlPath), "MainWindow.xaml 파일이 존재해야 합니다."); var xaml = File.ReadAllText(xamlPath); Assert.Contains("추적 파라미터 제거 링크 복사", xaml); } }