using System; using System.Linq; using Paca.Browser.Tabs; using Xunit; namespace Paca.Tests.Browser; public class ChromeTabHoverCardTests { [Theory] [InlineData("https://www.youtube.com/watch?v=dQw4w9WgXcQ", "youtube.com")] [InlineData("https://news.ycombinator.com/news", "news.ycombinator.com")] [InlineData("http://localhost:52100/api/tabs", "localhost:52100")] [InlineData("paca://settings", "paca://settings")] [InlineData("about:blank", "about:blank")] public void TabPreview_ExtractsCleanDomain(string url, string expectedDomain) { var preview = new TabPreview("테스트 탭", url, IsSuspended: false, IsAudioPlaying: false, IsLocked: false, IsReader: false, IsMuted: false); Assert.Equal(expectedDomain, preview.Domain); } [Fact] public void TabPreview_Badges_IncludesMemorySavedAndMuted() { var preview = new TabPreview("대기 탭", "https://example.com", IsSuspended: true, IsAudioPlaying: false, IsLocked: false, IsReader: false, IsMuted: true); var badges = preview.GetBadges(); Assert.Contains("메모리 절약됨", badges); Assert.Contains("음소거됨", badges); } [Fact] public void TabPreview_Badges_IncludesAudioPlaying() { var preview = new TabPreview("음악 탭", "https://youtube.com", IsSuspended: false, IsAudioPlaying: true, IsLocked: false, IsReader: false, IsMuted: false); var badges = preview.GetBadges(); Assert.Contains("오디오 재생 중", badges); Assert.DoesNotContain("음소거됨", badges); } [Fact] public void TabPreview_BuildTooltipText_FormatsWithDomainAndBadges() { var preview = new TabPreview("네이버", "https://www.naver.com", IsSuspended: false, IsAudioPlaying: false, IsLocked: false, IsReader: false, IsMuted: false); var text = preview.BuildTooltipText(); Assert.Contains("네이버", text); Assert.Contains("naver.com", text); } }