From f254e3fec7744dc1eb2cc09ac157986c3b2b5408 Mon Sep 17 00:00:00 2001 From: Jean Chalard Date: Thu, 5 Jul 2012 12:36:06 +0900 Subject: Fix a bug where the caps mode would not be changed Bug: 6766059 Change-Id: I378f9d35c4904c4f373260bda5863235d833eb31 --- .../latin/RichInputConnectionTests.java | 41 ++++++++++++++-------- 1 file changed, 27 insertions(+), 14 deletions(-) (limited to 'tests/src') diff --git a/tests/src/com/android/inputmethod/latin/RichInputConnectionTests.java b/tests/src/com/android/inputmethod/latin/RichInputConnectionTests.java index 9ce581df8..7bd7b0e5a 100644 --- a/tests/src/com/android/inputmethod/latin/RichInputConnectionTests.java +++ b/tests/src/com/android/inputmethod/latin/RichInputConnectionTests.java @@ -16,6 +16,7 @@ package com.android.inputmethod.latin; +import android.inputmethodservice.InputMethodService; import android.test.AndroidTestCase; import android.view.inputmethod.ExtractedText; import android.view.inputmethod.ExtractedTextRequest; @@ -83,6 +84,17 @@ public class RichInputConnectionTests extends AndroidTestCase { } } + private class MockInputMethodService extends InputMethodService { + InputConnection mInputConnection; + public void setInputConnection(final InputConnection inputConnection) { + mInputConnection = inputConnection; + } + @Override + public InputConnection getCurrentInputConnection() { + return mInputConnection; + } + } + /************************** Tests ************************/ /** @@ -122,14 +134,14 @@ public class RichInputConnectionTests extends AndroidTestCase { */ public void testGetWordRangeAtCursor() { ExtractedText et = new ExtractedText(); - final RichInputConnection ic = new RichInputConnection(); - InputConnection mockConnection; - mockConnection = new MockConnection("word wo", "rd", et); + final MockInputMethodService mockInputMethodService = new MockInputMethodService(); + final RichInputConnection ic = new RichInputConnection(mockInputMethodService); + mockInputMethodService.setInputConnection(new MockConnection("word wo", "rd", et)); et.startOffset = 0; et.selectionStart = 7; Range r; - ic.beginBatchEdit(mockConnection); + ic.beginBatchEdit(); // basic case r = ic.getWordRangeAtCursor(" ", 0); assertEquals("word", r.mWord); @@ -140,37 +152,38 @@ public class RichInputConnectionTests extends AndroidTestCase { ic.endBatchEdit(); // tab character instead of space - mockConnection = new MockConnection("one\tword\two", "rd", et); - ic.beginBatchEdit(mockConnection); + mockInputMethodService.setInputConnection(new MockConnection("one\tword\two", "rd", et)); + ic.beginBatchEdit(); r = ic.getWordRangeAtCursor("\t", 1); ic.endBatchEdit(); assertEquals("word\tword", r.mWord); // only one word doesn't go too far - mockConnection = new MockConnection("one\tword\two", "rd", et); - ic.beginBatchEdit(mockConnection); + mockInputMethodService.setInputConnection(new MockConnection("one\tword\two", "rd", et)); + ic.beginBatchEdit(); r = ic.getWordRangeAtCursor("\t", 1); ic.endBatchEdit(); assertEquals("word\tword", r.mWord); // tab or space - mockConnection = new MockConnection("one word\two", "rd", et); - ic.beginBatchEdit(mockConnection); + mockInputMethodService.setInputConnection(new MockConnection("one word\two", "rd", et)); + ic.beginBatchEdit(); r = ic.getWordRangeAtCursor(" \t", 1); ic.endBatchEdit(); assertEquals("word\tword", r.mWord); // tab or space multiword - mockConnection = new MockConnection("one word\two", "rd", et); - ic.beginBatchEdit(mockConnection); + mockInputMethodService.setInputConnection(new MockConnection("one word\two", "rd", et)); + ic.beginBatchEdit(); r = ic.getWordRangeAtCursor(" \t", 2); ic.endBatchEdit(); assertEquals("one word\tword", r.mWord); // splitting on supplementary character final String supplementaryChar = "\uD840\uDC8A"; - mockConnection = new MockConnection("one word" + supplementaryChar + "wo", "rd", et); - ic.beginBatchEdit(mockConnection); + mockInputMethodService.setInputConnection( + new MockConnection("one word" + supplementaryChar + "wo", "rd", et)); + ic.beginBatchEdit(); r = ic.getWordRangeAtCursor(supplementaryChar, 0); ic.endBatchEdit(); assertEquals("word", r.mWord); -- cgit v1.2.3-83-g751a