Maze / Library /PackageCache /com.unity.ugui@1.0.0 /Tests /Runtime /TextEditor /TextEditorBackspaceDelete.cs
| using System.Collections; | |
| using System.Collections.Generic; | |
| using NUnit.Framework; | |
| using UnityEngine; | |
| using UnityEngine.TestTools; | |
| public class TextEditorBackspaceDelete | |
| { | |
| private const string kFailedToRemoveCharacterMessage = "Backspace or Delete Failed To Remove The Expected Character"; | |
| private const string kFailedToChangeCursor = "Backspace or Delete Failed To Move The Cursor To The Expected Index"; | |
| private const string kFailedToChangeSelect = "Backspace or Delete Failed To Move The Selection Index To The Expected Index"; | |
| [] | |
| public void TextEditorWithUTF16_MiddleCursorOnBackspace_RemovesCharacter() | |
| { | |
| var textBox = new TextEditor() | |
| { | |
| text = "MikeDeRoy", | |
| cursorIndex = 4, | |
| selectIndex = 4, | |
| }; | |
| textBox.Backspace(); | |
| Assert.AreEqual("MikDeRoy", textBox.text, kFailedToRemoveCharacterMessage); | |
| Assert.AreEqual(3, textBox.cursorIndex, kFailedToChangeCursor); | |
| Assert.AreEqual(3, textBox.selectIndex, kFailedToChangeSelect); | |
| } | |
| [] | |
| public void TextEditorWithUTF16_MiddleCursorOnDelete_RemovesCharacter() | |
| { | |
| var textBox = new TextEditor() | |
| { | |
| text = "MikeDeRoy", | |
| cursorIndex = 3, | |
| selectIndex = 3, | |
| }; | |
| textBox.Delete(); | |
| Assert.AreEqual("MikDeRoy", textBox.text, kFailedToRemoveCharacterMessage); | |
| Assert.AreEqual(3, textBox.cursorIndex, kFailedToChangeCursor); | |
| Assert.AreEqual(3, textBox.selectIndex, kFailedToChangeSelect); | |
| } | |
| [] | |
| public void TextEditorWithUTF16_MiddleCursorOnBackspaceAndLeftSurrogate_RemovesBothSurrogates() | |
| { | |
| var textBox = new TextEditor() | |
| { | |
| text = "Mike🗘DeRoy", | |
| cursorIndex = 5, | |
| selectIndex = 5, | |
| }; | |
| textBox.Backspace(); | |
| Assert.AreEqual("MikeDeRoy", textBox.text, kFailedToRemoveCharacterMessage); | |
| Assert.AreEqual(4, textBox.cursorIndex, kFailedToChangeCursor); | |
| Assert.AreEqual(4, textBox.selectIndex, kFailedToChangeSelect); | |
| } | |
| [] | |
| public void TextEditorWithUTF16_MiddleCursorOnDeleteAndLeftSurrogate_RemovesBothSurrogates() | |
| { | |
| var textBox = new TextEditor() | |
| { | |
| text = "Mike🗘DeRoy", | |
| cursorIndex = 4, | |
| selectIndex = 4, | |
| }; | |
| textBox.Delete(); | |
| Assert.AreEqual("MikeDeRoy", textBox.text, kFailedToRemoveCharacterMessage); | |
| Assert.AreEqual(4, textBox.cursorIndex, kFailedToChangeCursor); | |
| Assert.AreEqual(4, textBox.selectIndex, kFailedToChangeSelect); | |
| } | |
| [] | |
| public void TextEditorWithUTF16_MiddleCursorOnBackspaceAndRightSurrogate_RemovesBothSurrogates() | |
| { | |
| var textBox = new TextEditor() | |
| { | |
| text = "Mike🗘DeRoy", | |
| cursorIndex = 6, | |
| selectIndex = 6, | |
| }; | |
| textBox.Backspace(); | |
| Assert.AreEqual("MikeDeRoy", textBox.text, kFailedToRemoveCharacterMessage); | |
| Assert.AreEqual(4, textBox.cursorIndex, kFailedToChangeCursor); | |
| Assert.AreEqual(4, textBox.selectIndex, kFailedToChangeSelect); | |
| } | |
| [] | |
| public void TextEditorWithUTF16_LeftCursorOnBackspace_DoesNotRemoveCharacter() | |
| { | |
| var textBox = new TextEditor() | |
| { | |
| text = "MikeDeRoy", | |
| cursorIndex = 0, | |
| selectIndex = 0, | |
| }; | |
| textBox.Backspace(); | |
| Assert.AreEqual("MikeDeRoy", textBox.text, kFailedToRemoveCharacterMessage); | |
| Assert.AreEqual(0, textBox.cursorIndex, kFailedToChangeCursor); | |
| Assert.AreEqual(0, textBox.selectIndex, kFailedToChangeSelect); | |
| } | |
| [] | |
| public void TextEditorWithUTF16_LeftCursorOnDelete_RemovesCharacter() | |
| { | |
| var textBox = new TextEditor() | |
| { | |
| text = "MikeDeRoy", | |
| cursorIndex = 0, | |
| selectIndex = 0, | |
| }; | |
| textBox.Delete(); | |
| Assert.AreEqual("ikeDeRoy", textBox.text, kFailedToRemoveCharacterMessage); | |
| Assert.AreEqual(0, textBox.cursorIndex, kFailedToChangeCursor); | |
| Assert.AreEqual(0, textBox.selectIndex, kFailedToChangeSelect); | |
| } | |
| [] | |
| public void TextEditorWithUTF16_LeftCursorOnBackspaceAndLeftSurrogate_RemovesBothSurrogates() | |
| { | |
| var textBox = new TextEditor() | |
| { | |
| text = "🗘MikeDeRoy", | |
| cursorIndex = 1, | |
| selectIndex = 1, | |
| }; | |
| textBox.Backspace(); | |
| Assert.AreEqual("MikeDeRoy", textBox.text, kFailedToRemoveCharacterMessage); | |
| Assert.AreEqual(0, textBox.cursorIndex, kFailedToChangeCursor); | |
| Assert.AreEqual(0, textBox.selectIndex, kFailedToChangeSelect); | |
| } | |
| [] | |
| public void TextEditorWithUTF16_LeftCursorOnDeleteAndLeftSurrogate_RemovesBothSurrogates() | |
| { | |
| var textBox = new TextEditor() | |
| { | |
| text = "🗘MikeDeRoy", | |
| cursorIndex = 0, | |
| selectIndex = 0, | |
| }; | |
| textBox.Delete(); | |
| Assert.AreEqual("MikeDeRoy", textBox.text, kFailedToRemoveCharacterMessage); | |
| Assert.AreEqual(0, textBox.cursorIndex, kFailedToChangeCursor); | |
| Assert.AreEqual(0, textBox.selectIndex, kFailedToChangeSelect); | |
| } | |
| [] | |
| public void TextEditorWithUTF16_LeftCursorOnBackspaceAndRightSurrogate_RemovesBothSurrogates() | |
| { | |
| var textBox = new TextEditor() | |
| { | |
| text = "🗘MikeDeRoy", | |
| cursorIndex = 2, | |
| selectIndex = 2, | |
| }; | |
| textBox.Backspace(); | |
| Assert.AreEqual("MikeDeRoy", textBox.text, kFailedToRemoveCharacterMessage); | |
| Assert.AreEqual(0, textBox.cursorIndex, kFailedToChangeCursor); | |
| Assert.AreEqual(0, textBox.selectIndex, kFailedToChangeSelect); | |
| } | |
| [] | |
| public void TextEditorWithUTF16_RightCursorOnBackspace_RemovesCharacters() | |
| { | |
| var textBox = new TextEditor() | |
| { | |
| text = "MikeDeRoy", | |
| cursorIndex = 9, | |
| selectIndex = 9, | |
| }; | |
| textBox.Backspace(); | |
| Assert.AreEqual("MikeDeRo", textBox.text, kFailedToRemoveCharacterMessage); | |
| Assert.AreEqual(8, textBox.cursorIndex, kFailedToChangeCursor); | |
| Assert.AreEqual(8, textBox.selectIndex, kFailedToChangeSelect); | |
| } | |
| [] | |
| public void TextEditorWithUTF16_RightCursorOnDelete_DoesNotRemoveCharacter() | |
| { | |
| var textBox = new TextEditor() | |
| { | |
| text = "MikeDeRoy", | |
| cursorIndex = 9, | |
| selectIndex = 9, | |
| }; | |
| textBox.Delete(); | |
| Assert.AreEqual("MikeDeRoy", textBox.text, kFailedToRemoveCharacterMessage); | |
| Assert.AreEqual(9, textBox.cursorIndex, kFailedToChangeCursor); | |
| Assert.AreEqual(9, textBox.selectIndex, kFailedToChangeSelect); | |
| } | |
| [] | |
| public void TextEditorWithUTF16_RightCursorOnBackspaceAndLeftSurrogate_RemovesBothSurrogates() | |
| { | |
| var textBox = new TextEditor() | |
| { | |
| text = "MikeDeRoy🗘", | |
| cursorIndex = 10, | |
| selectIndex = 10, | |
| }; | |
| textBox.Backspace(); | |
| Assert.AreEqual("MikeDeRoy", textBox.text, kFailedToRemoveCharacterMessage); | |
| Assert.AreEqual(9, textBox.cursorIndex, kFailedToChangeCursor); | |
| Assert.AreEqual(9, textBox.selectIndex, kFailedToChangeSelect); | |
| } | |
| [] | |
| public void TextEditorWithUTF16_RightCursorOnDeleteAndLeftSurrogate_RemovesBothSurrogates() | |
| { | |
| var textBox = new TextEditor() | |
| { | |
| text = "MikeDeRoy🗘", | |
| cursorIndex = 9, | |
| selectIndex = 9, | |
| }; | |
| textBox.Delete(); | |
| Assert.AreEqual("MikeDeRoy", textBox.text, kFailedToRemoveCharacterMessage); | |
| Assert.AreEqual(9, textBox.cursorIndex, kFailedToChangeCursor); | |
| Assert.AreEqual(9, textBox.selectIndex, kFailedToChangeSelect); | |
| } | |
| [] | |
| public void TextEditorWithUTF16_RightCursorOnBackspaceAndRightSurrogate_RemovesBothSurrogates() | |
| { | |
| var textBox = new TextEditor() | |
| { | |
| text = "MikeDeRoy🗘", | |
| cursorIndex = 11, | |
| selectIndex = 11, | |
| }; | |
| textBox.Backspace(); | |
| Assert.AreEqual("MikeDeRoy", textBox.text, kFailedToRemoveCharacterMessage); | |
| Assert.AreEqual(9, textBox.cursorIndex, kFailedToChangeCursor); | |
| Assert.AreEqual(9, textBox.selectIndex, kFailedToChangeSelect); | |
| } | |
| [] | |
| public void TextEditorWithUTF16_MiddleCursorOnBackspace_RemovesBothSurrogatesInSuccession() | |
| { | |
| var textBox = new TextEditor() | |
| { | |
| text = "Mike🗘🗘🗘DeRoy", | |
| cursorIndex = 8, | |
| selectIndex = 8, | |
| }; | |
| textBox.Backspace(); | |
| Assert.AreEqual("Mike🗘🗘DeRoy", textBox.text, kFailedToRemoveCharacterMessage); | |
| Assert.AreEqual(6, textBox.cursorIndex, kFailedToChangeCursor); | |
| Assert.AreEqual(6, textBox.selectIndex, kFailedToChangeSelect); | |
| textBox.Backspace(); | |
| Assert.AreEqual("Mike🗘DeRoy", textBox.text, kFailedToRemoveCharacterMessage); | |
| Assert.AreEqual(4, textBox.cursorIndex, kFailedToChangeCursor); | |
| Assert.AreEqual(4, textBox.selectIndex, kFailedToChangeSelect); | |
| textBox.Backspace(); | |
| Assert.AreEqual("Mik🗘DeRoy", textBox.text, kFailedToRemoveCharacterMessage); | |
| Assert.AreEqual(3, textBox.cursorIndex, kFailedToChangeCursor); | |
| Assert.AreEqual(3, textBox.selectIndex, kFailedToChangeSelect); | |
| } | |
| [] | |
| public void TextEditorWithUTF16_MiddleCursorOnDelete_RemovesBothSurrogatesInSuccession() | |
| { | |
| var textBox = new TextEditor() | |
| { | |
| text = "Mike🗘🗘🗘DeRoy", | |
| cursorIndex = 6, | |
| selectIndex = 6, | |
| }; | |
| textBox.Delete(); | |
| Assert.AreEqual("Mike🗘🗘DeRoy", textBox.text, kFailedToRemoveCharacterMessage); | |
| Assert.AreEqual(6, textBox.cursorIndex, kFailedToChangeCursor); | |
| Assert.AreEqual(6, textBox.selectIndex, kFailedToChangeSelect); | |
| textBox.Delete(); | |
| Assert.AreEqual("Mike🗘DeRoy", textBox.text, kFailedToRemoveCharacterMessage); | |
| Assert.AreEqual(6, textBox.cursorIndex, kFailedToChangeCursor); | |
| Assert.AreEqual(6, textBox.selectIndex, kFailedToChangeSelect); | |
| textBox.Delete(); | |
| Assert.AreEqual("Mike🗘eRoy", textBox.text, kFailedToRemoveCharacterMessage); | |
| Assert.AreEqual(6, textBox.cursorIndex, kFailedToChangeCursor); | |
| Assert.AreEqual(6, textBox.selectIndex, kFailedToChangeSelect); | |
| } | |
| } | |