Add queued FFmpeg conversion and finish splitting the window from the host.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -160,6 +160,44 @@ public class FileOperationProfilePlannerTests
|
||||
Assert.Contains(plan.Issues, i => i.Message.Contains("7-Zip", StringComparison.OrdinalIgnoreCase));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Convert_lists_one_job_per_matching_file()
|
||||
{
|
||||
var fs = Tree()
|
||||
.Dir(@"C:\src")
|
||||
.File(@"C:\src\clip.mov", 10, T0)
|
||||
.File(@"C:\src\notes.txt", 1, T0)
|
||||
.Dir(@"C:\dst");
|
||||
|
||||
var plan = Build(new OperationProfile
|
||||
{
|
||||
Name = "Convert",
|
||||
DestPath = @"C:\dst",
|
||||
DoConvert = true,
|
||||
ConversionKind = ConversionKind.VideoToMp4
|
||||
}, fs, [@"C:\src"]);
|
||||
Assert.True(plan.CanEnqueue);
|
||||
var convert = Assert.Single(plan.Operations);
|
||||
Assert.Equal(TransferOp.Convert, convert.Op);
|
||||
Assert.Equal(@"C:\src\clip.mov", convert.SourcePath);
|
||||
Assert.Equal(@"C:\dst\clip.mp4", convert.DestinationPath);
|
||||
Assert.Contains(plan.ProfilePreview, r => r.Action == "Convert");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Missing_ffmpeg_is_an_error()
|
||||
{
|
||||
var fs = Tree().Dir(@"C:\src").File(@"C:\src\clip.mov", 10, T0).Dir(@"C:\dst");
|
||||
var plan = Build(new OperationProfile
|
||||
{
|
||||
Name = "Convert",
|
||||
DestPath = @"C:\dst",
|
||||
DoConvert = true
|
||||
}, fs, [@"C:\src"], convertAvailable: false);
|
||||
Assert.False(plan.CanEnqueue);
|
||||
Assert.Contains(plan.Issues, i => i.Message.Contains("FFmpeg", StringComparison.OrdinalIgnoreCase));
|
||||
}
|
||||
|
||||
private static OperationProfile CopyProfile(string dest = @"C:\dst", bool git = false)
|
||||
=> new()
|
||||
{
|
||||
@@ -176,6 +214,7 @@ public class FileOperationProfilePlannerTests
|
||||
GitStatus? git = null,
|
||||
bool gitAvailable = true,
|
||||
bool compressAvailable = true,
|
||||
bool convertAvailable = true,
|
||||
Func<string, bool>? reachable = null,
|
||||
Func<FileSystemItem, bool>? wouldHydrate = null)
|
||||
=> new FileOperationProfilePlanner(new RenamePlanner()).Build(
|
||||
@@ -188,7 +227,9 @@ public class FileOperationProfilePlannerTests
|
||||
compressAvailable,
|
||||
SevenZipLocator.MissingHint,
|
||||
pathExists: _ => false,
|
||||
wouldHydrate: wouldHydrate);
|
||||
wouldHydrate: wouldHydrate,
|
||||
convertAvailable: convertAvailable,
|
||||
convertMissingHint: FfmpegLocator.MissingHint);
|
||||
|
||||
private static TreeEnumerator Tree() => new();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user