Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/corefx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Kuhne <jeremy.kuhne@microsoft.com>2018-03-08 02:58:06 +0300
committerGitHub <noreply@github.com>2018-03-08 02:58:06 +0300
commitcc4abcad12da4d6abe4af8c5b4cd9d328ca97715 (patch)
treefb3b0928aed6ac44035648d75e12e3ffdac23f5c /src/System.IO.FileSystem/tests
parent98a173b674fa878a920696d6ffac5bb8d6c1acfb (diff)
Dial back `\\?\ ` insertion (#27827)
Only premptively adding for FileSystemInfo if we end in period or space. Long path is taken care of later. Clean up code a little and add test for DirectoryInfo.Move.
Diffstat (limited to 'src/System.IO.FileSystem/tests')
-rw-r--r--src/System.IO.FileSystem/tests/Enumeration/TrimmedPaths.netcoreapp.cs55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/System.IO.FileSystem/tests/Enumeration/TrimmedPaths.netcoreapp.cs b/src/System.IO.FileSystem/tests/Enumeration/TrimmedPaths.netcoreapp.cs
index 7ae7943b3b..ed73117634 100644
--- a/src/System.IO.FileSystem/tests/Enumeration/TrimmedPaths.netcoreapp.cs
+++ b/src/System.IO.FileSystem/tests/Enumeration/TrimmedPaths.netcoreapp.cs
@@ -225,5 +225,60 @@ namespace System.IO.Tests.Enumeration
}
}
}
+
+ [Fact]
+ [PlatformSpecific(TestPlatforms.Windows)]
+ public void TrimmedPathsMoveTo_Windows()
+ {
+ // Trailing spaces and periods are eaten when normalizing in Windows, making them impossible
+ // to access without using the \\?\ device syntax. We should, however, be able to move them
+ // without the special syntax from the info class when enumerating.
+
+ DirectoryInfo directory = Directory.CreateDirectory(GetTestFilePath());
+ DirectoryInfo spaceDirectory = Directory.CreateDirectory(Path.Join(@"\\?\", directory.FullName, "Trailing space "));
+ DirectoryInfo periodDirectory = Directory.CreateDirectory(Path.Join(@"\\?\", directory.FullName, "Trailing period."));
+ string spaceFile = Path.Join(spaceDirectory.FullName, "space");
+ string periodFile = Path.Join(periodDirectory.FullName, "period");
+ File.Create(spaceFile).Dispose();
+ File.Create(periodFile).Dispose();
+
+ DirectoryInfo[] directories = directory.GetDirectories();
+ Assert.Equal(2, directories.Length);
+ foreach (DirectoryInfo di in directories)
+ {
+ if (di.Name == "Trailing space ")
+ {
+ di.MoveTo(Path.Join(directory.FullName, "WasSpace"));
+ }
+ else if (di.Name == "Trailing period.")
+ {
+ di.MoveTo(Path.Join(directory.FullName, "WasPeriod"));
+ }
+ else
+ {
+ Assert.False(true, $"Found unexpected name '{di.Name}'");
+ }
+ }
+
+ directories = directory.GetDirectories();
+ Assert.Equal(2, directories.Length);
+ foreach (DirectoryInfo di in directories)
+ {
+ if (di.Name == "WasSpace")
+ {
+ FileInfo fi = di.GetFiles().Single();
+ Assert.Equal("space", fi.Name);
+ }
+ else if (di.Name == "WasPeriod")
+ {
+ FileInfo fi = di.GetFiles().Single();
+ Assert.Equal("period", fi.Name);
+ }
+ else
+ {
+ Assert.False(true, $"Found unexpected name '{di.Name}'");
+ }
+ }
+ }
}
}