58 lines
2.3 KiB
C#
58 lines
2.3 KiB
C#
using System.Windows;
|
|
using VideoDownloader.App;
|
|
using VideoDownloader.Tests.Infrastructure;
|
|
|
|
namespace VideoDownloader.Tests.E2E;
|
|
|
|
/// <summary>
|
|
/// E2E 스모크: 실제 MainWindow 를 기동해 WebView2 초기화·탐색·검색 바·전체화면 전환이
|
|
/// 크래시 없이 동작하는지 검증한다(Phase 0 통합 확인). 네트워크 의존 제거를 위해 about:blank 사용.
|
|
/// </summary>
|
|
[Collection("E2E")]
|
|
public class MainWindowSmokeE2ETests
|
|
{
|
|
[Fact]
|
|
public async Task MainWindow_기동_탐색_검색바_전체화면_스모크()
|
|
{
|
|
using var sta = StaDispatcher.Start();
|
|
WpfTestApp.Ensure(sta.Dispatcher);
|
|
var ok = await sta.InvokeAsync(async () =>
|
|
{
|
|
var window = new MainWindow();
|
|
window.Show();
|
|
|
|
// WebView2 초기화 대기 (Loaded → InitializeBrowserAsync)
|
|
var cv = await Wait.Until(
|
|
() => Task.FromResult(window.Browser.CoreWebView2),
|
|
c => c != null, 30000);
|
|
|
|
// about:blank 탐색 (네트워크 불필요)
|
|
window.NavigateTo("about:blank");
|
|
await Wait.Until(
|
|
() => Task.FromResult(cv.Source ?? ""),
|
|
s => s.Contains("about:blank"), 15000);
|
|
|
|
// T1-3 검색 바 열기/닫기
|
|
window.OpenFind();
|
|
var findVisible = window.FindBar.Visibility == Visibility.Visible;
|
|
window.CloseFind();
|
|
var findCollapsed = window.FindBar.Visibility == Visibility.Collapsed;
|
|
|
|
// T1-11 전체화면 토글
|
|
window.ToggleFullscreen();
|
|
var toolbarHidden = window.ToolbarRow.Visibility == Visibility.Collapsed;
|
|
window.ToggleFullscreen();
|
|
var toolbarBack = window.ToolbarRow.Visibility == Visibility.Visible;
|
|
|
|
window.Close();
|
|
return (init: cv != null, nav: true, findVisible, findCollapsed, toolbarHidden, toolbarBack);
|
|
});
|
|
|
|
Assert.True(ok.init, "WebView2 초기화 실패");
|
|
Assert.True(ok.nav);
|
|
Assert.True(ok.findVisible, "검색 바 미표시");
|
|
Assert.True(ok.findCollapsed, "검색 바 미닫힘");
|
|
Assert.True(ok.toolbarHidden, "전체화면에서 툴바 미숨김");
|
|
Assert.True(ok.toolbarBack, "전체화면 복원 실패");
|
|
}
|
|
}
|