Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2056)

Unified Diff: content/public/android/javatests/src/org/chromium/content/browser/input/AdapterInputConnectionTest.java

Issue 1165793007: Make sure multi chracter codepoints are deleted correctly (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: do not check updateSelection for some of the tests Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/public/android/javatests/src/org/chromium/content/browser/input/AdapterInputConnectionTest.java
diff --git a/content/public/android/javatests/src/org/chromium/content/browser/input/AdapterInputConnectionTest.java b/content/public/android/javatests/src/org/chromium/content/browser/input/AdapterInputConnectionTest.java
index deb151ef26215d7e6d26242190e38b6cbe9194c0..9b0f0723a9330dc6c485a5a0eef4f0198c2d45fa 100644
--- a/content/public/android/javatests/src/org/chromium/content/browser/input/AdapterInputConnectionTest.java
+++ b/content/public/android/javatests/src/org/chromium/content/browser/input/AdapterInputConnectionTest.java
@@ -8,6 +8,7 @@ import android.content.Context;
import android.os.IBinder;
import android.os.ResultReceiver;
import android.test.suitebuilder.annotation.MediumTest;
+import android.test.suitebuilder.annotation.SmallTest;
import android.text.Editable;
import android.text.Selection;
import android.view.KeyEvent;
@@ -45,6 +46,23 @@ public class AdapterInputConnectionTest extends ContentShellTestBase {
getContentViewCore().getContainerView(), mImeAdapter, mEditable, info);
}
+ @SmallTest
+ @Feature({"TextInput", "Main"})
+ public void testAdjustLengthBeforeAndAfterSelection() throws Throwable {
+ final String ga = "\uAC00";
+ final String smiley = "\uD83D\uDE0A"; // multi character codepoint
+
+ // No need to adjust length.
+ assertFalse(AdapterInputConnection.isIndexBetweenUtf16SurrogatePair("a", 0));
+ assertFalse(AdapterInputConnection.isIndexBetweenUtf16SurrogatePair(ga, 0));
+ assertFalse(AdapterInputConnection.isIndexBetweenUtf16SurrogatePair("aa", 1));
+ assertFalse(AdapterInputConnection.isIndexBetweenUtf16SurrogatePair("a" + smiley + "a", 1));
+
+ // Needs to adjust length.
+ assertTrue(AdapterInputConnection.isIndexBetweenUtf16SurrogatePair(smiley, 1));
+ assertTrue(AdapterInputConnection.isIndexBetweenUtf16SurrogatePair(smiley + "a", 1));
+ }
+
@MediumTest
@Feature({"TextInput", "Main"})
@RerunWithUpdatedContainerView

Powered by Google App Engine
This is Rietveld 408576698