| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- using NUnit.Framework;
- using Ryujinx.HLE.HOS.Applets;
- using System.Text;
- namespace Ryujinx.Tests.HLE
- {
- public class SoftwareKeyboardTests
- {
- [Test]
- public void StripUnicodeControlCodes_NullInput()
- {
- Assert.IsNull(SoftwareKeyboardApplet.StripUnicodeControlCodes(null));
- }
- [Test]
- public void StripUnicodeControlCodes_EmptyInput()
- {
- Assert.AreEqual(string.Empty, SoftwareKeyboardApplet.StripUnicodeControlCodes(string.Empty));
- }
- [Test]
- public void StripUnicodeControlCodes_Passthrough()
- {
- string[] prompts = new string[]
- {
- "Please name him.",
- "Name her, too.",
- "Name your friend.",
- "Name another friend.",
- "Name your pet.",
- "Favorite homemade food?",
- "What’s your favorite thing?",
- "Are you sure?",
- };
- foreach (string prompt in prompts)
- {
- Assert.AreEqual(prompt, SoftwareKeyboardApplet.StripUnicodeControlCodes(prompt));
- }
- }
- [Test]
- public void StripUnicodeControlCodes_StripsNewlines()
- {
- Assert.AreEqual("I am very tall", SoftwareKeyboardApplet.StripUnicodeControlCodes("I \r\nam \r\nvery \r\ntall"));
- }
- [Test]
- public void StripUnicodeControlCodes_StripsDeviceControls()
- {
- // 0x13 is control code DC3 used by some games
- string specialInput = Encoding.UTF8.GetString(new byte[] { 0x13, 0x53, 0x68, 0x69, 0x6E, 0x65, 0x13 });
- Assert.AreEqual("Shine", SoftwareKeyboardApplet.StripUnicodeControlCodes(specialInput));
- }
- [Test]
- public void StripUnicodeControlCodes_StripsToEmptyString()
- {
- string specialInput = Encoding.UTF8.GetString(new byte[] { 17, 18, 19, 20 }); // DC1 - DC4 special codes
- Assert.AreEqual(string.Empty, SoftwareKeyboardApplet.StripUnicodeControlCodes(specialInput));
- }
- [Test]
- public void StripUnicodeControlCodes_PreservesMultiCodePoints()
- {
- // Turtles are a good example of multi-codepoint Unicode chars
- string specialInput = "♀ 🐢 🐢 ♂ ";
- Assert.AreEqual(specialInput, SoftwareKeyboardApplet.StripUnicodeControlCodes(specialInput));
- }
- }
- }
|