using System; using System.IO; using Paca.App; using Paca.Browser.Tabs; using Paca.Tests.Infrastructure; using Xunit; namespace Paca.Tests.Browser; public class ChromeParityMilestone13Tests { [Fact] public void ToggleTabMute_음소거_토글_정상_동작() { using var sta = StaDispatcher.Start(); WpfTestApp.Ensure(sta.Dispatcher); sta.Invoke(() => { var dataDir = Path.Combine(Path.GetTempPath(), $"vd_mute_{Guid.NewGuid():N}"); Environment.SetEnvironmentVariable("VD_DATA_DIR", dataDir); try { var win = new MainWindow(); win.TabsManager.Tabs.Clear(); var tab = win.TabsManager.NewTab("https://site1.com"); Assert.False(tab.IsMuted); win.ToggleTabMute(tab); Assert.True(tab.IsMuted); win.ToggleTabMute(tab); Assert.False(tab.IsMuted); } finally { try { if (Directory.Exists(dataDir)) Directory.Delete(dataDir, true); } catch { } } }); } [Fact] public void MainWindow_XAML_IsMuted_트리거에_Visibility_Visible_포함() { var xamlPath = SourceTree.AppPath("MainWindow.xaml"); Assert.True(File.Exists(xamlPath), "MainWindow.xaml 파일이 존재해야 합니다."); var xaml = File.ReadAllText(xamlPath); // IsMuted 가 True 일 때 AudioIcon 이 화면에 유지되도록 Visibility Visible 세터가 있어야 함 Assert.Contains("", xaml); var idx = xaml.IndexOf(""); var endIdx = xaml.IndexOf("", idx); var block = xaml.Substring(idx, endIdx - idx + 14); Assert.Contains("Property=\"Visibility\" Value=\"Visible\"", block); } }