using System.IO; using System.Linq; using System.Windows.Input; using Paca.App; using Paca.Browser; using Paca.Browser.Tabs; using Paca.Tests.Infrastructure; using Xunit; namespace Paca.Tests.Browser; public class ChromeParityDialogsGateTests { [Fact] public void ClearBrowsingDataDialog_초기화_및_기본_선택_검증() { using var sta = StaDispatcher.Start(); WpfTestApp.Ensure(sta.Dispatcher); sta.Invoke(() => { var dataDir = Path.Combine(Path.GetTempPath(), $"vd_clear_dlg_{System.Guid.NewGuid():N}"); System.Environment.SetEnvironmentVariable("VD_DATA_DIR", dataDir); try { var dlg = new ClearBrowsingDataDialog(); Assert.NotNull(dlg); Assert.Equal("인터넷 사용 기록 삭제", dlg.Title); Assert.True(dlg.ClearHistoryCheck.IsChecked); Assert.True(dlg.ClearCookiesCheck.IsChecked); Assert.True(dlg.ClearCacheCheck.IsChecked); } finally { try { if (Directory.Exists(dataDir)) Directory.Delete(dataDir, true); } catch { } } }); } [Fact] public void BrowserTaskManagerWindow_태스크_목록_바인딩_및_종료_단추_검증() { using var sta = StaDispatcher.Start(); WpfTestApp.Ensure(sta.Dispatcher); sta.Invoke(() => { var dataDir = Path.Combine(Path.GetTempPath(), $"vd_taskmgr_{System.Guid.NewGuid():N}"); System.Environment.SetEnvironmentVariable("VD_DATA_DIR", dataDir); try { var tabMgr = new TabManager(() => new TabItem()); var tab = tabMgr.NewTab("https://github.com"); tab.Title = "GitHub - Paca"; var win = new BrowserTaskManagerWindow(tabMgr); Assert.NotNull(win); Assert.Equal("작업 관리자 - Paca", win.Title); Assert.NotNull(win.TaskList.ItemsSource); var items = win.TaskList.ItemsSource.OfType().ToList(); Assert.Contains(items, i => i.Title == "GitHub - Paca"); } finally { try { if (Directory.Exists(dataDir)) Directory.Delete(dataDir, true); } catch { } } }); } [Fact] public void QrCodeDialog_URL과_제목을_전달받아_QR이미지를_정상_생성한다() { using var sta = StaDispatcher.Start(); WpfTestApp.Ensure(sta.Dispatcher); sta.Invoke(() => { var dataDir = Path.Combine(Path.GetTempPath(), $"vd_qrdlg_{System.Guid.NewGuid():N}"); System.Environment.SetEnvironmentVariable("VD_DATA_DIR", dataDir); try { var dlg = new QrCodeDialog("https://github.com/paca", "GitHub"); Assert.NotNull(dlg); Assert.Equal("이 페이지의 QR 코드", dlg.Title); Assert.Equal("https://github.com/paca", dlg.PageUrl); Assert.NotNull(dlg.QrImage.Source); } finally { try { if (Directory.Exists(dataDir)) Directory.Delete(dataDir, true); } catch { } } }); } }