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
61
tests/Paca.Tests/Core/MediaChecksumVerifierGateTests.cs
Normal file
61
tests/Paca.Tests/Core/MediaChecksumVerifierGateTests.cs
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using Paca.Mobile.Core;
|
||||
using Xunit;
|
||||
|
||||
namespace Paca.Tests.Core;
|
||||
|
||||
public class MediaChecksumVerifierGateTests
|
||||
{
|
||||
[Fact]
|
||||
public void Gate369_MediaChecksumVerifier_ComputesSha256StreamHash_Correctly()
|
||||
{
|
||||
// "Hello Paca Media!" in UTF-8
|
||||
var bytes = Encoding.UTF8.GetBytes("Hello Paca Media!");
|
||||
using var stream = new MemoryStream(bytes);
|
||||
|
||||
var sha256 = MediaChecksumVerifier.ComputeHash(stream, ChecksumAlgorithm.Sha256);
|
||||
|
||||
// Known SHA-256 for "Hello Paca Media!"
|
||||
Assert.StartsWith("f14b916b33d6270011bcd23995bf4d4a2ae0199ec", sha256.ToLowerInvariant());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Gate370_MediaChecksumVerifier_ComputesMd5StreamHash_Correctly()
|
||||
{
|
||||
var bytes = Encoding.UTF8.GetBytes("PacaDownloadEngine");
|
||||
using var stream = new MemoryStream(bytes);
|
||||
|
||||
var md5 = MediaChecksumVerifier.ComputeHash(stream, ChecksumAlgorithm.Md5);
|
||||
|
||||
// Known MD5 for "PacaDownloadEngine"
|
||||
Assert.Equal("1d95ac097022b5c556252b43a2f5929a", md5.ToLowerInvariant());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Gate371_MediaChecksumVerifier_VerifiesEtagWithQuotesAndWeakPrefix()
|
||||
{
|
||||
var computed = "93700ce818c3937ec89f2a00908eb82f";
|
||||
|
||||
// Quoted ETag: "\"93700ce818c3937ec89f2a00908eb82f\""
|
||||
Assert.True(MediaChecksumVerifier.VerifyHash(computed, "\"93700ce818c3937ec89f2a00908eb82f\""));
|
||||
|
||||
// Weak ETag: "W/\"93700CE818C3937EC89F2A00908EB82F\""
|
||||
Assert.True(MediaChecksumVerifier.VerifyHash(computed, "W/\"93700CE818C3937EC89F2A00908EB82F\""));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Gate372_MediaChecksumVerifier_DetectsMismatchAndGeneratesReport()
|
||||
{
|
||||
var computed = "aaaa1111";
|
||||
var expected = "bbbb2222";
|
||||
|
||||
var result = MediaChecksumVerifier.EvaluateIntegrity("file.mp4", computed, expected);
|
||||
|
||||
Assert.False(result.IsIntact);
|
||||
Assert.Equal("aaaa1111", result.ComputedHash);
|
||||
Assert.Equal("bbbb2222", result.ExpectedHash);
|
||||
Assert.Contains("해시 불일치", result.StatusMessage);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue