releases/tests/Paca.Tests/Browser/ChromeParityDialogsGateTests.cs

92 lines
3.3 KiB
C#

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<BrowserTaskItem>().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 { }
}
});
}
}