UntranslatedTextTests.cs 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Xunit;
  7. using XUnity.AutoTranslator.Plugin.Core.Configuration;
  8. using XUnity.AutoTranslator.Plugin.Core.Extensions;
  9. namespace XUnity.AutoTranslator.Plugin.Core.Tests
  10. {
  11. public class UntranslatedTextTests
  12. {
  13. [Theory( DisplayName = "Can_Trim_Surrounding_Whitespace" )]
  14. [InlineData( " Hello ", "Hello", " ", " " )]
  15. [InlineData( " Hello", "Hello", " ", null )]
  16. [InlineData( "Hello", "Hello", null, null )]
  17. [InlineData( "\r\n \r\nHello", "Hello", "\r\n \r\n", null )]
  18. [InlineData( "\r\n \r\nHello\n", "Hello", "\r\n \r\n", "\n" )]
  19. [InlineData( "\r\r\r\r\n \n Hello \r\n", "Hello", "\r\r\r\r\n \n ", " \r\n" )]
  20. public void Can_Trim_Surrounding_Whitespace( string input, string expectedTrimmedText, string expectedLeadingWhitespace, string expectedTrailingWhitespace )
  21. {
  22. Settings.UsesWhitespaceBetweenWords = false;
  23. var untranslatedText = new UntranslatedText( input, false, false );
  24. Assert.Equal( input, untranslatedText.TranslatableText );
  25. Assert.Equal( expectedTrimmedText, untranslatedText.TrimmedTranslatableText );
  26. Assert.Equal( expectedLeadingWhitespace, untranslatedText.LeadingWhitespace );
  27. Assert.Equal( expectedTrailingWhitespace, untranslatedText.TrailingWhitespace );
  28. }
  29. [Theory( DisplayName = "Can_Trim_Internal_Whitespace_English" )]
  30. [InlineData( "What are you doing?", "What are you doing?" )]
  31. [InlineData( "What are\nyou doing?", "What are you doing?" )]
  32. [InlineData( "What are\n\nyou doing?", "What are\n\nyou doing?" )]
  33. [InlineData( "What are\n\n \n\nyou doing?", "What are\n\n\n\nyou doing?" )]
  34. [InlineData( "What are\n\n \n\nyou doing?", "What are\n\n \n\nyou doing?" )]
  35. [InlineData( "What are\n \nyou doing?", "What are you doing?" )]
  36. public void Can_Trim_Internal_Whitespace_English( string input, string expectedTrimmedText )
  37. {
  38. Settings.UsesWhitespaceBetweenWords = true;
  39. var untranslatedText = new UntranslatedText( input, false, true );
  40. Assert.Equal( expectedTrimmedText, untranslatedText.TrimmedTranslatableText );
  41. }
  42. [Theory( DisplayName = "Can_Trim_Internal_Whitespace" )]
  43. [InlineData( "Hel lo", "Hel lo" )]
  44. [InlineData( "Hel\r\n lo", "Hello" )]
  45. [InlineData( "Hel\n\nlo", "Hel\n\nlo" )]
  46. [InlineData( "Hello\nWhat\nYou", "HelloWhatYou" )]
  47. [InlineData( "Hello\n\nWhat\nYou", "Hello\n\nWhatYou" )]
  48. public void Can_Trim_Internal_Whitespace( string input, string expectedTrimmedText )
  49. {
  50. Settings.UsesWhitespaceBetweenWords = false;
  51. var untranslatedText = new UntranslatedText( input, false, true );
  52. Assert.Equal( expectedTrimmedText, untranslatedText.TrimmedTranslatableText );
  53. }
  54. [Theory( DisplayName = "Can_Trim_Internal_And_Surrounding_Whitespace" )]
  55. [InlineData( "\r\n \r\nHe llo", "He llo", "\r\n \r\n", null )]
  56. [InlineData( "\r\n \r\nHe llo", "He llo", "\r\n \r\n", null )]
  57. [InlineData( "\r\n \r\nHel\r\nlo\n", "Hello", "\r\n \r\n", "\n" )]
  58. [InlineData( "\r\n \r\nHel\n\nlo\n", "Hel\n\nlo", "\r\n \r\n", "\n" )]
  59. [InlineData( "\r\n \r\nHel\n\n lo\n", "Hel\n\nlo", "\r\n \r\n", "\n" )]
  60. [InlineData( "\r\n \r\nHel\n\n lo\n", "Hel\n\n lo", "\r\n \r\n", "\n" )]
  61. [InlineData( "\r\n \r\nHel \n\n lo\n", "Hel \n\n lo", "\r\n \r\n", "\n" )]
  62. [InlineData( "\r\n \r\nHel \n lo\n", "Hel lo", "\r\n \r\n", "\n" )]
  63. [InlineData( "\r\n \r\nHel \n lo\n", "Hello", "\r\n \r\n", "\n" )]
  64. [InlineData( "\r\r\r\r\n \n Hell\no \r\n", "Hello", "\r\r\r\r\n \n ", " \r\n" )]
  65. public void Can_Trim_Internal_And_Surrounding_Whitespace( string input, string expectedTrimmedText, string expectedLeadingWhitespace, string expectedTrailingWhitespace )
  66. {
  67. Settings.UsesWhitespaceBetweenWords = false;
  68. var untranslatedText = new UntranslatedText( input, false, true );
  69. Assert.Equal( expectedTrimmedText, untranslatedText.TrimmedTranslatableText );
  70. Assert.Equal( expectedLeadingWhitespace, untranslatedText.LeadingWhitespace );
  71. Assert.Equal( expectedTrailingWhitespace, untranslatedText.TrailingWhitespace );
  72. }
  73. [Theory( DisplayName = "Can_Trim_Internal_And_Surrounding_Whitespace_And_Template" )]
  74. [InlineData( "\r\n \r\nFPS: 60.53", "FPS: {{A}}", "\r\n \r\n", null )]
  75. [InlineData( "\r\n \r\nFPS: 60.53", "FPS: {{A}}", "\r\n \r\n", null )]
  76. [InlineData( "\r\n \r\nFPS:\n 60.53", "FPS:{{A}}", "\r\n \r\n", null )]
  77. [InlineData( "\r\n \r\nFPS:\n 60.53", "FPS: {{A}}", "\r\n \r\n", null )]
  78. [InlineData( "\r\n \r\nFPS:\n \n 60.53", "FPS:{{A}}", "\r\n \r\n", null )]
  79. [InlineData( "\r\n \r\nFPS:\n \n 60.53", "FPS: {{A}}", "\r\n \r\n", null )]
  80. public void Can_Trim_Internal_And_Surrounding_Whitespace_And_Template( string input, string expectedTrimmedText, string expectedLeadingWhitespace, string expectedTrailingWhitespace )
  81. {
  82. Settings.UsesWhitespaceBetweenWords = false;
  83. var untranslatedText = new UntranslatedText( input, true, true );
  84. Assert.Equal( expectedTrimmedText, untranslatedText.TrimmedTranslatableText );
  85. Assert.Equal( expectedLeadingWhitespace, untranslatedText.LeadingWhitespace );
  86. Assert.Equal( expectedTrailingWhitespace, untranslatedText.TrailingWhitespace );
  87. }
  88. }
  89. }