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
60
tests/Paca.Tests/App/ChromeDownloadManagerParityTests.cs
Normal file
60
tests/Paca.Tests/App/ChromeDownloadManagerParityTests.cs
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
using System;
|
||||
using Paca.App.Browser.Features;
|
||||
using Xunit;
|
||||
|
||||
namespace Paca.Tests.App;
|
||||
|
||||
public class ChromeDownloadManagerParityTests
|
||||
{
|
||||
private class FakeDownloadOperation : IDownloadOperation
|
||||
{
|
||||
public string Uri { get; set; } = "https://example.com/file.zip";
|
||||
public string FileName { get; set; } = "file.zip";
|
||||
public long TotalBytesToReceive { get; set; } = 100 * 1024 * 1024; // 100MB
|
||||
public long BytesReceived { get; set; } = 0;
|
||||
public string State { get; set; } = "InProgress";
|
||||
public event Action? Changed;
|
||||
|
||||
public void Pause() { State = "Paused"; Changed?.Invoke(); }
|
||||
public void Resume() { State = "InProgress"; Changed?.Invoke(); }
|
||||
public void Cancel() { State = "Cancelled"; Changed?.Invoke(); }
|
||||
public void Notify(long received, string state)
|
||||
{
|
||||
BytesReceived = received;
|
||||
State = state;
|
||||
Changed?.Invoke();
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void PageDownloadItem_SizeProgressText_Formats_Correctly()
|
||||
{
|
||||
var fake = new FakeDownloadOperation { TotalBytesToReceive = 100 * 1024 * 1024, BytesReceived = 25 * 1024 * 1024 };
|
||||
var item = new PageDownloadItem(fake, "file.zip");
|
||||
|
||||
Assert.Equal("25.0 MB / 100.0 MB", item.SizeProgressText);
|
||||
|
||||
var unknownTotal = new FakeDownloadOperation { TotalBytesToReceive = 0, BytesReceived = 10 * 1024 * 1024 };
|
||||
var item2 = new PageDownloadItem(unknownTotal, "stream.bin");
|
||||
Assert.Equal("10.0 MB", item2.SizeProgressText);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void PageDownloadItem_EtaText_Calculations()
|
||||
{
|
||||
var fake = new FakeDownloadOperation { TotalBytesToReceive = 100 * 1024 * 1024, BytesReceived = 50 * 1024 * 1024 };
|
||||
var item = new PageDownloadItem(fake, "file.zip");
|
||||
|
||||
// When bps is 0
|
||||
Assert.Equal("—", item.EtaText);
|
||||
|
||||
// 50MB remaining. Speed = 5MB/s -> 10 seconds remaining
|
||||
item.UpdateSpeed(50 * 1024 * 1024, TimeSpan.FromSeconds(1));
|
||||
item.UpdateSpeed(55 * 1024 * 1024, TimeSpan.FromSeconds(1)); // 5 MB/s
|
||||
Assert.Contains("초 남음", item.EtaText);
|
||||
|
||||
// When completed
|
||||
fake.Notify(100 * 1024 * 1024, "Completed");
|
||||
Assert.Equal("완료됨", item.EtaText);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue