66 lines
1.9 KiB
C#
66 lines
1.9 KiB
C#
using System;
|
|
using Paca.App.ViewModels;
|
|
using Xunit;
|
|
|
|
namespace Paca.Tests.App;
|
|
|
|
public class QuickCaptureHudGateTests
|
|
{
|
|
[Fact]
|
|
public void Gate223_QuickCaptureHudViewModel_Initializes_WithDetectedUrl_AndExtractsDomain()
|
|
{
|
|
var url = "https://www.youtube.com/watch?v=dQw4w9WgXcQ";
|
|
var vm = new QuickCaptureHudViewModel(url);
|
|
|
|
Assert.Equal(url, vm.TargetUrl);
|
|
Assert.Equal("youtube.com", vm.DomainLabel);
|
|
Assert.Equal("mp4", vm.SelectedFormat);
|
|
Assert.True(vm.IsVisible);
|
|
}
|
|
|
|
[Fact]
|
|
public void Gate224_QuickCaptureHudViewModel_DownloadCommand_TriggersOnDownloadRequested()
|
|
{
|
|
var url = "https://twitter.com/user/status/123456789";
|
|
var vm = new QuickCaptureHudViewModel(url);
|
|
|
|
string? requestedUrl = null;
|
|
string? requestedFormat = null;
|
|
vm.DownloadRequested += (u, f) =>
|
|
{
|
|
requestedUrl = u;
|
|
requestedFormat = f;
|
|
};
|
|
|
|
vm.DownloadCommand.Execute(null);
|
|
|
|
Assert.Equal(url, requestedUrl);
|
|
Assert.Equal("mp4", requestedFormat);
|
|
Assert.False(vm.IsVisible); // Dismissed upon action
|
|
}
|
|
|
|
[Fact]
|
|
public void Gate225_QuickCaptureHudViewModel_SendToPhoneCommand_TriggersOnSendToPhoneRequested()
|
|
{
|
|
var url = "https://instagram.com/reel/abcdef";
|
|
var vm = new QuickCaptureHudViewModel(url);
|
|
|
|
string? sentUrl = null;
|
|
vm.SendToPhoneRequested += u => sentUrl = u;
|
|
|
|
vm.SendToPhoneCommand.Execute(null);
|
|
|
|
Assert.Equal(url, sentUrl);
|
|
Assert.False(vm.IsVisible); // Dismissed upon action
|
|
}
|
|
|
|
[Fact]
|
|
public void Gate226_QuickCaptureHudViewModel_Dismiss_ClosesHud()
|
|
{
|
|
var vm = new QuickCaptureHudViewModel("https://test.com/video");
|
|
Assert.True(vm.IsVisible);
|
|
|
|
vm.DismissCommand.Execute(null);
|
|
Assert.False(vm.IsVisible);
|
|
}
|
|
}
|