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,49 @@
using System;
using System.IO;
using Xunit;
namespace Paca.Tests.App;
public class QuickActionSpotlightUiGateTests
{
private static readonly string SolutionRoot = Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, "..", "..", "..", "..", ".."));
private readonly string _xamlPath;
private readonly string _csPath;
public QuickActionSpotlightUiGateTests()
{
_xamlPath = Path.Combine(SolutionRoot, "src", "Paca.App", "QuickActionLauncherWindow.xaml");
_csPath = Path.Combine(SolutionRoot, "src", "Paca.App", "QuickActionLauncherWindow.xaml.cs");
}
[Fact]
public void Gate_QuickActionSpotlight_XamlStructure_ContainsEssentialControls()
{
Assert.True(File.Exists(_xamlPath), $"QuickActionLauncherWindow.xaml must exist at {_xamlPath}");
var xaml = File.ReadAllText(_xamlPath);
// Core interactive controls
Assert.Contains("x:Name=\"QuickActionSearchBox\"", xaml);
Assert.Contains("x:Name=\"QuickActionResultsList\"", xaml);
Assert.Contains("x:Name=\"InlineEvaluatorCard\"", xaml);
// Accessibility & UIA FastPass
Assert.Contains("AutomationProperties.Name", xaml);
// Design token binding
Assert.Contains("DynamicResource", xaml);
Assert.Contains("CornerRadius=\"12\"", xaml); // Modern Spotlight card
}
[Fact]
public void Gate_QuickActionSpotlight_CodeBehind_HandlesExecutionAndSearch()
{
Assert.True(File.Exists(_csPath), $"QuickActionLauncherWindow.xaml.cs must exist at {_csPath}");
var cs = File.ReadAllText(_csPath);
Assert.Contains("QuickActionCatalog", cs);
Assert.Contains("QuickActionSearchEngine", cs);
Assert.Contains("QuickActionInlineEvaluator", cs);
Assert.Contains("ExecuteSelectedAction", cs);
}
}