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
90
tests/Paca.Tests/Browser/ChromeSitePermissionsTests.cs
Normal file
90
tests/Paca.Tests/Browser/ChromeSitePermissionsTests.cs
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using Paca.Browser;
|
||||
using Paca.Browser.Tabs;
|
||||
using Xunit;
|
||||
|
||||
namespace Paca.Tests.Browser;
|
||||
|
||||
public class ChromeSitePermissionsTests
|
||||
{
|
||||
[Fact]
|
||||
public void PermissionGate_Origin_Listing_And_Reset_Work()
|
||||
{
|
||||
var gate = new PermissionGate();
|
||||
|
||||
gate.Remember("Camera", "https://meet.google.com", PermissionVerdict.Allow);
|
||||
gate.Remember("Microphone", "https://meet.google.com", PermissionVerdict.Allow);
|
||||
gate.Remember("Geolocation", "https://maps.google.com", PermissionVerdict.Deny);
|
||||
|
||||
var meetPerms = gate.GetOriginPermissions("https://meet.google.com");
|
||||
Assert.Equal(2, meetPerms.Count);
|
||||
Assert.Equal(PermissionVerdict.Allow, meetPerms["Camera"]);
|
||||
Assert.Equal(PermissionVerdict.Allow, meetPerms["Microphone"]);
|
||||
|
||||
var allOrigins = gate.GetAllOrigins();
|
||||
Assert.Contains("https://meet.google.com", allOrigins);
|
||||
Assert.Contains("https://maps.google.com", allOrigins);
|
||||
|
||||
// Reset meet.google.com
|
||||
gate.ResetOrigin("https://meet.google.com");
|
||||
Assert.Empty(gate.GetOriginPermissions("https://meet.google.com"));
|
||||
Assert.Equal(PermissionVerdict.Ask, gate.Decide("Camera", "https://meet.google.com"));
|
||||
|
||||
// maps.google.com remains intact
|
||||
Assert.Equal(PermissionVerdict.Deny, gate.Decide("Geolocation", "https://maps.google.com"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void PermissionGate_File_Persistence_Works()
|
||||
{
|
||||
var tempFile = Path.Combine(Path.GetTempPath(), "paca_perm_test_" + Guid.NewGuid().ToString("N") + ".json");
|
||||
try
|
||||
{
|
||||
var gate1 = new PermissionGate();
|
||||
gate1.Remember("Camera", "https://app.slack.com", PermissionVerdict.Allow);
|
||||
gate1.Remember("Notifications", "https://app.slack.com", PermissionVerdict.Deny);
|
||||
gate1.Save(tempFile);
|
||||
|
||||
var gate2 = new PermissionGate();
|
||||
gate2.Load(tempFile);
|
||||
|
||||
Assert.Equal(PermissionVerdict.Allow, gate2.Decide("Camera", "https://app.slack.com"));
|
||||
Assert.Equal(PermissionVerdict.Deny, gate2.Decide("Notifications", "https://app.slack.com"));
|
||||
Assert.Equal(PermissionVerdict.Ask, gate2.Decide("Microphone", "https://app.slack.com"));
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (File.Exists(tempFile)) File.Delete(tempFile);
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void OmniboxActionEvaluator_Matches_SiteSettings()
|
||||
{
|
||||
var actionsKr = OmniboxActionEvaluator.GetMatchingActions("사이트 설정");
|
||||
Assert.Contains(actionsKr, a => a.ActionId == "action:site-settings");
|
||||
|
||||
var actionsEn = OmniboxActionEvaluator.GetMatchingActions("permissions");
|
||||
Assert.Contains(actionsEn, a => a.ActionId == "action:site-settings");
|
||||
|
||||
var action = OmniboxActionEvaluator.AllActions.FirstOrDefault(a => a.ActionId == "action:site-settings");
|
||||
Assert.NotNull(action);
|
||||
Assert.Contains("사이트", action.DisplayTitle);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ChromeInternalUrlRouter_Routes_SiteSettings()
|
||||
{
|
||||
Assert.True(ChromeInternalUrlRouter.IsInternal("chrome://settings/content"));
|
||||
var action1 = ChromeInternalUrlRouter.Route("chrome://settings/content");
|
||||
Assert.Equal(ChromeInternalAction.SiteSettings, action1);
|
||||
|
||||
var action2 = ChromeInternalUrlRouter.Route("paca://settings/content");
|
||||
Assert.Equal(ChromeInternalAction.SiteSettings, action2);
|
||||
|
||||
var suggestions = ChromeInternalUrlRouter.GetSuggestions("chrome://settings");
|
||||
Assert.Contains(suggestions, s => s.Url.Contains("settings"));
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue