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,73 @@
using System;
using System.Collections.Generic;
using System.IO;
using Paca.Browser.Autofill;
using Xunit;
namespace Paca.Tests.Browser;
public class ChromeAutofillManagerTests
{
[Fact]
public void AutofillManager_Saves_And_Retrieves_Profiles()
{
var tempFile = Path.Combine(Path.GetTempPath(), $"autofill_test_{Guid.NewGuid():N}.json");
try
{
var manager = new ChromeAutofillManager(tempFile);
var profile = new AutofillProfile(
Id: "prof-1",
FullName: "홍길동",
Email: "gildong@example.com",
PhoneNumber: "010-1234-5678",
StreetAddress: "테헤란로 123",
City: "서울",
PostalCode: "06234",
Country: "KR"
);
manager.SaveProfile(profile);
Assert.Single(manager.Profiles);
Assert.Equal("홍길동", manager.Profiles[0].FullName);
// Reload from persistence
var manager2 = new ChromeAutofillManager(tempFile);
Assert.Single(manager2.Profiles);
Assert.Equal("gildong@example.com", manager2.Profiles[0].Email);
}
finally
{
if (File.Exists(tempFile)) File.Delete(tempFile);
}
}
[Fact]
public void AutofillManager_Matches_Input_Fields_Correctly()
{
var manager = new ChromeAutofillManager();
var profile = new AutofillProfile(
Id: "prof-2",
FullName: "김철수",
Email: "chulsoo@example.com",
PhoneNumber: "010-9876-5432",
StreetAddress: "판교역로 235",
City: "성남",
PostalCode: "13494",
Country: "KR"
);
manager.SaveProfile(profile);
// Given form input field names
var suggestionsEmail = manager.SuggestValues("email");
Assert.NotEmpty(suggestionsEmail);
Assert.Equal("chulsoo@example.com", suggestionsEmail[0].Value);
var suggestionsName = manager.SuggestValues("username");
Assert.NotEmpty(suggestionsName);
Assert.Equal("김철수", suggestionsName[0].Value);
var suggestionsPhone = manager.SuggestValues("tel");
Assert.NotEmpty(suggestionsPhone);
Assert.Equal("010-9876-5432", suggestionsPhone[0].Value);
}
}