123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323 |
- 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";
-
- [Test]
- 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);
- }
-
- [Test]
- 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);
- }
-
- [Test]
- 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);
- }
-
- [Test]
- 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);
- }
-
- [Test]
- 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);
- }
-
- [Test]
- 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);
- }
-
- [Test]
- 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);
- }
-
- [Test]
- 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);
- }
-
- [Test]
- 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);
- }
-
- [Test]
- 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);
- }
-
- [Test]
- 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);
- }
-
- [Test]
- 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);
- }
-
- [Test]
- 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);
- }
-
- [Test]
- 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);
- }
-
- [Test]
- 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);
- }
-
- [Test]
- 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);
- }
-
- [Test]
- 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);
- }
- }
|