diff --git a/core/tests/coretests/src/android/text/method/BackspaceTest.java b/core/tests/coretests/src/android/text/method/BackspaceTest.java index 3be9cfc2d6e65..e1b305f56b3ba 100644 --- a/core/tests/coretests/src/android/text/method/BackspaceTest.java +++ b/core/tests/coretests/src/android/text/method/BackspaceTest.java @@ -69,6 +69,10 @@ public class BackspaceTest extends KeyListenerTestCase { public void testCombiningEnclosingKeycaps() { EditorState state = new EditorState(); + state.setByString("'1' U+E0101 U+20E3 |"); + backspace(state, 0); + state.assertEquals("|"); + // multiple COMBINING ENCLOSING KEYCAP state.setByString("'1' U+20E3 U+20E3 |"); backspace(state, 0); @@ -157,6 +161,19 @@ public class BackspaceTest extends KeyListenerTestCase { public void testEmojiZWJSequence() { EditorState state = new EditorState(); + // U+200D is ZERO WIDTH JOINER. + state.setByString("U+1F441 U+200D U+1F5E8 |"); + backspace(state, 0); + state.assertEquals("|"); + + state.setByString("U+1F441 U+200D U+1F5E8 U+FE0E |"); + backspace(state, 0); + state.assertEquals("|"); + + state.setByString("U+1F468 U+200D U+2764 U+FE0F U+200D U+1F48B U+200D U+1F468 |"); + backspace(state, 0); + state.assertEquals("|"); + // End with ZERO WIDTH JOINER state.setByString("U+1F441 U+200D |"); backspace(state, 0); @@ -224,6 +241,11 @@ public class BackspaceTest extends KeyListenerTestCase { public void testEmojiModifier() { EditorState state = new EditorState(); + // U+1F3FB is EMOJI MODIFIER FITZPATRICK TYPE-1-2. + state.setByString("U+1F466 U+1F3FB |"); + backspace(state, 0); + state.assertEquals("|"); + // Isolated emoji modifier state.setByString("U+1F3FB |"); backspace(state, 0); diff --git a/core/tests/coretests/src/android/text/method/ForwardDeleteTest.java b/core/tests/coretests/src/android/text/method/ForwardDeleteTest.java index f7dab2d7bdbf9..0fed77cc481f2 100644 --- a/core/tests/coretests/src/android/text/method/ForwardDeleteTest.java +++ b/core/tests/coretests/src/android/text/method/ForwardDeleteTest.java @@ -137,6 +137,15 @@ public class ForwardDeleteTest extends KeyListenerTestCase { public void testEmojiZeroWidthJoinerSequence() { EditorState state = new EditorState(); + // U+200D is ZERO WIDTH JOINER. + state.setByString("| U+1F441 U+200D U+1F5E8"); + forwardDelete(state, 0); + state.assertEquals("|"); + + state.setByString("| U+1F468 U+200D U+2764 U+FE0F U+200D U+1F48B U+200D U+1F468"); + forwardDelete(state, 0); + state.assertEquals("|"); + // End with ZERO WIDTH JOINER state.setByString("| U+1F441 U+200D"); forwardDelete(state, 0); @@ -188,6 +197,11 @@ public class ForwardDeleteTest extends KeyListenerTestCase { public void testEmojiModifier() { EditorState state = new EditorState(); + // U+1F3FB is EMOJI MODIFIER FITZPATRICK TYPE-1-2. + state.setByString("| U+1F466 U+1F3FB"); + forwardDelete(state, 0); + state.assertEquals("|"); + // Isolated emoji modifier state.setByString("| U+1F3FB"); forwardDelete(state, 0);