1 /* 2 * Copyright (C) 2008 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package android.text.cts; 18 19 20 import android.test.AndroidTestCase; 21 import android.text.Selection; 22 import android.text.SpannableStringBuilder; 23 import android.text.StaticLayout; 24 import android.text.TextPaint; 25 26 public class SelectionTest extends AndroidTestCase { 27 public void testGetSelectionStart() { 28 CharSequence text = "hello, world"; 29 SpannableStringBuilder builder = new SpannableStringBuilder(text); 30 assertEquals(-1, Selection.getSelectionStart(builder)); 31 32 Selection.setSelection(builder, 3, 8); 33 assertEquals(3, Selection.getSelectionStart(builder)); 34 35 Selection.setSelection(builder, 3, 9); 36 assertEquals(3, Selection.getSelectionStart(builder)); 37 38 Selection.setSelection(builder, 5, 7); 39 assertEquals(5, Selection.getSelectionStart(builder)); 40 41 assertEquals(-1, Selection.getSelectionStart(null)); 42 } 43 44 public void testGetSelectionEnd() { 45 CharSequence text = "hello, world"; 46 SpannableStringBuilder builder = new SpannableStringBuilder(text); 47 assertEquals(-1, Selection.getSelectionEnd(builder)); 48 49 Selection.setSelection(builder, 0, 10); 50 assertEquals(10, Selection.getSelectionEnd(builder)); 51 52 Selection.setSelection(builder, 1, 8); 53 assertEquals(8, Selection.getSelectionEnd(builder)); 54 55 Selection.setSelection(builder, 2, 8); 56 assertEquals(8, Selection.getSelectionEnd(builder)); 57 58 assertEquals(-1, Selection.getSelectionStart(null)); 59 } 60 61 public void testSetSelection1() { 62 CharSequence text = "hello, world"; 63 SpannableStringBuilder builder = new SpannableStringBuilder(text); 64 assertEquals(-1, Selection.getSelectionStart(builder)); 65 assertEquals(-1, Selection.getSelectionEnd(builder)); 66 67 Selection.setSelection(builder, 3, 6); 68 assertEquals(3, Selection.getSelectionStart(builder)); 69 assertEquals(6, Selection.getSelectionEnd(builder)); 70 71 Selection.setSelection(builder, 3, 7); 72 assertEquals(3, Selection.getSelectionStart(builder)); 73 assertEquals(7, Selection.getSelectionEnd(builder)); 74 75 Selection.setSelection(builder, 3, 7); 76 assertEquals(3, Selection.getSelectionStart(builder)); 77 assertEquals(7, Selection.getSelectionEnd(builder)); 78 79 Selection.setSelection(builder, 6, 2); 80 assertEquals(6, Selection.getSelectionStart(builder)); 81 assertEquals(2, Selection.getSelectionEnd(builder)); 82 83 try { 84 Selection.setSelection(builder, -1, 100); 85 fail("should throw IndexOutOfBoundsException"); 86 } catch (IndexOutOfBoundsException e) { 87 } 88 } 89 90 public void testSetSelection2() { 91 SpannableStringBuilder builder = new SpannableStringBuilder("hello, world"); 92 assertEquals(-1, Selection.getSelectionStart(builder)); 93 assertEquals(-1, Selection.getSelectionEnd(builder)); 94 95 Selection.setSelection(builder, 1, 4); 96 assertEquals(1, Selection.getSelectionStart(builder)); 97 assertEquals(4, Selection.getSelectionEnd(builder)); 98 99 Selection.setSelection(builder, 3); 100 assertEquals(3, Selection.getSelectionStart(builder)); 101 assertEquals(3, Selection.getSelectionEnd(builder)); 102 103 try { 104 Selection.setSelection(builder, -1); 105 fail("should throw IndexOutOfBoundsException"); 106 } catch (IndexOutOfBoundsException e) { 107 } 108 109 try { 110 Selection.setSelection(builder, 100); 111 fail("should throw IndexOutOfBoundsException"); 112 } catch (IndexOutOfBoundsException e) { 113 } 114 } 115 116 public void testRemoveSelection() { 117 CharSequence text = "hello, world"; 118 SpannableStringBuilder builder = new SpannableStringBuilder(text); 119 assertEquals(-1, Selection.getSelectionStart(builder)); 120 assertEquals(-1, Selection.getSelectionEnd(builder)); 121 122 Selection.removeSelection(builder); 123 assertEquals(-1, Selection.getSelectionStart(builder)); 124 assertEquals(-1, Selection.getSelectionEnd(builder)); 125 126 Selection.setSelection(builder, 1, 6); 127 assertEquals(1, Selection.getSelectionStart(builder)); 128 assertEquals(6, Selection.getSelectionEnd(builder)); 129 130 Selection.removeSelection(builder); 131 assertEquals(-1, Selection.getSelectionStart(builder)); 132 assertEquals(-1, Selection.getSelectionEnd(builder)); 133 } 134 135 public void testSelectAll() { 136 CharSequence text = "hello, world"; 137 SpannableStringBuilder builder = new SpannableStringBuilder(text); 138 assertEquals(-1, Selection.getSelectionStart(builder)); 139 assertEquals(-1, Selection.getSelectionEnd(builder));; 140 141 Selection.selectAll(builder); 142 assertEquals(0, Selection.getSelectionStart(builder)); 143 assertEquals(text.length(), Selection.getSelectionEnd(builder)); 144 145 Selection.setSelection(builder, 4, 5); 146 Selection.selectAll(builder); 147 assertEquals(0, Selection.getSelectionStart(builder)); 148 assertEquals(text.length(), Selection.getSelectionEnd(builder)); 149 150 Selection.setSelection(builder, 8, 4); 151 Selection.selectAll(builder); 152 assertEquals(0, Selection.getSelectionStart(builder)); 153 assertEquals(text.length(), Selection.getSelectionEnd(builder)); 154 155 SpannableStringBuilder empty = new SpannableStringBuilder(); 156 Selection.selectAll(empty); 157 assertEquals(0, Selection.getSelectionStart(empty)); 158 assertEquals(0, Selection.getSelectionEnd(empty)); 159 } 160 161 public void testMoveLeft() { 162 CharSequence text = "hello\nworld"; 163 SpannableStringBuilder builder = new SpannableStringBuilder(text); 164 StaticLayout layout = new StaticLayout(text, new TextPaint(), 50, null, 0, 0, false); 165 assertEquals(-1, Selection.getSelectionStart(builder)); 166 assertEquals(-1, Selection.getSelectionEnd(builder)); 167 168 Selection.setSelection(builder, 6, 8); 169 assertTrue(Selection.moveLeft(builder, layout)); 170 assertEquals(6, Selection.getSelectionStart(builder)); 171 assertEquals(6, Selection.getSelectionEnd(builder)); 172 173 assertTrue(Selection.moveLeft(builder, layout)); 174 assertEquals(5, Selection.getSelectionStart(builder)); 175 assertEquals(5, Selection.getSelectionEnd(builder)); 176 177 Selection.setSelection(builder, 0, 0); 178 assertFalse(Selection.moveLeft(builder, layout)); 179 assertEquals(0, Selection.getSelectionStart(builder)); 180 assertEquals(0, Selection.getSelectionEnd(builder)); 181 182 Selection.selectAll(builder); 183 assertTrue(Selection.moveLeft(builder, layout)); 184 assertEquals(0, Selection.getSelectionStart(builder)); 185 assertEquals(0, Selection.getSelectionEnd(builder)); 186 } 187 188 public void testMoveRight() { 189 CharSequence text = "hello\nworld"; 190 SpannableStringBuilder builder = new SpannableStringBuilder(text); 191 StaticLayout layout = new StaticLayout(text, new TextPaint(), 200, null, 0, 0, false); 192 assertEquals(-1, Selection.getSelectionStart(builder)); 193 assertEquals(-1, Selection.getSelectionEnd(builder)); 194 195 Selection.setSelection(builder,1, 5); 196 assertTrue(Selection.moveRight(builder, layout)); 197 assertEquals(5, Selection.getSelectionStart(builder)); 198 assertEquals(5, Selection.getSelectionEnd(builder)); 199 200 assertTrue(Selection.moveRight(builder, layout)); 201 assertEquals(6, Selection.getSelectionStart(builder)); 202 assertEquals(6, Selection.getSelectionEnd(builder)); 203 204 assertTrue(Selection.moveRight(builder, layout)); 205 assertEquals(7, Selection.getSelectionStart(builder)); 206 assertEquals(7, Selection.getSelectionEnd(builder)); 207 208 Selection.setSelection(builder, text.length(), text.length()); 209 assertFalse(Selection.moveRight(builder, layout)); 210 assertEquals(text.length(), Selection.getSelectionStart(builder)); 211 assertEquals(text.length(), Selection.getSelectionEnd(builder)); 212 213 Selection.selectAll(builder); 214 assertTrue(Selection.moveRight(builder, layout)); 215 assertEquals(text.length(), Selection.getSelectionStart(builder)); 216 assertEquals(text.length(), Selection.getSelectionEnd(builder)); 217 } 218 219 public void testMoveUp() { 220 CharSequence text = "Google\nhello,world"; 221 SpannableStringBuilder builder = new SpannableStringBuilder(text); 222 StaticLayout layout = new StaticLayout(text, new TextPaint(), 200, null, 0, 0, false); 223 assertEquals(-1, Selection.getSelectionStart(builder)); 224 assertEquals(-1, Selection.getSelectionEnd(builder)); 225 226 Selection.moveUp(builder, layout); 227 228 Selection.setSelection(builder, 7, 10); 229 assertTrue(Selection.moveUp(builder, layout)); 230 assertEquals(7, Selection.getSelectionStart(builder)); 231 assertEquals(7, Selection.getSelectionEnd(builder)); 232 233 Selection.setSelection(builder, 0, text.length()); 234 assertFalse(Selection.moveUp(builder, layout)); 235 assertEquals(0, Selection.getSelectionStart(builder)); 236 assertEquals(0, Selection.getSelectionEnd(builder)); 237 238 Selection.setSelection(builder, 14); 239 assertTrue(Selection.moveUp(builder, layout)); 240 assertEquals(4, Selection.getSelectionStart(builder)); 241 assertEquals(4, Selection.getSelectionEnd(builder)); 242 243 assertFalse(Selection.moveUp(builder, layout)); 244 assertEquals(4, Selection.getSelectionStart(builder)); 245 assertEquals(4, Selection.getSelectionEnd(builder)); 246 247 Selection.setSelection(builder, 5); 248 assertFalse(Selection.moveUp(builder, layout)); 249 assertEquals(5, Selection.getSelectionStart(builder)); 250 assertEquals(5, Selection.getSelectionEnd(builder)); 251 } 252 253 public void testMoveDown() { 254 CharSequence text = "hello,world\nGoogle"; 255 SpannableStringBuilder builder = new SpannableStringBuilder(text); 256 StaticLayout layout = new StaticLayout(text, new TextPaint(), 200, null, 0, 0, false); 257 assertEquals(-1, Selection.getSelectionStart(builder)); 258 assertEquals(-1, Selection.getSelectionEnd(builder)); 259 260 Selection.setSelection(builder, 1, 3); 261 assertTrue(Selection.moveDown(builder, layout)); 262 assertEquals(3, Selection.getSelectionStart(builder)); 263 assertEquals(3, Selection.getSelectionEnd(builder)); 264 265 Selection.setSelection(builder, 0, text.length()); 266 assertFalse(Selection.moveDown(builder, layout)); 267 assertEquals(text.length(), Selection.getSelectionStart(builder)); 268 assertEquals(text.length(), Selection.getSelectionEnd(builder)); 269 270 Selection.setSelection(builder, 5); 271 assertTrue(Selection.moveDown(builder, layout)); 272 assertEquals(14, Selection.getSelectionStart(builder)); 273 assertEquals(14, Selection.getSelectionEnd(builder)); 274 275 assertFalse(Selection.moveDown(builder, layout)); 276 assertEquals(14, Selection.getSelectionStart(builder)); 277 assertEquals(14, Selection.getSelectionEnd(builder)); 278 279 Selection.setSelection(builder, 10); 280 Selection.moveDown(builder, layout); 281 assertEquals(18, Selection.getSelectionStart(builder)); 282 assertEquals(18, Selection.getSelectionEnd(builder)); 283 } 284 285 public void testExtendSelection() { 286 CharSequence text = "hello, world"; 287 SpannableStringBuilder builder = new SpannableStringBuilder(text); 288 assertEquals(-1, Selection.getSelectionStart(builder)); 289 assertEquals(-1, Selection.getSelectionEnd(builder)); 290 291 Selection.setSelection(builder, 3, 6); 292 Selection.extendSelection(builder, 6); 293 assertEquals(3, Selection.getSelectionStart(builder)); 294 assertEquals(6, Selection.getSelectionEnd(builder)); 295 296 Selection.setSelection(builder, 3, 6); 297 Selection.extendSelection(builder, 8); 298 assertEquals(3, Selection.getSelectionStart(builder)); 299 assertEquals(8, Selection.getSelectionEnd(builder)); 300 301 Selection.setSelection(builder, 3, 6); 302 Selection.extendSelection(builder, 1); 303 assertEquals(3, Selection.getSelectionStart(builder)); 304 assertEquals(1, Selection.getSelectionEnd(builder)); 305 306 try { 307 Selection.extendSelection(builder, -1); 308 fail("should throw IndexOutOfBoundsException"); 309 } catch (IndexOutOfBoundsException e) { 310 } 311 312 try { 313 Selection.extendSelection(builder, 100); 314 fail("should throw IndexOutOfBoundsException"); 315 } catch (IndexOutOfBoundsException e) { 316 } 317 318 try { 319 Selection.extendSelection(null, 3); 320 fail("should throw NullPointerException"); 321 } catch (NullPointerException e) { 322 } 323 324 try { 325 Selection.extendSelection(new SpannableStringBuilder(), 3); 326 fail("should throw IndexOutOfBoundsException"); 327 } catch (IndexOutOfBoundsException e) { 328 } 329 } 330 331 public void testExtendLeft() { 332 CharSequence text = "Google\nhello, world"; 333 SpannableStringBuilder builder = new SpannableStringBuilder(text); 334 StaticLayout layout = new StaticLayout(text, new TextPaint(), 200, null, 0, 0, false); 335 assertEquals(-1, Selection.getSelectionStart(builder)); 336 assertEquals(-1, Selection.getSelectionEnd(builder)); 337 338 Selection.setSelection(builder, 7, 8); 339 assertTrue(Selection.extendLeft(builder, layout)); 340 assertEquals(7, Selection.getSelectionStart(builder)); 341 assertEquals(7, Selection.getSelectionEnd(builder)); 342 343 assertTrue(Selection.extendLeft(builder, layout)); 344 assertEquals(7, Selection.getSelectionStart(builder)); 345 assertEquals(6, Selection.getSelectionEnd(builder)); 346 347 Selection.setSelection(builder, 0, 1); 348 assertTrue(Selection.extendLeft(builder, layout)); 349 assertEquals(0, Selection.getSelectionStart(builder)); 350 assertEquals(0, Selection.getSelectionEnd(builder)); 351 352 assertTrue(Selection.extendLeft(builder, layout)); 353 assertEquals(0, Selection.getSelectionStart(builder)); 354 assertEquals(0, Selection.getSelectionEnd(builder)); 355 } 356 357 public void testExtendRight() { 358 CharSequence text = "Google\nhello, world"; 359 SpannableStringBuilder builder = new SpannableStringBuilder(text); 360 StaticLayout layout = new StaticLayout(text, new TextPaint(), 200, null, 0, 0, false); 361 assertEquals(-1, Selection.getSelectionStart(builder)); 362 assertEquals(-1, Selection.getSelectionEnd(builder)); 363 364 Selection.setSelection(builder, 1, 6); 365 assertTrue(Selection.extendRight(builder, layout)); 366 assertEquals(1, Selection.getSelectionStart(builder)); 367 assertEquals(7, Selection.getSelectionEnd(builder)); 368 369 assertTrue(Selection.extendRight(builder, layout)); 370 assertEquals(1, Selection.getSelectionStart(builder)); 371 assertEquals(8, Selection.getSelectionEnd(builder)); 372 373 Selection.setSelection(builder, 12, text.length()); 374 assertTrue(Selection.extendRight(builder, layout)); 375 assertEquals(12, Selection.getSelectionStart(builder)); 376 assertEquals(text.length(), Selection.getSelectionEnd(builder)); 377 } 378 379 public void testExtendUp() { 380 CharSequence text = "Google\nhello, world"; 381 SpannableStringBuilder builder = new SpannableStringBuilder(text); 382 StaticLayout layout = new StaticLayout(text, new TextPaint(), 200, null, 0, 0, false); 383 assertEquals(-1, Selection.getSelectionStart(builder)); 384 assertEquals(-1, Selection.getSelectionEnd(builder)); 385 386 assertTrue(Selection.extendUp(builder, layout)); 387 assertEquals(-1, Selection.getSelectionStart(builder)); 388 assertEquals(0, Selection.getSelectionEnd(builder)); 389 390 Selection.setSelection(builder, 8, 15); 391 assertTrue(Selection.extendUp(builder, layout)); 392 assertEquals(8, Selection.getSelectionStart(builder)); 393 assertEquals(4, Selection.getSelectionEnd(builder)); 394 395 assertTrue(Selection.extendUp(builder, layout)); 396 assertEquals(8, Selection.getSelectionStart(builder)); 397 assertEquals(0, Selection.getSelectionEnd(builder)); 398 399 assertTrue(Selection.extendUp(builder, layout)); 400 assertEquals(8, Selection.getSelectionStart(builder)); 401 assertEquals(0, Selection.getSelectionEnd(builder)); 402 403 builder = new SpannableStringBuilder(); 404 assertTrue(Selection.extendUp(builder, layout)); 405 assertEquals(-1, Selection.getSelectionStart(builder)); 406 assertEquals(0, Selection.getSelectionEnd(builder)); 407 } 408 409 public void testExtendDown() { 410 CharSequence text = "Google\nhello, world"; 411 SpannableStringBuilder builder = new SpannableStringBuilder(text); 412 StaticLayout layout = new StaticLayout(text, new TextPaint(), 200, null, 0, 0, false); 413 assertEquals(-1, Selection.getSelectionStart(builder)); 414 assertEquals(-1, Selection.getSelectionEnd(builder)); 415 416 Selection.setSelection(builder, 1, 3); 417 assertTrue(Selection.extendDown(builder, layout)); 418 assertEquals(1, Selection.getSelectionStart(builder)); 419 assertEquals(14, Selection.getSelectionEnd(builder)); 420 421 assertTrue(Selection.extendDown(builder, layout)); 422 assertEquals(1, Selection.getSelectionStart(builder)); 423 assertEquals(text.length(), Selection.getSelectionEnd(builder)); 424 425 assertTrue(Selection.extendDown(builder, layout)); 426 assertEquals(1, Selection.getSelectionStart(builder)); 427 assertEquals(text.length(), Selection.getSelectionEnd(builder)); 428 } 429 430 public void testExtendToLeftEdge() { 431 CharSequence text = "hello\nworld"; 432 SpannableStringBuilder builder = new SpannableStringBuilder(text); 433 StaticLayout layout = new StaticLayout(text, new TextPaint(), 50, null, 0, 0, false); 434 assertEquals(-1, Selection.getSelectionStart(builder)); 435 assertEquals(-1, Selection.getSelectionEnd(builder)); 436 437 assertTrue(Selection.extendToLeftEdge(builder, layout)); 438 assertEquals(-1, Selection.getSelectionStart(builder)); 439 assertEquals(0, Selection.getSelectionEnd(builder)); 440 441 Selection.setSelection(builder, 4, 9); 442 assertTrue(Selection.extendToLeftEdge(builder, layout)); 443 assertEquals(4, Selection.getSelectionStart(builder)); 444 assertEquals(6, Selection.getSelectionEnd(builder)); 445 446 Selection.setSelection(builder, 1, 5); 447 assertTrue(Selection.extendToLeftEdge(builder, layout)); 448 assertEquals(1, Selection.getSelectionStart(builder)); 449 assertEquals(0, Selection.getSelectionEnd(builder)); 450 451 Selection.setSelection(builder, 2, 2); 452 assertTrue(Selection.extendToLeftEdge(builder, layout)); 453 assertEquals(2, Selection.getSelectionStart(builder)); 454 assertEquals(0, Selection.getSelectionEnd(builder)); 455 456 builder = new SpannableStringBuilder(); 457 assertEquals(-1, Selection.getSelectionStart(builder)); 458 assertEquals(-1, Selection.getSelectionEnd(builder)); 459 460 assertTrue(Selection.extendToLeftEdge(builder, layout)); 461 assertEquals(-1, Selection.getSelectionStart(builder)); 462 assertEquals(0, Selection.getSelectionEnd(builder)); 463 } 464 465 public void testExtendToRightEdge() { 466 CharSequence text = "hello\nworld"; 467 SpannableStringBuilder builder = new SpannableStringBuilder(text); 468 StaticLayout layout = new StaticLayout(text, new TextPaint(), 50, null, 0, 0, false); 469 assertEquals(-1, Selection.getSelectionStart(builder)); 470 assertEquals(-1, Selection.getSelectionEnd(builder)); 471 472 assertTrue(Selection.extendToRightEdge(builder, layout)); 473 assertEquals(-1, Selection.getSelectionStart(builder)); 474 assertEquals(5, Selection.getSelectionEnd(builder)); 475 476 Selection.setSelection(builder, 1, 3); 477 assertTrue(Selection.extendToRightEdge(builder, layout)); 478 assertEquals(1, Selection.getSelectionStart(builder)); 479 assertEquals(5, Selection.getSelectionEnd(builder)); 480 481 Selection.setSelection(builder, 1, 7); 482 assertTrue(Selection.extendToRightEdge(builder, layout)); 483 assertEquals(1, Selection.getSelectionStart(builder)); 484 assertEquals(text.length(), Selection.getSelectionEnd(builder)); 485 486 assertTrue(Selection.extendToRightEdge(builder, layout)); 487 assertEquals(1, Selection.getSelectionStart(builder)); 488 assertEquals(text.length(), Selection.getSelectionEnd(builder)); 489 } 490 491 public void testMoveToLeftEdge() { 492 CharSequence text = "hello\nworld"; 493 SpannableStringBuilder builder = new SpannableStringBuilder(text); 494 StaticLayout layout = new StaticLayout(text, new TextPaint(), 200, null, 0, 0, false); 495 assertEquals(-1, Selection.getSelectionStart(builder)); 496 assertEquals(-1, Selection.getSelectionEnd(builder)); 497 498 assertTrue(Selection.moveToLeftEdge(builder, layout)); 499 assertEquals(0, Selection.getSelectionStart(builder)); 500 assertEquals(0, Selection.getSelectionEnd(builder)); 501 502 Selection.setSelection(builder, 1, 10); 503 assertTrue(Selection.moveToLeftEdge(builder, layout)); 504 assertEquals(6, Selection.getSelectionStart(builder)); 505 assertEquals(6, Selection.getSelectionEnd(builder)); 506 507 Selection.setSelection(builder, 1, 3); 508 assertTrue(Selection.moveToLeftEdge(builder, layout)); 509 assertEquals(0, Selection.getSelectionStart(builder)); 510 assertEquals(0, Selection.getSelectionEnd(builder)); 511 512 assertTrue(Selection.moveToLeftEdge(builder, layout)); 513 assertEquals(0, Selection.getSelectionStart(builder)); 514 assertEquals(0, Selection.getSelectionEnd(builder)); 515 516 builder = new SpannableStringBuilder(); 517 assertTrue(Selection.moveToLeftEdge(builder, layout)); 518 assertEquals(0, Selection.getSelectionStart(builder)); 519 assertEquals(0, Selection.getSelectionEnd(builder)); 520 } 521 522 public void testMoveToRightEdge() { 523 CharSequence text = "hello\nworld"; 524 SpannableStringBuilder builder = new SpannableStringBuilder(text); 525 StaticLayout layout = new StaticLayout(text, new TextPaint(), 200, null, 0, 0,false); 526 assertEquals(-1, Selection.getSelectionStart(builder)); 527 assertEquals(-1, Selection.getSelectionEnd(builder)); 528 529 assertTrue(Selection.moveToRightEdge(builder, layout)); 530 assertEquals(5, Selection.getSelectionStart(builder)); 531 assertEquals(5, Selection.getSelectionEnd(builder)); 532 533 Selection.setSelection(builder, 1, 2); 534 assertTrue(Selection.moveToRightEdge(builder, layout)); 535 assertEquals(5, Selection.getSelectionStart(builder)); 536 assertEquals(5, Selection.getSelectionEnd(builder)); 537 538 Selection.setSelection(builder, 1, 7); 539 assertTrue(Selection.moveToRightEdge(builder, layout)); 540 assertEquals(text.length(), Selection.getSelectionStart(builder)); 541 assertEquals(text.length(), Selection.getSelectionEnd(builder)); 542 543 assertTrue(Selection.moveToRightEdge(builder, layout)); 544 assertEquals(text.length(), Selection.getSelectionStart(builder)); 545 assertEquals(text.length(), Selection.getSelectionEnd(builder)); 546 } 547 } 548