fix tests for absolute paths

This commit is contained in:
dkanada 2020-01-13 15:25:54 +09:00
parent c3efcbf77e
commit a8cd963d46
2 changed files with 18 additions and 19 deletions

View file

@ -112,7 +112,7 @@ jobs:
- job: main_test
displayName: Main Test
pool:
vmImage: windows-latest
vmImage: ubuntu-latest
steps:
- checkout: self
clean: true

View file

@ -3,8 +3,8 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Text;
@ -17,7 +17,7 @@ using OperatingSystem = MediaBrowser.Common.System.OperatingSystem;
namespace Emby.Server.Implementations.IO
{
/// <summary>
/// Class ManagedFileSystem
/// Class ManagedFileSystem.
/// </summary>
public class ManagedFileSystem : IFileSystem
{
@ -80,20 +80,20 @@ namespace Emby.Server.Implementations.IO
public virtual string MakeAbsolutePath(string folderPath, string filePath)
{
if (string.IsNullOrWhiteSpace(filePath)
// stream
|| filePath.Contains("://"))
// path is actually a stream
if (string.IsNullOrWhiteSpace(filePath) || filePath.Contains("://", StringComparison.InvariantCulture))
{
return filePath;
}
if (filePath.Length > 3 && filePath[1] == ':' && filePath[2] == '/')
{
return filePath; // absolute local path
// absolute local path
return filePath;
}
// unc path
if (filePath.StartsWith("\\\\"))
if (filePath.StartsWith("\\\\", StringComparison.InvariantCulture))
{
return filePath;
}
@ -101,13 +101,16 @@ namespace Emby.Server.Implementations.IO
var firstChar = filePath[0];
if (firstChar == '/')
{
// For this we don't really know.
// for this we don't really know
return filePath;
}
if (firstChar == '\\') //relative path
// relative path
if (firstChar == '\\')
{
filePath = filePath.Substring(1);
}
try
{
return Path.GetFullPath(Path.Combine(folderPath, filePath));
@ -131,11 +134,7 @@ namespace Emby.Server.Implementations.IO
/// </summary>
/// <param name="shortcutPath">The shortcut path.</param>
/// <param name="target">The target.</param>
/// <exception cref="ArgumentNullException">
/// shortcutPath
/// or
/// target
/// </exception>
/// <exception cref="ArgumentNullException">The shortcutPath or target is null.</exception>
public virtual void CreateShortcut(string shortcutPath, string target)
{
if (string.IsNullOrEmpty(shortcutPath))
@ -281,11 +280,11 @@ namespace Emby.Server.Implementations.IO
}
/// <summary>
/// Takes a filename and removes invalid characters
/// Takes a filename and removes invalid characters.
/// </summary>
/// <param name="filename">The filename.</param>
/// <returns>System.String.</returns>
/// <exception cref="ArgumentNullException">filename</exception>
/// <exception cref="ArgumentNullException">The filename is null.</exception>
public virtual string GetValidFilename(string filename)
{
var builder = new StringBuilder(filename);
@ -473,7 +472,7 @@ namespace Emby.Server.Implementations.IO
public virtual void SetReadOnly(string path, bool isReadOnly)
{
if (OperatingSystem.Id != MediaBrowser.Model.System.OperatingSystemId.Windows)
if (OperatingSystem.Id != OperatingSystemId.Windows)
{
return;
}
@ -497,7 +496,7 @@ namespace Emby.Server.Implementations.IO
public virtual void SetAttributes(string path, bool isHidden, bool isReadOnly)
{
if (OperatingSystem.Id != MediaBrowser.Model.System.OperatingSystemId.Windows)
if (OperatingSystem.Id != OperatingSystemId.Windows)
{
return;
}