mirror of
				https://github.com/nsnail/spectre.console.git
				synced 2025-11-04 10:35:27 +08:00 
			
		
		
		
	added some breaking unit tests
This commit is contained in:
		
				
					committed by
					
						
						Patrik Svensson
					
				
			
			
				
	
			
			
			
						parent
						
							0d19ccd8a6
						
					
				
				
					commit
					0d72b94f9c
				
			@@ -49,6 +49,36 @@ public partial class AnsiConsoleTests
 | 
				
			|||||||
            console.Output.ShouldMatch("]8;id=[0-9]*;https:\\/\\/patriksvensson\\.se\\\\https:\\/\\/patriksvensson\\.se]8;;\\\\");
 | 
					            console.Output.ShouldMatch("]8;id=[0-9]*;https:\\/\\/patriksvensson\\.se\\\\https:\\/\\/patriksvensson\\.se]8;;\\\\");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [Fact]
 | 
				
			||||||
 | 
					        public void Should_Output_Expected_Ansi_For_Link_With_Bracket_In_Url_Only()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            // Given
 | 
				
			||||||
 | 
					            var console = new TestConsole()
 | 
				
			||||||
 | 
					                .EmitAnsiSequences();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // When
 | 
				
			||||||
 | 
					            const string Path = "file://c:/temp/[x].txt";
 | 
				
			||||||
 | 
					            console.Markup($"[link]{Path.EscapeMarkup()}[/]");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // Then
 | 
				
			||||||
 | 
					            console.Output.ShouldMatch("]8;id=[0-9]*;file:\\/\\/c:\\/temp\\/\\[x\\].txt\\\\file:\\/\\/c:\\/temp\\/\\[x\\].txt]8;;\\\\");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [Fact]
 | 
				
			||||||
 | 
					        public void Should_Output_Expected_Ansi_For_Link_With_Bracket_In_Url()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            // Given
 | 
				
			||||||
 | 
					            var console = new TestConsole()
 | 
				
			||||||
 | 
					                .EmitAnsiSequences();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // When
 | 
				
			||||||
 | 
					            const string Path = "file://c:/temp/[x].txt";
 | 
				
			||||||
 | 
					            console.Markup($"[link={Path.EscapeMarkup()}]{Path.EscapeMarkup()}[/]");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // Then
 | 
				
			||||||
 | 
					            console.Output.ShouldMatch("]8;id=[0-9]*;file:\\/\\/c:\\/temp\\/\\[x\\].txt\\\\file:\\/\\/c:\\/temp\\/\\[x\\].txt]8;;\\\\");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        [Theory]
 | 
					        [Theory]
 | 
				
			||||||
        [InlineData("[yellow]Hello [[ World[/]", "[93mHello [ World[0m")]
 | 
					        [InlineData("[yellow]Hello [[ World[/]", "[93mHello [ World[0m")]
 | 
				
			||||||
        public void Should_Be_Able_To_Escape_Tags(string markup, string expected)
 | 
					        public void Should_Be_Able_To_Escape_Tags(string markup, string expected)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					namespace Spectre.Console.Tests.Unit;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public partial class AnsiConsoleTests
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public sealed class MarkupInterpolated
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        [Fact]
 | 
				
			||||||
 | 
					        public void Should_Print_Simple_Interpolated_Strings()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            // Given
 | 
				
			||||||
 | 
					            var console = new TestConsole()
 | 
				
			||||||
 | 
					                .Colors(ColorSystem.Standard)
 | 
				
			||||||
 | 
					                .EmitAnsiSequences();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // When
 | 
				
			||||||
 | 
					            const string Path = "file://c:/temp/[x].txt";
 | 
				
			||||||
 | 
					            console.MarkupInterpolated($"[Green]{Path}[/]");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // Then
 | 
				
			||||||
 | 
					            console.Output.ShouldBe($"[32m{Path}[0m");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [Fact]
 | 
				
			||||||
 | 
					        public void Should_Not_Throw_Error_On_Links_Brackets()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            // Given
 | 
				
			||||||
 | 
					            var console = new TestConsole()
 | 
				
			||||||
 | 
					                .Colors(ColorSystem.Standard)
 | 
				
			||||||
 | 
					                .EmitAnsiSequences();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // When
 | 
				
			||||||
 | 
					            const string Path = "file://c:/temp/[x].txt";
 | 
				
			||||||
 | 
					            console.MarkupInterpolated($"[link={Path}]{Path}[/]");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // Then
 | 
				
			||||||
 | 
					            var pathAsRegEx = Regex.Replace(Path, "([/\\[\\]\\\\])", "\\$1", RegexOptions.Compiled|RegexOptions.IgnoreCase);
 | 
				
			||||||
 | 
					            console.Output.ShouldMatch($"\\]8;id=[0-9]+;{pathAsRegEx}\\\\{pathAsRegEx}\\]8;;\\\\");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user