A game about forced loneliness, made by TACStudios
at master 356 lines 12 kB view raw
1using System.Collections; 2using System.Collections.Generic; 3using NUnit.Framework; 4using UnityEngine; 5using UnityEngine.TestTools; 6 7public class TextEditorBackspaceDelete 8{ 9 private const string kFailedToRemoveCharacterMessage = "Backspace or Delete Failed To Remove The Expected Character"; 10 private const string kFailedToChangeCursor = "Backspace or Delete Failed To Move The Cursor To The Expected Index"; 11 private const string kFailedToChangeSelect = "Backspace or Delete Failed To Move The Selection Index To The Expected Index"; 12 13 [Test] 14 public void TextEditorWithUTF16_MiddleCursorOnBackspace_RemovesCharacter() 15 { 16 var textBox = new TextEditor() 17 { 18 text = "MikeDeRoy", 19 cursorIndex = 4, 20 selectIndex = 4, 21 }; 22 textBox.UpdateTextHandle(); 23 24 textBox.UpdateTextHandle(); 25 26 textBox.Backspace(); 27 28 Assert.AreEqual("MikDeRoy", textBox.text, kFailedToRemoveCharacterMessage); 29 Assert.AreEqual(3, textBox.cursorIndex, kFailedToChangeCursor); 30 Assert.AreEqual(3, textBox.selectIndex, kFailedToChangeSelect); 31 } 32 33 [Test] 34 public void TextEditorWithUTF16_MiddleCursorOnDelete_RemovesCharacter() 35 { 36 var textBox = new TextEditor() 37 { 38 text = "MikeDeRoy", 39 cursorIndex = 3, 40 selectIndex = 3, 41 }; 42 textBox.UpdateTextHandle(); 43 44 textBox.UpdateTextHandle(); 45 46 textBox.Delete(); 47 48 Assert.AreEqual("MikDeRoy", textBox.text, kFailedToRemoveCharacterMessage); 49 Assert.AreEqual(3, textBox.cursorIndex, kFailedToChangeCursor); 50 Assert.AreEqual(3, textBox.selectIndex, kFailedToChangeSelect); 51 } 52 53 [Test] 54 public void TextEditorWithUTF16_MiddleCursorOnBackspaceAndLeftSurrogate_RemovesBothSurrogates() 55 { 56 var textBox = new TextEditor() 57 { 58 text = "Mike🗘DeRoy", 59 cursorIndex = 5, 60 selectIndex = 5, 61 }; 62 textBox.UpdateTextHandle(); 63 64 textBox.Backspace(); 65 66 Assert.AreEqual("MikeDeRoy", textBox.text, kFailedToRemoveCharacterMessage); 67 Assert.AreEqual(4, textBox.cursorIndex, kFailedToChangeCursor); 68 Assert.AreEqual(4, textBox.selectIndex, kFailedToChangeSelect); 69 } 70 71 [Test] 72 public void TextEditorWithUTF16_MiddleCursorOnDeleteAndLeftSurrogate_RemovesBothSurrogates() 73 { 74 var textBox = new TextEditor() 75 { 76 text = "Mike🗘DeRoy", 77 cursorIndex = 4, 78 selectIndex = 4, 79 }; 80 textBox.UpdateTextHandle(); 81 82 textBox.Delete(); 83 84 Assert.AreEqual("MikeDeRoy", textBox.text, kFailedToRemoveCharacterMessage); 85 Assert.AreEqual(4, textBox.cursorIndex, kFailedToChangeCursor); 86 Assert.AreEqual(4, textBox.selectIndex, kFailedToChangeSelect); 87 } 88 89 [Test] 90 public void TextEditorWithUTF16_MiddleCursorOnBackspaceAndRightSurrogate_RemovesBothSurrogates() 91 { 92 var textBox = new TextEditor() 93 { 94 text = "Mike🗘DeRoy", 95 cursorIndex = 5, 96 selectIndex = 5, 97 }; 98 textBox.UpdateTextHandle();; 99 100 textBox.Backspace(); 101 102 Assert.AreEqual("MikeDeRoy", textBox.text, kFailedToRemoveCharacterMessage); 103 Assert.AreEqual(4, textBox.cursorIndex, kFailedToChangeCursor); 104 Assert.AreEqual(4, textBox.selectIndex, kFailedToChangeSelect); 105 } 106 107 [Test] 108 public void TextEditorWithUTF16_LeftCursorOnBackspace_DoesNotRemoveCharacter() 109 { 110 var textBox = new TextEditor() 111 { 112 text = "MikeDeRoy", 113 cursorIndex = 0, 114 selectIndex = 0, 115 }; 116 textBox.UpdateTextHandle(); 117 118 textBox.UpdateTextHandle(); 119 120 textBox.Backspace(); 121 122 Assert.AreEqual("MikeDeRoy", textBox.text, kFailedToRemoveCharacterMessage); 123 Assert.AreEqual(0, textBox.cursorIndex, kFailedToChangeCursor); 124 Assert.AreEqual(0, textBox.selectIndex, kFailedToChangeSelect); 125 } 126 127 [Test] 128 public void TextEditorWithUTF16_LeftCursorOnDelete_RemovesCharacter() 129 { 130 var textBox = new TextEditor() 131 { 132 text = "MikeDeRoy", 133 cursorIndex = 0, 134 selectIndex = 0, 135 }; 136 textBox.UpdateTextHandle(); 137 138 textBox.UpdateTextHandle(); 139 140 textBox.Delete(); 141 142 Assert.AreEqual("ikeDeRoy", textBox.text, kFailedToRemoveCharacterMessage); 143 Assert.AreEqual(0, textBox.cursorIndex, kFailedToChangeCursor); 144 Assert.AreEqual(0, textBox.selectIndex, kFailedToChangeSelect); 145 } 146 147 [Test] 148 public void TextEditorWithUTF16_LeftCursorOnBackspaceAndLeftSurrogate_RemovesBothSurrogates() 149 { 150 var textBox = new TextEditor() 151 { 152 text = "🗘MikeDeRoy", 153 cursorIndex = 1, 154 selectIndex = 1, 155 }; 156 textBox.UpdateTextHandle(); 157 158 textBox.Backspace(); 159 160 Assert.AreEqual("MikeDeRoy", textBox.text, kFailedToRemoveCharacterMessage); 161 Assert.AreEqual(0, textBox.cursorIndex, kFailedToChangeCursor); 162 Assert.AreEqual(0, textBox.selectIndex, kFailedToChangeSelect); 163 } 164 165 [Test] 166 public void TextEditorWithUTF16_LeftCursorOnDeleteAndLeftSurrogate_RemovesBothSurrogates() 167 { 168 var textBox = new TextEditor() 169 { 170 text = "🗘MikeDeRoy", 171 cursorIndex = 0, 172 selectIndex = 0, 173 }; 174 textBox.UpdateTextHandle(); 175 176 textBox.Delete(); 177 178 Assert.AreEqual("MikeDeRoy", textBox.text, kFailedToRemoveCharacterMessage); 179 Assert.AreEqual(0, textBox.cursorIndex, kFailedToChangeCursor); 180 Assert.AreEqual(0, textBox.selectIndex, kFailedToChangeSelect); 181 } 182 183 [Test] 184 public void TextEditorWithUTF16_LeftCursorOnBackspaceAndRightSurrogate_RemovesBothSurrogates() 185 { 186 var textBox = new TextEditor() 187 { 188 text = "🗘MikeDeRoy", 189 cursorIndex = 1, 190 selectIndex = 1, 191 }; 192 textBox.UpdateTextHandle(); 193 194 textBox.Backspace(); 195 196 Assert.AreEqual("MikeDeRoy", textBox.text, kFailedToRemoveCharacterMessage); 197 Assert.AreEqual(0, textBox.cursorIndex, kFailedToChangeCursor); 198 Assert.AreEqual(0, textBox.selectIndex, kFailedToChangeSelect); 199 } 200 201 [Test] 202 public void TextEditorWithUTF16_RightCursorOnBackspace_RemovesCharacters() 203 { 204 var textBox = new TextEditor() 205 { 206 text = "MikeDeRoy", 207 cursorIndex = 9, 208 selectIndex = 9, 209 }; 210 textBox.UpdateTextHandle(); 211 212 textBox.UpdateTextHandle(); 213 214 textBox.Backspace(); 215 216 Assert.AreEqual("MikeDeRo", textBox.text, kFailedToRemoveCharacterMessage); 217 Assert.AreEqual(8, textBox.cursorIndex, kFailedToChangeCursor); 218 Assert.AreEqual(8, textBox.selectIndex, kFailedToChangeSelect); 219 } 220 221 [Test] 222 public void TextEditorWithUTF16_RightCursorOnDelete_DoesNotRemoveCharacter() 223 { 224 var textBox = new TextEditor() 225 { 226 text = "MikeDeRoy", 227 cursorIndex = 9, 228 selectIndex = 9, 229 }; 230 textBox.UpdateTextHandle(); 231 232 textBox.UpdateTextHandle(); 233 234 textBox.Delete(); 235 236 Assert.AreEqual("MikeDeRoy", textBox.text, kFailedToRemoveCharacterMessage); 237 Assert.AreEqual(9, textBox.cursorIndex, kFailedToChangeCursor); 238 Assert.AreEqual(9, textBox.selectIndex, kFailedToChangeSelect); 239 } 240 241 [Test] 242 public void TextEditorWithUTF16_RightCursorOnBackspaceAndLeftSurrogate_RemovesBothSurrogates() 243 { 244 var textBox = new TextEditor() 245 { 246 text = "MikeDeRoy🗘", 247 cursorIndex = 10, 248 selectIndex = 10, 249 }; 250 textBox.UpdateTextHandle(); 251 252 textBox.Backspace(); 253 254 Assert.AreEqual("MikeDeRoy", textBox.text, kFailedToRemoveCharacterMessage); 255 Assert.AreEqual(9, textBox.cursorIndex, kFailedToChangeCursor); 256 Assert.AreEqual(9, textBox.selectIndex, kFailedToChangeSelect); 257 } 258 259 260 [Test] 261 public void TextEditorWithUTF16_RightCursorOnDeleteAndLeftSurrogate_RemovesBothSurrogates() 262 { 263 var textBox = new TextEditor() 264 { 265 text = "MikeDeRoy🗘", 266 cursorIndex = 9, 267 selectIndex = 9, 268 }; 269 textBox.UpdateTextHandle(); 270 271 textBox.Delete(); 272 273 Assert.AreEqual("MikeDeRoy", textBox.text, kFailedToRemoveCharacterMessage); 274 Assert.AreEqual(9, textBox.cursorIndex, kFailedToChangeCursor); 275 Assert.AreEqual(9, textBox.selectIndex, kFailedToChangeSelect); 276 } 277 278 [Test] 279 public void TextEditorWithUTF16_RightCursorOnBackspaceAndRightSurrogate_RemovesBothSurrogates() 280 { 281 var textBox = new TextEditor() 282 { 283 text = "MikeDeRoy🗘", 284 cursorIndex = 11, 285 selectIndex = 11, 286 }; 287 textBox.UpdateTextHandle(); 288 289 textBox.Backspace(); 290 291 Assert.AreEqual("MikeDeRoy", textBox.text, kFailedToRemoveCharacterMessage); 292 Assert.AreEqual(9, textBox.cursorIndex, kFailedToChangeCursor); 293 Assert.AreEqual(9, textBox.selectIndex, kFailedToChangeSelect); 294 } 295 296 [Test] 297 public void TextEditorWithUTF16_MiddleCursorOnBackspace_RemovesBothSurrogatesInSuccession() 298 { 299 var textBox = new TextEditor() 300 { 301 text = "Mike🗘🗘🗘DeRoy", 302 cursorIndex = 6, 303 selectIndex = 6, 304 }; 305 textBox.UpdateTextHandle(); 306 307 textBox.Backspace(); 308 309 Assert.AreEqual("Mike🗘🗘DeRoy", textBox.text, kFailedToRemoveCharacterMessage); 310 Assert.AreEqual(5, textBox.cursorIndex, kFailedToChangeCursor); 311 Assert.AreEqual(5, textBox.selectIndex, kFailedToChangeSelect); 312 313 textBox.Backspace(); 314 315 Assert.AreEqual("Mike🗘DeRoy", textBox.text, kFailedToRemoveCharacterMessage); 316 Assert.AreEqual(4, textBox.cursorIndex, kFailedToChangeCursor); 317 Assert.AreEqual(4, textBox.selectIndex, kFailedToChangeSelect); 318 319 textBox.Backspace(); 320 Assert.AreEqual("Mik🗘DeRoy", textBox.text, kFailedToRemoveCharacterMessage); 321 Assert.AreEqual(3, textBox.cursorIndex, kFailedToChangeCursor); 322 Assert.AreEqual(3, textBox.selectIndex, kFailedToChangeSelect); 323 } 324 325 [Test] 326 public void TextEditorWithUTF16_MiddleCursorOnDelete_RemovesBothSurrogatesInSuccession() 327 { 328 var textBox = new TextEditor() 329 { 330 text = "Mike🗘🗘🗘DeRoy", 331 cursorIndex = 5, 332 selectIndex = 5, 333 }; 334 textBox.UpdateTextHandle(); 335 336 textBox.Delete(); 337 textBox.UpdateTextHandle(); 338 339 Assert.AreEqual("Mike🗘🗘DeRoy", textBox.text, kFailedToRemoveCharacterMessage); 340 Assert.AreEqual(5, textBox.cursorIndex, kFailedToChangeCursor); 341 Assert.AreEqual(5, textBox.selectIndex, kFailedToChangeSelect); 342 343 textBox.Delete(); 344 textBox.UpdateTextHandle(); 345 346 Assert.AreEqual("Mike🗘DeRoy", textBox.text, kFailedToRemoveCharacterMessage); 347 Assert.AreEqual(5, textBox.cursorIndex, kFailedToChangeCursor); 348 Assert.AreEqual(5, textBox.selectIndex, kFailedToChangeSelect); 349 350 textBox.Delete(); 351 textBox.UpdateTextHandle(); 352 Assert.AreEqual("Mike🗘eRoy", textBox.text, kFailedToRemoveCharacterMessage); 353 Assert.AreEqual(5, textBox.cursorIndex, kFailedToChangeCursor); 354 Assert.AreEqual(5, textBox.selectIndex, kFailedToChangeSelect); 355 } 356}