feat(ads/seo/release): v1.2.0 with live Google Ads, isolated ad profile, ads.txt, and SEO/AEO/GEO optimization
This commit is contained in:
parent
a88aafa1e5
commit
0e568f1f0a
975 changed files with 130593 additions and 16783 deletions
88
tests/Paca.Tests/App/ZenBrowserSideRailGateTests.cs
Normal file
88
tests/Paca.Tests/App/ZenBrowserSideRailGateTests.cs
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
using System.IO;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Windows;
|
||||
using Paca.App;
|
||||
using Paca.Tests.Infrastructure;
|
||||
using Xunit;
|
||||
|
||||
namespace Paca.Tests.App;
|
||||
|
||||
public class ZenBrowserSideRailGateTests
|
||||
{
|
||||
[Fact]
|
||||
public void Gate_ZenSideRail_XamlStructure_ContainsVerticalIconButtonsOnRight()
|
||||
{
|
||||
var mwXaml = SourceTree.MainWindowXaml;
|
||||
|
||||
// 1. Zen 브라우저 스타일 우측 세로 레일 컨테이너(ZenSideRail) 존재
|
||||
Assert.Contains("x:Name=\"ZenSideRail\"", mwXaml);
|
||||
|
||||
// 2. SideTabsContainer 내부 세로(Vertical) 스택패널 및 3대 아이콘 글리프 포함 확인
|
||||
var sideTabsBlock = Regex.Match(mwXaml, @"<Border[^>]*x:Name=""SideTabsContainer""[^>]*>(.*?)</Border>", RegexOptions.Singleline);
|
||||
Assert.True(sideTabsBlock.Success, "SideTabsContainer 블록이 존재해야 합니다.");
|
||||
var content = sideTabsBlock.Groups[1].Value;
|
||||
|
||||
Assert.Contains("Orientation=\"Vertical\"", content);
|
||||
Assert.Contains("", content); // 다운로드 아이콘
|
||||
Assert.Contains("", content); // 방문 기록 아이콘
|
||||
Assert.Contains("", content); // 즐겨찾기 아이콘
|
||||
|
||||
// 3. 서랍 헤더 내 패널 타이틀 텍스트 블록(PanelTitleText) 존재 확인
|
||||
Assert.Contains("x:Name=\"PanelTitleText\"", mwXaml);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Gate_ZenSideRail_CollapsedState_ExposesDirectAccessRailIcons()
|
||||
{
|
||||
var mwXaml = SourceTree.MainWindowXaml;
|
||||
|
||||
// 접힘 상태(56px)에서도 바로 클릭하여 펼칠 수 있는 CollapsedRailIcons 스택 확인
|
||||
Assert.Contains("x:Name=\"CollapsedRailIcons\"", mwXaml);
|
||||
Assert.Contains("CollapsedRailDownload_Click", mwXaml);
|
||||
Assert.Contains("CollapsedRailHistory_Click", mwXaml);
|
||||
Assert.Contains("CollapsedRailBookmark_Click", mwXaml);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Gate_ZenSideRail_SwitchingTabs_UpdatesPanelContent_AndActiveState()
|
||||
{
|
||||
using var sta = StaDispatcher.Start();
|
||||
WpfTestApp.Ensure(sta.Dispatcher);
|
||||
|
||||
var ok = sta.Invoke(() =>
|
||||
{
|
||||
var window = new MainWindow();
|
||||
window.ApplyPanelState(false); // 펼침
|
||||
|
||||
// 1. 기본 상태는 다운로드
|
||||
Assert.Equal(Visibility.Visible, window.DownloadsPanelView.Visibility);
|
||||
Assert.Equal(Visibility.Collapsed, window.HistoryPanelView.Visibility);
|
||||
Assert.Equal(Visibility.Collapsed, window.BookmarksPanelView.Visibility);
|
||||
Assert.Equal("다운로드", window.PanelTitleText.Text);
|
||||
|
||||
// 2. 방문 기록 아이콘 클릭 -> 방문 기록 뷰 활성화 및 타이틀 변경
|
||||
window.SideTabHistory.IsChecked = true;
|
||||
Assert.Equal(Visibility.Collapsed, window.DownloadsPanelView.Visibility);
|
||||
Assert.Equal(Visibility.Visible, window.HistoryPanelView.Visibility);
|
||||
Assert.Equal(Visibility.Collapsed, window.BookmarksPanelView.Visibility);
|
||||
Assert.Equal("방문 기록", window.PanelTitleText.Text);
|
||||
|
||||
// 3. 즐겨찾기 아이콘 클릭 -> 즐겨찾기 뷰 활성화 및 타이틀 변경
|
||||
window.SideTabBookmarks.IsChecked = true;
|
||||
Assert.Equal(Visibility.Collapsed, window.DownloadsPanelView.Visibility);
|
||||
Assert.Equal(Visibility.Collapsed, window.HistoryPanelView.Visibility);
|
||||
Assert.Equal(Visibility.Visible, window.BookmarksPanelView.Visibility);
|
||||
Assert.Equal("즐겨찾기", window.PanelTitleText.Text);
|
||||
|
||||
// 4. 다시 다운로드 아이콘 클릭 -> 복귀
|
||||
window.SideTabDownloads.IsChecked = true;
|
||||
Assert.Equal(Visibility.Visible, window.DownloadsPanelView.Visibility);
|
||||
Assert.Equal("다운로드", window.PanelTitleText.Text);
|
||||
|
||||
window.Close();
|
||||
return true;
|
||||
});
|
||||
|
||||
Assert.True(ok);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue