Skip to content

Commit

Permalink
Be consistent with filename extensions (fixes #804)
Browse files Browse the repository at this point in the history
  • Loading branch information
mnadareski committed Dec 29, 2024
1 parent 172f9af commit c1f2fd5
Show file tree
Hide file tree
Showing 24 changed files with 818 additions and 807 deletions.
1 change: 1 addition & 0 deletions CHANGELIST.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,7 @@
- Force showing tooltips on disabled items
- Update RedumpLib to 1.6.3
- Minor UI changes to DIW
- Be consistent with filename extensions

### 3.2.4 (2024-11-24)

Expand Down
10 changes: 5 additions & 5 deletions MPF.Frontend/DumpEnvironment.cs
Original file line number Diff line number Diff line change
Expand Up @@ -593,7 +593,7 @@ await Task.Factory.StartNew(() =>
await Task.Run(() =>
#endif
{
bool compressSuccess = _processor.CompressLogFiles(outputDirectory, filenameSuffix, outputFilename, out string compressResult);
bool compressSuccess = _processor.CompressLogFiles(outputDirectory, outputFilename, filenameSuffix, out string compressResult);
if (compressSuccess)
resultProgress.Report(ResultEventArgs.Success(compressResult));
else
Expand Down Expand Up @@ -686,7 +686,7 @@ private ResultEventArgs IsValidForDump()
/// <summary>
/// Write the data to the output folder
/// </summary>
/// <param name="outputDirectory">Output folder to write to</param>
/// <param name="outputDirectory">Output folder to use as the base path</param>
/// <param name="filenameSuffix">Optional suffix to append to the filename</param>
/// <param name="lines">Preformatted string of lines to write out to the file</param>
/// <returns>True on success, false on error</returns>
Expand Down Expand Up @@ -730,7 +730,7 @@ private static bool WriteOutputData(string? outputDirectory, string? filenameSuf
/// <summary>
/// Write the data to the output folder
/// </summary>
/// <param name="outputDirectory">Output folder to write to</param>
/// <param name="outputDirectory">Output folder to use as the base path</param>
/// <param name="filenameSuffix">Optional suffix to append to the filename</param>
/// <param name="info">SubmissionInfo object representing the JSON to write out to the file</param>
/// <param name="includedArtifacts">True if artifacts were included, false otherwise</param>
Expand Down Expand Up @@ -795,7 +795,7 @@ private static bool WriteOutputData(string? outputDirectory, string? filenameSuf
/// <summary>
/// Write the protection data to the output folder
/// </summary>
/// <param name="outputDirectory">Output folder to write to</param>
/// <param name="outputDirectory">Output folder to use as the base path</param>
/// <param name="filenameSuffix">Optional suffix to append to the filename</param>
/// <param name="info">SubmissionInfo object containing the protection information</param>
/// <param name="hideDriveLetters">True if drive letters are to be removed from output, false otherwise</param>
Expand Down Expand Up @@ -850,7 +850,7 @@ private static bool WriteProtectionData(string? outputDirectory, string? filenam
/// <summary>
/// Create an IRD and write it to the specified output directory with optional filename suffix
/// </summary>
/// <param name="outputDirectory">Output folder to write to</param>
/// <param name="outputDirectory">Output folder to use as the base path</param>
/// <param name="filenameSuffix">Optional suffix to append to the filename</param>
/// <param name="outputFilename">Output filename to use as the base path</param>
/// <returns>True on success, false on error</returns>
Expand Down
19 changes: 7 additions & 12 deletions MPF.Frontend/Tools/SubmissionGenerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -68,23 +68,18 @@ internal static class SubmissionGenerator
return null;
}

// Sanitize the output filename to strip off any potential extension
outputFilename = Path.GetFileNameWithoutExtension(outputFilename);

// Create the SubmissionInfo object with all user-inputted values by default
string combinedBase;
if (string.IsNullOrEmpty(outputDirectory))
combinedBase = outputFilename;
else
combinedBase = Path.Combine(outputDirectory, outputFilename);
// Assemble a base path
string basePath = Path.GetFileNameWithoutExtension(outputFilename);
if (!string.IsNullOrEmpty(outputDirectory))
basePath = Path.Combine(outputDirectory, basePath);

// Create the default submission info
SubmissionInfo info = CreateDefaultSubmissionInfo(processor, system, mediaType, options.AddPlaceholders);

// Get specific tool output handling
processor?.GenerateSubmissionInfo(info, combinedBase, options.EnableRedumpCompatibility);
processor?.GenerateSubmissionInfo(info, basePath, options.EnableRedumpCompatibility);
if (options.IncludeArtifacts)
info.Artifacts = processor?.GenerateArtifacts(combinedBase);
info.Artifacts = processor?.GenerateArtifacts(outputDirectory, outputFilename);

// Get a list of matching IDs for each line in the DAT
if (!string.IsNullOrEmpty(info.TracksAndWriteOffsets!.ClrMameProData) && options.HasRedumpLogin)
Expand All @@ -103,7 +98,7 @@ internal static class SubmissionGenerator
ProcessMediaType(info, mediaType, options.AddPlaceholders);

// Extract info based specifically on RedumpSystem
ProcessSystem(info, system, drive, options.AddPlaceholders, processor is DiscImageCreator, combinedBase);
ProcessSystem(info, system, drive, options.AddPlaceholders, processor is DiscImageCreator, basePath);

// Run anti-modchip check, if necessary
if (drive != null && system.SupportsAntiModchipScans() && info.CopyProtection!.AntiModchip == YesNo.NULL)
Expand Down
120 changes: 63 additions & 57 deletions MPF.Processors.Test/AaruTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,137 +16,139 @@ public class AaruTests
[Fact]
public void GetOutputFiles_Null_Empty()
{
string? baseDirectory = null;
string baseFilename = "test";
string? outputDirectory = null;
string outputFilename = "test";
var processor = new Aaru(RedumpSystem.IBMPCcompatible, null);

var actual = processor.GetOutputFiles(baseDirectory, baseFilename);
var actual = processor.GetOutputFiles(outputDirectory, outputFilename);
Assert.Empty(actual);
}

[Fact]
public void GetOutputFiles_CDROM_Populated()
{
string? baseDirectory = null;
string baseFilename = "test";
string? outputDirectory = null;
string outputFilename = "test";
var processor = new Aaru(RedumpSystem.IBMPCcompatible, MediaType.CDROM);

var actual = processor.GetOutputFiles(baseDirectory, baseFilename);
var actual = processor.GetOutputFiles(outputDirectory, outputFilename);
Assert.Equal(8, actual.Count);
}

[Fact]
public void GetOutputFiles_DVD_Populated()
{
string? baseDirectory = null;
string baseFilename = "test";
string? outputDirectory = null;
string outputFilename = "test";
var processor = new Aaru(RedumpSystem.IBMPCcompatible, MediaType.DVD);

var actual = processor.GetOutputFiles(baseDirectory, baseFilename);
var actual = processor.GetOutputFiles(outputDirectory, outputFilename);
Assert.Equal(7, actual.Count);
}

[Fact]
public void GetOutputFiles_HDDVD_Populated()
{
string? baseDirectory = null;
string baseFilename = "test";
string? outputDirectory = null;
string outputFilename = "test";
var processor = new Aaru(RedumpSystem.IBMPCcompatible, MediaType.HDDVD);

var actual = processor.GetOutputFiles(baseDirectory, baseFilename);
var actual = processor.GetOutputFiles(outputDirectory, outputFilename);
Assert.Equal(7, actual.Count);
}

[Fact]
public void GetOutputFiles_BluRay_Populated()
{
string? baseDirectory = null;
string baseFilename = "test";
string? outputDirectory = null;
string outputFilename = "test";
var processor = new Aaru(RedumpSystem.IBMPCcompatible, MediaType.BluRay);

var actual = processor.GetOutputFiles(baseDirectory, baseFilename);
var actual = processor.GetOutputFiles(outputDirectory, outputFilename);
Assert.Equal(7, actual.Count);
}

[Fact]
public void GetOutputFiles_Other_Empty()
{
string? baseDirectory = null;
string baseFilename = "test";
string? outputDirectory = null;
string outputFilename = "test";
var processor = new Aaru(RedumpSystem.IBMPCcompatible, MediaType.ApertureCard);

var actual = processor.GetOutputFiles(baseDirectory, baseFilename);
var actual = processor.GetOutputFiles(outputDirectory, outputFilename);
Assert.Empty(actual);
}

#endregion

#region GenerateArtifacts
#region FoundAllFiles

[Fact]
public void GenerateArtifacts_Invalid_Empty()
public void FoundAllFiles_Invalid_Filled()
{
string basePath = string.Empty;
string? outputDirectory = null;
string outputFilename = string.Empty;
var processor = new Aaru(RedumpSystem.IBMPCcompatible, MediaType.CDROM);
var actual = processor.GenerateArtifacts(basePath);
Assert.Empty(actual);
var actual = processor.FoundAllFiles(outputDirectory, outputFilename);
Assert.Equal(7, actual.Count);
}

[Fact]
public void GenerateArtifacts_Valid_Filled()
public void FoundAllFiles_Valid_Empty()
{
string? basePath = Path.Combine(Environment.CurrentDirectory, "TestData", "Aaru", "CDROM", "test");
string? outputDirectory = Path.Combine(Environment.CurrentDirectory, "TestData", "Aaru", "CDROM");
string outputFilename = "test.aaruf";
var processor = new Aaru(RedumpSystem.IBMPCcompatible, MediaType.CDROM);
var actual = processor.GenerateArtifacts(basePath);
Assert.Equal(7, actual.Count);
var actual = processor.FoundAllFiles(outputDirectory, outputFilename);
Assert.Empty(actual);
}

#endregion

#region CheckRequiredFiles
#region FoundAnyFiles

[Fact]
public void CheckRequiredFiles_Invalid_Filled()
public void FoundAnyFiles_Invalid_Filled()
{
string? baseDirectory = null;
string baseFilename = string.Empty;
string? outputDirectory = null;
string outputFilename = string.Empty;
var processor = new Aaru(RedumpSystem.IBMPCcompatible, MediaType.CDROM);
var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename);
Assert.Equal(7, actual.Count);
var actual = processor.FoundAnyFiles(outputDirectory, outputFilename);
Assert.False(actual);
}

[Fact]
public void CheckRequiredFiles_Valid_Empty()
public void FoundAnyFiles_Valid_Empty()
{
string? baseDirectory = Path.Combine(Environment.CurrentDirectory, "TestData", "Aaru", "CDROM");
string baseFilename = "test";
string? outputDirectory = Path.Combine(Environment.CurrentDirectory, "TestData", "Aaru", "CDROM");
string outputFilename = "test.aaruf";
var processor = new Aaru(RedumpSystem.IBMPCcompatible, MediaType.CDROM);
var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename);
Assert.Empty(actual);
var actual = processor.FoundAnyFiles(outputDirectory, outputFilename);
Assert.True(actual);
}

#endregion

#region CheckExistingFiles
#region GenerateArtifacts

[Fact]
public void CheckExistingFiles_Invalid_Filled()
public void GenerateArtifacts_Invalid_Empty()
{
string? baseDirectory = null;
string baseFilename = string.Empty;
string? outputDirectory = null;
string outputFilename = string.Empty;
var processor = new Aaru(RedumpSystem.IBMPCcompatible, MediaType.CDROM);
var actual = processor.CheckExistingFiles(baseDirectory, baseFilename);
Assert.False(actual);
var actual = processor.GenerateArtifacts(outputDirectory, outputFilename);
Assert.Empty(actual);
}

[Fact]
public void CheckExistingFiles_Valid_Empty()
public void GenerateArtifacts_Valid_Filled()
{
string? baseDirectory = Path.Combine(Environment.CurrentDirectory, "TestData", "Aaru", "CDROM");
string baseFilename = "test";
string? outputDirectory = Path.Combine(Environment.CurrentDirectory, "TestData", "Aaru", "CDROM");
string outputFilename = "test.aaruf";
var processor = new Aaru(RedumpSystem.IBMPCcompatible, MediaType.CDROM);
var actual = processor.CheckExistingFiles(baseDirectory, baseFilename);
Assert.True(actual);
var actual = processor.GenerateArtifacts(outputDirectory, outputFilename);
Assert.Equal(7, actual.Count);
}

#endregion
Expand All @@ -156,18 +158,20 @@ public void CheckExistingFiles_Valid_Empty()
[Fact]
public void GetDeleteableFilePaths_Invalid_Empty()
{
string basePath = string.Empty;
string? outputDirectory = null;
string outputFilename = string.Empty;
var processor = new Aaru(RedumpSystem.IBMPCcompatible, MediaType.CDROM);
var actual = processor.GetDeleteableFilePaths(basePath);
var actual = processor.GetDeleteableFilePaths(outputDirectory, outputFilename);
Assert.Empty(actual);
}

[Fact]
public void GetDeleteableFilePaths_Valid_Empty()
{
string? basePath = Path.Combine(Environment.CurrentDirectory, "TestData", "Aaru", "CDROM", "test");
string? outputDirectory = Path.Combine(Environment.CurrentDirectory, "TestData", "Aaru", "CDROM");
string outputFilename = "test.aaruf";
var processor = new Aaru(RedumpSystem.IBMPCcompatible, MediaType.CDROM);
var actual = processor.GetDeleteableFilePaths(basePath);
var actual = processor.GetDeleteableFilePaths(outputDirectory, outputFilename);
Assert.Empty(actual);
}

Expand All @@ -178,18 +182,20 @@ public void GetDeleteableFilePaths_Valid_Empty()
[Fact]
public void GetZippableFilePaths_Invalid_Empty()
{
string basePath = string.Empty;
string? outputDirectory = null;
string outputFilename = string.Empty;
var processor = new Aaru(RedumpSystem.IBMPCcompatible, MediaType.CDROM);
var actual = processor.GetZippableFilePaths(basePath);
var actual = processor.GetZippableFilePaths(outputDirectory, outputFilename);
Assert.Empty(actual);
}

[Fact]
public void GetZippableFilePaths_Valid_Filled()
{
string? basePath = Path.Combine(Environment.CurrentDirectory, "TestData", "Aaru", "CDROM", "test");
string? outputDirectory = Path.Combine(Environment.CurrentDirectory, "TestData", "Aaru", "CDROM");
string outputFilename = "test.aaruf";
var processor = new Aaru(RedumpSystem.IBMPCcompatible, MediaType.CDROM);
var actual = processor.GetZippableFilePaths(basePath);
var actual = processor.GetZippableFilePaths(outputDirectory, outputFilename);
Assert.Equal(7, actual.Count);
}

Expand Down
24 changes: 12 additions & 12 deletions MPF.Processors.Test/BaseProcessorTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -52,34 +52,34 @@ public void GetGeneratedFilenames_ValidSuffix_Modified()
#region GetGeneratedFilePaths

[Fact]
public void GetGeneratedFilePaths_NullBaseDirectory_Empty()
public void GetGeneratedFilePaths_NulloutputDirectory_Empty()
{
string? baseDirectory = null;
var actual = BaseProcessor.GetGeneratedFilePaths(baseDirectory, filenameSuffix: null);
string? outputDirectory = null;
var actual = BaseProcessor.GetGeneratedFilePaths(outputDirectory, filenameSuffix: null);
Assert.Empty(actual);
}

[Fact]
public void GetGeneratedFilePaths_EmptyBaseDirectory_Empty()
public void GetGeneratedFilePaths_EmptyoutputDirectory_Empty()
{
string? baseDirectory = string.Empty;
var actual = BaseProcessor.GetGeneratedFilePaths(baseDirectory, filenameSuffix: null);
string? outputDirectory = string.Empty;
var actual = BaseProcessor.GetGeneratedFilePaths(outputDirectory, filenameSuffix: null);
Assert.Empty(actual);
}

[Fact]
public void GetGeneratedFilePaths_InvalidBaseDirectory_Empty()
public void GetGeneratedFilePaths_InvalidoutputDirectory_Empty()
{
string? baseDirectory = "INVALID";
var actual = BaseProcessor.GetGeneratedFilePaths(baseDirectory, filenameSuffix: null);
string? outputDirectory = "INVALID";
var actual = BaseProcessor.GetGeneratedFilePaths(outputDirectory, filenameSuffix: null);
Assert.Empty(actual);
}

[Fact]
public void GetGeneratedFilePaths_ValidBaseDirectory_Empty()
public void GetGeneratedFilePaths_ValidoutputDirectory_Empty()
{
string? baseDirectory = Path.Combine(Environment.CurrentDirectory, "TestData", "BaseProcessor");
var actual = BaseProcessor.GetGeneratedFilePaths(baseDirectory, filenameSuffix: null);
string? outputDirectory = Path.Combine(Environment.CurrentDirectory, "TestData", "BaseProcessor");
var actual = BaseProcessor.GetGeneratedFilePaths(outputDirectory, filenameSuffix: null);
Assert.Equal(4, actual.Count);
}

Expand Down
Loading

0 comments on commit c1f2fd5

Please sign in to comment.