@ -20,26 +20,37 @@ namespace Jellyfin.Server.Implementations.Tests.IO
_sut = _fixture . Create < ManagedFileSystem > ( ) ;
}
[ Theory]
[ Skippable Theory]
[InlineData("/Volumes/Library/Sample/Music/Playlists/", "../Beethoven/Misc/Moonlight Sonata.mp3", "/Volumes/Library/Sample/Music/Beethoven/Misc/Moonlight Sonata.mp3")]
[InlineData("/Volumes/Library/Sample/Music/Playlists/", "../../Beethoven/Misc/Moonlight Sonata.mp3", "/Volumes/Library/Sample/Beethoven/Misc/Moonlight Sonata.mp3")]
[InlineData("/Volumes/Library/Sample/Music/Playlists/", "Beethoven/Misc/Moonlight Sonata.mp3", "/Volumes/Library/Sample/Music/Playlists/Beethoven/Misc/Moonlight Sonata.mp3")]
public void MakeAbsolutePathCorrectlyHandlesRelativeFilePaths (
[InlineData("/Volumes/Library/Sample/Music/Playlists/", "/mnt/Beethoven/Misc/Moonlight Sonata.mp3", "/mnt/Beethoven/Misc/Moonlight Sonata.mp3")]
public void MakeAbsolutePathCorrectlyHandlesRelativeFilePathsOnUnixLike (
string folderPath ,
string filePath ,
string expectedAbsolutePath )
{
Skip . If ( OperatingSystem . IsWindows ( ) ) ;
var generatedPath = _sut . MakeAbsolutePath ( folderPath , filePath ) ;
Assert . Equal ( expectedAbsolutePath , generatedPath ) ;
}
[SkippableTheory]
[InlineData(@"C:\\Volumes\Library\Sample\Music\Playlists\", @"..\Beethoven\Misc\Moonlight Sonata.mp3", @"C:\Volumes\Library\Sample\Music\Beethoven\Misc\Moonlight Sonata.mp3")]
[InlineData(@"C:\\Volumes\Library\Sample\Music\Playlists\", @"..\..\Beethoven\Misc\Moonlight Sonata.mp3", @"C:\Volumes\Library\Sample\Beethoven\Misc\Moonlight Sonata.mp3")]
[InlineData(@"C:\\Volumes\Library\Sample\Music\Playlists\", @"Beethoven\Misc\Moonlight Sonata.mp3", @"C:\Volumes\Library\Sample\Music\Playlists\Beethoven\Misc\Moonlight Sonata.mp3")]
[InlineData(@"C:\\Volumes\Library\Sample\Music\Playlists\", @"D:\\Beethoven\Misc\Moonlight Sonata.mp3", @"D:\\Beethoven\Misc\Moonlight Sonata.mp3")]
public void MakeAbsolutePathCorrectlyHandlesRelativeFilePathsOnWindows (
string folderPath ,
string filePath ,
string expectedAbsolutePath )
{
Skip . If ( ! OperatingSystem . IsWindows ( ) ) ;
var generatedPath = _sut . MakeAbsolutePath ( folderPath , filePath ) ;
if ( OperatingSystem . IsWindows ( ) )
{
var expectedWindowsPath = expectedAbsolutePath . Replace ( '/' , '\\' ) ;
Assert . Equal ( expectedWindowsPath , generatedPath . Split ( ':' ) [ 1 ] ) ;
}
else
{
Assert . Equal ( expectedAbsolutePath , generatedPath ) ;
}
Assert . Equal ( expectedAbsolutePath , generatedPath ) ;
}
[Theory]