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,80 @@
using System;
using System.IO;
using System.Linq;
using Paca.App;
using Paca.App.Core;
using Paca.Browser.Tabs;
using Paca.Tests.Infrastructure;
using Xunit;
namespace Paca.Tests.Browser;
public class ChromeParityMilestone12Tests
{
[Fact]
public void UpdateAddressSuggestions_일반_검색어_입력시_상단에_검색제안_항목이_생성된다()
{
using var sta = StaDispatcher.Start();
WpfTestApp.Ensure(sta.Dispatcher);
sta.Invoke(() =>
{
var dataDir = Path.Combine(Path.GetTempPath(), $"vd_omni_sugg_{Guid.NewGuid():N}");
Environment.SetEnvironmentVariable("VD_DATA_DIR", dataDir);
try
{
var win = new MainWindow();
win.AddressBox.Focus();
win.UpdateSuggestions("dotnet testing", ignoreFocus: true);
var items = win.AddressSuggestions.ItemsSource as System.Collections.IEnumerable;
Assert.NotNull(items);
var list = items.Cast<HistoryEntry>().ToList();
Assert.NotEmpty(list);
var top = list.First();
Assert.Contains("\uE721", top.Title);
Assert.Contains("dotnet testing", top.Title);
Assert.Contains("검색", top.Title);
Assert.Contains("dotnet+testing", top.Url);
}
finally
{
try { if (Directory.Exists(dataDir)) Directory.Delete(dataDir, true); } catch { }
}
});
}
[Fact]
public void UpdateAddressSuggestions_키워드_접두_g_입력시_Google_검색_제안이_생성된다()
{
using var sta = StaDispatcher.Start();
WpfTestApp.Ensure(sta.Dispatcher);
sta.Invoke(() =>
{
var dataDir = Path.Combine(Path.GetTempPath(), $"vd_omni_g_{Guid.NewGuid():N}");
Environment.SetEnvironmentVariable("VD_DATA_DIR", dataDir);
try
{
var win = new MainWindow();
win.AddressBox.Focus();
win.UpdateSuggestions("g rust async", ignoreFocus: true);
var items = win.AddressSuggestions.ItemsSource as System.Collections.IEnumerable;
Assert.NotNull(items);
var list = items.Cast<HistoryEntry>().ToList();
Assert.NotEmpty(list);
var top = list.First();
Assert.Contains("\uE721", top.Title);
Assert.Contains("Google", top.Title);
Assert.Contains("google.com", top.Url);
}
finally
{
try { if (Directory.Exists(dataDir)) Directory.Delete(dataDir, true); } catch { }
}
});
}
}