1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- using System;
- using System.Collections.Generic;
- using System.IO.Abstractions;
- using System.IO.Abstractions.TestingHelpers;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using Xunit;
- namespace Terminal.Gui.FileServicesTests {
- public class FileSystemIconProviderTests {
- [Fact]
- public void FlagsShouldBeMutuallyExclusive()
- {
- var p = new FileSystemIconProvider {
- UseUnicodeCharacters = false,
- UseNerdIcons = false
- };
- Assert.False (p.UseUnicodeCharacters);
- Assert.False (p.UseNerdIcons);
- p.UseUnicodeCharacters = true;
- Assert.True (p.UseUnicodeCharacters);
- Assert.False (p.UseNerdIcons);
- // Cannot use both nerd and unicode so unicode should have switched off
- p.UseNerdIcons = true;
- Assert.True (p.UseNerdIcons);
- Assert.False (p.UseUnicodeCharacters);
- // Cannot use both unicode and nerd so now nerd should have switched off
- p.UseUnicodeCharacters = true;
- Assert.True (p.UseUnicodeCharacters);
- Assert.False (p.UseNerdIcons);
- }
- [Fact]
- public void TestBasicIcons ()
- {
- var p = new FileSystemIconProvider ();
- var fs = GetMockFileSystem ();
-
- Assert.Equal(IsWindows() ? new Rune('\\') : new Rune('/'), p.GetIcon(fs.DirectoryInfo.New(@"c:\")));
- Assert.Equal (new Rune (' '), p.GetIcon (
- fs.FileInfo.New (GetFileSystemRoot() + @"myfile.txt"))
- );
- }
- private bool IsWindows ()
- {
- return System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform (System.Runtime.InteropServices.OSPlatform.Windows);
- }
- private IFileSystem GetMockFileSystem()
- {
- string root = GetFileSystemRoot();
- var fileSystem = new MockFileSystem (new Dictionary<string, MockFileData> (), root);
-
- fileSystem.AddFile (root+@"myfile.txt", new MockFileData ("Testing is meh."));
- fileSystem.AddFile (root+@"demo/jQuery.js", new MockFileData ("some js"));
- fileSystem.AddFile (root+@"demo/mybinary.exe", new MockFileData ("some js"));
- fileSystem.AddFile (root+@"demo/image.gif", new MockFileData (new byte [] { 0x12, 0x34, 0x56, 0xd2 }));
- var m = (MockDirectoryInfo)fileSystem.DirectoryInfo.New (root + @"demo/subfolder");
- m.Create ();
- return fileSystem;
- }
- private string GetFileSystemRoot ()
- {
- return IsWindows () ? @"c:\" : "/";
- }
- }
- }
|