Register both Paca domains on Naver Search Advisor, Google Search Console and
Bing Webmaster Tools so the site can be indexed by every major engine, add
DASH and AES-128 how-to pages to capture protocol-specific searches, and let a
finished download share a UTM-tagged landing link from the completion shelf.
Package-manager manifests (winget, Chocolatey, Scoop) now carry verified
v1.2.0 hashes and product codes instead of placeholders. All 2,757 tests pass.
💘 Generated with Crush
Assisted-by: Crush:deepseek-v4.1-flash
53 lines
1.9 KiB
C#
53 lines
1.9 KiB
C#
using System;
|
|
using Paca.Core.Social;
|
|
using Xunit;
|
|
|
|
namespace Paca.Tests.Core;
|
|
|
|
/// <summary>
|
|
/// 제품 내 확산(공유) 루프 게이트: 다운로드 완료 화면에서 결과물을 공유하면
|
|
/// UTM 이 붙은 랜딩 URL 이 함께 퍼져 유입 루프가 닫히는지 검증한다.
|
|
/// </summary>
|
|
public class ShareLoopGateTests
|
|
{
|
|
[Fact]
|
|
public void Gate219_ShareCardBuilder_BuildsUtmTaggedLandingUrlAndShareText()
|
|
{
|
|
var url = ShareCardBuilder.BuildShareUrl("share_card");
|
|
Assert.Contains("https://mediabrowser.chanpaca.net/", url);
|
|
Assert.Contains("utm_source=paca_app", url);
|
|
Assert.Contains("utm_medium=share_card", url);
|
|
|
|
var text = ShareCardBuilder.BuildShareText("Big Buck Bunny.mp4");
|
|
Assert.Contains("Big Buck Bunny.mp4", text);
|
|
Assert.Contains(ShareCardBuilder.BuildShareUrl(), text);
|
|
Assert.Contains("미디어 브라우저", text);
|
|
}
|
|
|
|
[Fact]
|
|
public void Gate219_ShareCardBuilder_HandlesEmptyTitleAndBuildsQrTitle()
|
|
{
|
|
var text = ShareCardBuilder.BuildShareText(" ");
|
|
Assert.Contains("https://mediabrowser.chanpaca.net/", text);
|
|
Assert.DoesNotContain("''", text);
|
|
|
|
var qrTitle = ShareCardBuilder.BuildQrTitle("");
|
|
Assert.Contains("Paca", qrTitle);
|
|
|
|
var qrTitle2 = ShareCardBuilder.BuildQrTitle("clip.mp4");
|
|
Assert.Contains("clip.mp4", qrTitle2);
|
|
}
|
|
|
|
[Fact]
|
|
public void Gate219_DownloadShelf_DeclaresShareButtonWiredToShareCardBuilder()
|
|
{
|
|
var xaml = SourceTree.MainWindowXaml;
|
|
Assert.Contains("DownloadShelfShareBtn", xaml);
|
|
Assert.Contains("Click=\"DownloadShelfShareBtn_Click\"", xaml);
|
|
Assert.Contains("AutomationProperties.Name=\"다운로드 결과 공유\"", xaml);
|
|
|
|
var cs = SourceTree.MainWindowCs;
|
|
Assert.Contains("DownloadShelfShareBtn_Click", cs);
|
|
Assert.Contains("ShareCardBuilder", cs);
|
|
}
|
|
}
|