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:
Yun Chan 2026-09-14 00:39:44 +09:00
parent a88aafa1e5
commit 0e568f1f0a
975 changed files with 130593 additions and 16783 deletions

View file

@ -0,0 +1,63 @@
using Paca.App.Core;
using Paca.App.ViewModels;
using Paca.Core.Config;
using Xunit;
namespace Paca.Tests.Browser;
public class DownloadActiveStateTests
{
[Theory]
[InlineData("대기", false)]
[InlineData("일시정지", false)]
[InlineData("완료", false)]
[InlineData("오류", false)]
[InlineData("취소됨", false)]
[InlineData("다운로드 중", true)]
[InlineData("병합 중", true)]
[InlineData("리먹스 중", true)]
[InlineData("대기 중", true)]
[InlineData("예약 대기", true)]
[InlineData("속도제한 대기", true)]
public void IsActiveDownload_상태별_활성_여부_정확성_검증(string status, bool expectedActive)
{
var item = new DownloadItemViewModel("Test Video")
{
Status = status
};
Assert.Equal(expectedActive, item.IsActiveDownload);
}
[Fact]
public void 단순_감지된_미디어는_ActiveDownloadsCount에_포함되지_않는다()
{
var cfg = new AppConfig();
var manager = new DownloadManager(cfg, _ => Task.FromResult(new List<Microsoft.Web.WebView2.Core.CoreWebView2Cookie>()), _ => { });
// 단순 감지된 미디어 등록 (초기 Status: "대기")
var detected1 = new DownloadItemViewModel("Detected 1") { Status = "대기" };
var detected2 = new DownloadItemViewModel("Detected 2") { Status = "대기" };
var completed = new DownloadItemViewModel("Done 1") { Status = "완료" };
var active = new DownloadItemViewModel("Active 1") { Status = "다운로드 중" };
manager.Items.Add(detected1);
manager.Items.Add(detected2);
manager.Items.Add(completed);
manager.Items.Add(active);
// 오직 실제 다운로드 중인 1건만 카운트되어야 함
Assert.Equal(1, manager.ActiveDownloadsCount);
}
[Fact]
public void DownloadManager_배터리_절전_모드_연동_PowerManager_인스턴스_및_상태_제어_검증()
{
var cfg = new AppConfig { EnableBatterySaver = true };
var manager = new DownloadManager(cfg, _ => Task.FromResult(new List<Microsoft.Web.WebView2.Core.CoreWebView2Cookie>()), _ => { });
Assert.NotNull(manager.PowerManager);
manager.PowerManager.UpdateBatteryState(percent: 15, isCharging: false);
Assert.True(manager.PowerManager.IsLowPowerModeActive);
}
}