diff options
Diffstat (limited to 'tests/src')
-rw-r--r-- | tests/src/com/android/inputmethod/latin/InputLogicTests.java | 28 | ||||
-rw-r--r-- | tests/src/com/android/inputmethod/latin/InputTestsBase.java | 3 | ||||
-rw-r--r-- | tests/src/com/android/inputmethod/latin/SuggestedWordsTests.java | 7 | ||||
-rw-r--r-- | tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderEncoderTests.java | 28 | ||||
-rw-r--r-- | tests/src/com/android/inputmethod/latin/makedict/BinaryDictIOUtilsTests.java | 44 | ||||
-rw-r--r-- | tests/src/com/android/inputmethod/latin/makedict/Ver3DictDecoderTests.java (renamed from tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderTests.java) | 25 | ||||
-rw-r--r-- | tests/src/com/android/inputmethod/latin/utils/UserHistoryDictIOUtilsTests.java | 6 |
7 files changed, 85 insertions, 56 deletions
diff --git a/tests/src/com/android/inputmethod/latin/InputLogicTests.java b/tests/src/com/android/inputmethod/latin/InputLogicTests.java index 6cc4befae..fe92be618 100644 --- a/tests/src/com/android/inputmethod/latin/InputLogicTests.java +++ b/tests/src/com/android/inputmethod/latin/InputLogicTests.java @@ -305,5 +305,33 @@ public class InputLogicTests extends InputTestsBase { assertEquals("resume suggestion on backspace", 8, BaseInputConnection.getComposingSpanEnd(mEditText.getText())); } + + private void helperTestComposing(final String wordToType, final boolean shouldBeComposing) { + mEditText.setText(""); + type(wordToType); + assertEquals("start composing inside text", shouldBeComposing ? 0 : -1, + BaseInputConnection.getComposingSpanStart(mEditText.getText())); + assertEquals("start composing inside text", shouldBeComposing ? wordToType.length() : -1, + BaseInputConnection.getComposingSpanEnd(mEditText.getText())); + } + + public void testStartComposing() { + // Should start composing on a letter + helperTestComposing("a", true); + type(" "); // To reset the composing state + // Should not start composing on quote + helperTestComposing("'", false); + type(" "); + helperTestComposing("'-", false); + type(" "); + // Should not start composing on dash + helperTestComposing("-", false); + type(" "); + helperTestComposing("-'", false); + type(" "); + helperTestComposing("a-", true); + type(" "); + helperTestComposing("a'", true); + } // TODO: Add some tests for non-BMP characters } diff --git a/tests/src/com/android/inputmethod/latin/InputTestsBase.java b/tests/src/com/android/inputmethod/latin/InputTestsBase.java index 480570e62..0a1c4e963 100644 --- a/tests/src/com/android/inputmethod/latin/InputTestsBase.java +++ b/tests/src/com/android/inputmethod/latin/InputTestsBase.java @@ -258,7 +258,8 @@ public class InputTestsBase extends ServiceTestCase<LatinIMEForTests> { protected void pickSuggestionManually(final int index, final String suggestion) { mLatinIME.pickSuggestionManually(index, new SuggestedWordInfo(suggestion, 1, - SuggestedWordInfo.KIND_CORRECTION, "main")); + SuggestedWordInfo.KIND_CORRECTION, null /* sourceDict */, + SuggestedWordInfo.NOT_AN_INDEX /* indexOfTouchPointOfSecondWord */)); } // Helper to avoid writing the try{}catch block each time diff --git a/tests/src/com/android/inputmethod/latin/SuggestedWordsTests.java b/tests/src/com/android/inputmethod/latin/SuggestedWordsTests.java index 8d0fe014c..a5f3685da 100644 --- a/tests/src/com/android/inputmethod/latin/SuggestedWordsTests.java +++ b/tests/src/com/android/inputmethod/latin/SuggestedWordsTests.java @@ -34,9 +34,12 @@ public class SuggestedWordsTests extends AndroidTestCase { final int NUMBER_OF_ADDED_SUGGESTIONS = 5; final ArrayList<SuggestedWordInfo> list = CollectionUtils.newArrayList(); list.add(new SuggestedWordInfo(TYPED_WORD, TYPED_WORD_FREQ, - SuggestedWordInfo.KIND_TYPED, "")); + SuggestedWordInfo.KIND_TYPED, null /* sourceDict */, + SuggestedWordInfo.NOT_AN_INDEX /* indexOfTouchPointOfSecondWord */)); for (int i = 0; i < NUMBER_OF_ADDED_SUGGESTIONS; ++i) { - list.add(new SuggestedWordInfo("" + i, 1, SuggestedWordInfo.KIND_CORRECTION, "")); + list.add(new SuggestedWordInfo("" + i, 1, SuggestedWordInfo.KIND_CORRECTION, + null /* sourceDict */, + SuggestedWordInfo.NOT_AN_INDEX /* indexOfTouchPointOfSecondWord */)); } final SuggestedWords words = new SuggestedWords( diff --git a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderEncoderTests.java b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderEncoderTests.java index 028e089f8..d50d1ac96 100644 --- a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderEncoderTests.java +++ b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderEncoderTests.java @@ -44,7 +44,7 @@ import java.util.Random; import java.util.Set; /** - * Unit tests for BinaryDictDecoderUtils and BinaryDictEncoder. + * Unit tests for BinaryDictDecoderUtils and BinaryDictEncoderUtils. */ @LargeTest public class BinaryDictDecoderEncoderTests extends AndroidTestCase { @@ -120,14 +120,14 @@ public class BinaryDictDecoderEncoderTests extends AndroidTestCase { /** * Makes new DictBuffer according to BUFFER_TYPE. */ - private void getDictBuffer(final BinaryDictDecoder dictDecoder, final int bufferType) + private void getDictBuffer(final Ver3DictDecoder dictDecoder, final int bufferType) throws FileNotFoundException, IOException { if (bufferType == USE_BYTE_BUFFER) { dictDecoder.openDictBuffer( - new BinaryDictDecoder.DictionaryBufferFromReadOnlyByteBufferFactory()); + new Ver3DictDecoder.DictionaryBufferFromReadOnlyByteBufferFactory()); } else if (bufferType == USE_BYTE_ARRAY) { dictDecoder.openDictBuffer( - new BinaryDictDecoder.DictionaryBufferFromByteArrayFactory()); + new Ver3DictDecoder.DictionaryBufferFromByteArrayFactory()); } } @@ -210,7 +210,7 @@ public class BinaryDictDecoderEncoderTests extends AndroidTestCase { // If you need to dump the dict to a textual file, uncomment the line below and the // function above // dumpToCombinedFileForDebug(file, "/tmp/foo"); - BinaryDictEncoder.writeDictionaryBinary(out, dict, formatOptions); + BinaryDictEncoderUtils.writeDictionaryBinary(out, dict, formatOptions); diff = System.currentTimeMillis() - now; out.flush(); @@ -271,7 +271,7 @@ public class BinaryDictDecoderEncoderTests extends AndroidTestCase { final SparseArray<List<Integer>> bigrams, final Map<String, List<String>> shortcutMap, final int bufferType) { long now, diff = -1; - final BinaryDictDecoder dictDecoder = new BinaryDictDecoder(file); + final Ver3DictDecoder dictDecoder = new Ver3DictDecoder(file); FusionDictionary dict = null; try { @@ -409,7 +409,7 @@ public class BinaryDictDecoderEncoderTests extends AndroidTestCase { final Map<Integer, Integer> resultFreqs = CollectionUtils.newTreeMap(); long now = -1, diff = -1; - final BinaryDictDecoder dictDecoder = new BinaryDictDecoder(file); + final Ver3DictDecoder dictDecoder = new Ver3DictDecoder(file); try { getDictBuffer(dictDecoder, bufferType); assertNotNull("Can't get buffer.", dictDecoder.getDictBuffer()); @@ -499,7 +499,7 @@ public class BinaryDictDecoderEncoderTests extends AndroidTestCase { } // Tests for getTerminalPosition - private String getWordFromBinary(final BinaryDictDecoder dictDecoder, final int address) { + private String getWordFromBinary(final Ver3DictDecoder dictDecoder, final int address) { final DictBuffer dictBuffer = dictDecoder.getDictBuffer(); if (dictBuffer.position() != 0) dictBuffer.position(0); @@ -512,11 +512,11 @@ public class BinaryDictDecoderEncoderTests extends AndroidTestCase { return null; } if (fileHeader == null) return null; - return BinaryDictDecoderUtils.getWordAtAddress(dictBuffer, fileHeader.mHeaderSize, + return BinaryDictDecoderUtils.getWordAtAddress(dictDecoder, fileHeader.mHeaderSize, address - fileHeader.mHeaderSize, fileHeader.mFormatOptions).mWord; } - private long runGetTerminalPosition(final BinaryDictDecoder dictDecoder, final String word, + private long runGetTerminalPosition(final Ver3DictDecoder dictDecoder, final String word, int index, boolean contained) { final int expectedFrequency = (UNIGRAM_FREQ + index) % 255; long diff = -1; @@ -552,10 +552,10 @@ public class BinaryDictDecoderEncoderTests extends AndroidTestCase { addUnigrams(sWords.size(), dict, sWords, null /* shortcutMap */); timeWritingDictToFile(file, dict, VERSION3_WITH_DYNAMIC_UPDATE); - final BinaryDictDecoder dictDecoder = new BinaryDictDecoder(file); + final Ver3DictDecoder dictDecoder = new Ver3DictDecoder(file); try { dictDecoder.openDictBuffer( - new BinaryDictDecoder.DictionaryBufferFromByteArrayFactory()); + new Ver3DictDecoder.DictionaryBufferFromByteArrayFactory()); } catch (IOException e) { // ignore Log.e(TAG, "IOException while opening the buffer", e); @@ -613,10 +613,10 @@ public class BinaryDictDecoderEncoderTests extends AndroidTestCase { addUnigrams(sWords.size(), dict, sWords, null /* shortcutMap */); timeWritingDictToFile(file, dict, VERSION3_WITH_DYNAMIC_UPDATE); - final BinaryDictDecoder dictDecoder = new BinaryDictDecoder(file); + final Ver3DictDecoder dictDecoder = new Ver3DictDecoder(file); try { dictDecoder.openDictBuffer( - new BinaryDictDecoder.DictionaryBufferFromByteArrayFactory()); + new Ver3DictDecoder.DictionaryBufferFromByteArrayFactory()); } catch (IOException e) { // ignore Log.e(TAG, "IOException while opening the buffer", e); diff --git a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictIOUtilsTests.java b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictIOUtilsTests.java index b6e439561..878417084 100644 --- a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictIOUtilsTests.java +++ b/tests/src/com/android/inputmethod/latin/makedict/BinaryDictIOUtilsTests.java @@ -22,7 +22,7 @@ import android.test.suitebuilder.annotation.LargeTest; import android.util.Log; import com.android.inputmethod.latin.makedict.BinaryDictDecoderUtils.DictBuffer; -import com.android.inputmethod.latin.makedict.BinaryDictDecoder. +import com.android.inputmethod.latin.makedict.DictDecoder. DictionaryBufferFromWritableByteBufferFactory; import com.android.inputmethod.latin.makedict.FormatSpec.FileHeader; import com.android.inputmethod.latin.makedict.FusionDictionary.PtNodeArray; @@ -112,14 +112,15 @@ public class BinaryDictIOUtilsTests extends AndroidTestCase { Log.d(TAG, " end address = " + info.mEndAddress); } - private static void printNode(final DictBuffer dictBuffer, + private static void printNode(final Ver3DictDecoder dictDecoder, final FormatSpec.FormatOptions formatOptions) { + final DictBuffer dictBuffer = dictDecoder.getDictBuffer(); Log.d(TAG, "Node at " + dictBuffer.position()); final int count = BinaryDictDecoderUtils.readCharGroupCount(dictBuffer); Log.d(TAG, " charGroupCount = " + count); for (int i = 0; i < count; ++i) { - final CharGroupInfo currentInfo = BinaryDictDecoderUtils.readCharGroup(dictBuffer, - dictBuffer.position(), formatOptions); + final CharGroupInfo currentInfo = dictDecoder.readPtNode(dictBuffer.position(), + formatOptions); printCharGroup(currentInfo); } if (formatOptions.mSupportsDynamicUpdate) { @@ -128,23 +129,23 @@ public class BinaryDictIOUtilsTests extends AndroidTestCase { } } - private static void printBinaryFile(final BinaryDictDecoder dictDecoder) + private static void printBinaryFile(final Ver3DictDecoder dictDecoder) throws IOException, UnsupportedFormatException { final FileHeader fileHeader = dictDecoder.readHeader(); - final DictBuffer buffer = dictDecoder.getDictBuffer(); - while (buffer.position() < buffer.limit()) { - printNode(buffer, fileHeader.mFormatOptions); + final DictBuffer dictBuffer = dictDecoder.getDictBuffer(); + while (dictBuffer.position() < dictBuffer.limit()) { + printNode(dictDecoder, fileHeader.mFormatOptions); } } private int getWordPosition(final File file, final String word) { int position = FormatSpec.NOT_VALID_WORD; - final BinaryDictDecoder dictDecoder = new BinaryDictDecoder(file); + final Ver3DictDecoder dictDecoder = new Ver3DictDecoder(file); FileInputStream inStream = null; try { inStream = new FileInputStream(file); dictDecoder.openDictBuffer( - new BinaryDictDecoder.DictionaryBufferFromReadOnlyByteBufferFactory()); + new Ver3DictDecoder.DictionaryBufferFromReadOnlyByteBufferFactory()); position = BinaryDictIOUtils.getTerminalPosition(dictDecoder, word); } catch (IOException e) { } catch (UnsupportedFormatException e) { @@ -161,11 +162,11 @@ public class BinaryDictIOUtilsTests extends AndroidTestCase { } private CharGroupInfo findWordFromFile(final File file, final String word) { - final BinaryDictDecoder dictDecoder = new BinaryDictDecoder(file); + final Ver3DictDecoder dictDecoder = new Ver3DictDecoder(file); CharGroupInfo info = null; try { dictDecoder.openDictBuffer( - new BinaryDictDecoder.DictionaryBufferFromReadOnlyByteBufferFactory()); + new Ver3DictDecoder.DictionaryBufferFromReadOnlyByteBufferFactory()); info = BinaryDictIOUtils.findWordByBinaryDictReader(dictDecoder, word); } catch (IOException e) { } catch (UnsupportedFormatException e) { @@ -177,7 +178,7 @@ public class BinaryDictIOUtilsTests extends AndroidTestCase { private long insertAndCheckWord(final File file, final String word, final int frequency, final boolean exist, final ArrayList<WeightedString> bigrams, final ArrayList<WeightedString> shortcuts) { - final BinaryDictDecoder dictDecoder = new BinaryDictDecoder(file); + final Ver3DictDecoder dictDecoder = new Ver3DictDecoder(file); BufferedOutputStream outStream = null; long amountOfTime = -1; try { @@ -211,7 +212,7 @@ public class BinaryDictIOUtilsTests extends AndroidTestCase { } private void deleteWord(final File file, final String word) { - final BinaryDictDecoder dictDecoder = new BinaryDictDecoder(file); + final Ver3DictDecoder dictDecoder = new Ver3DictDecoder(file); try { dictDecoder.openDictBuffer(new DictionaryBufferFromWritableByteBufferFactory()); DynamicBinaryDictIOUtils.deleteWord(dictDecoder, word); @@ -221,15 +222,14 @@ public class BinaryDictIOUtilsTests extends AndroidTestCase { } private void checkReverseLookup(final File file, final String word, final int position) { - final BinaryDictDecoder dictDecoder = new BinaryDictDecoder(file); + final Ver3DictDecoder dictDecoder = new Ver3DictDecoder(file); try { final DictBuffer dictBuffer = dictDecoder.openAndGetDictBuffer( - new BinaryDictDecoder.DictionaryBufferFromReadOnlyByteBufferFactory()); + new Ver3DictDecoder.DictionaryBufferFromReadOnlyByteBufferFactory()); final FileHeader fileHeader = dictDecoder.readHeader(); assertEquals(word, - BinaryDictDecoderUtils.getWordAtAddress(dictDecoder.getDictBuffer(), - fileHeader.mHeaderSize, position - fileHeader.mHeaderSize, - fileHeader.mFormatOptions).mWord); + BinaryDictDecoderUtils.getWordAtAddress(dictDecoder, fileHeader.mHeaderSize, + position - fileHeader.mHeaderSize, fileHeader.mFormatOptions).mWord); } catch (IOException e) { Log.e(TAG, "Raised an IOException while looking up a word", e); } catch (UnsupportedFormatException e) { @@ -253,7 +253,7 @@ public class BinaryDictIOUtilsTests extends AndroidTestCase { try { final FileOutputStream out = new FileOutputStream(file); - BinaryDictEncoder.writeDictionaryBinary(out, dict, FORMAT_OPTIONS); + BinaryDictEncoderUtils.writeDictionaryBinary(out, dict, FORMAT_OPTIONS); out.close(); } catch (IOException e) { fail("IOException while writing an initial dictionary : " + e); @@ -305,7 +305,7 @@ public class BinaryDictIOUtilsTests extends AndroidTestCase { try { final FileOutputStream out = new FileOutputStream(file); - BinaryDictEncoder.writeDictionaryBinary(out, dict, FORMAT_OPTIONS); + BinaryDictEncoderUtils.writeDictionaryBinary(out, dict, FORMAT_OPTIONS); out.close(); } catch (IOException e) { fail("IOException while writing an initial dictionary : " + e); @@ -343,7 +343,7 @@ public class BinaryDictIOUtilsTests extends AndroidTestCase { try { final FileOutputStream out = new FileOutputStream(file); - BinaryDictEncoder.writeDictionaryBinary(out, dict, FORMAT_OPTIONS); + BinaryDictEncoderUtils.writeDictionaryBinary(out, dict, FORMAT_OPTIONS); out.close(); } catch (IOException e) { assertTrue(false); diff --git a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderTests.java b/tests/src/com/android/inputmethod/latin/makedict/Ver3DictDecoderTests.java index 03742c4c1..20e8b4fda 100644 --- a/tests/src/com/android/inputmethod/latin/makedict/BinaryDictDecoderTests.java +++ b/tests/src/com/android/inputmethod/latin/makedict/Ver3DictDecoderTests.java @@ -17,12 +17,11 @@ package com.android.inputmethod.latin.makedict; import com.android.inputmethod.latin.makedict.BinaryDictDecoderUtils.DictBuffer; -import com.android.inputmethod.latin.makedict.BinaryDictDecoder.DictionaryBufferFactory; -import com.android.inputmethod.latin.makedict.BinaryDictDecoder. - DictionaryBufferFromByteArrayFactory; -import com.android.inputmethod.latin.makedict.BinaryDictDecoder. +import com.android.inputmethod.latin.makedict.DictDecoder.DictionaryBufferFactory; +import com.android.inputmethod.latin.makedict.DictDecoder.DictionaryBufferFromByteArrayFactory; +import com.android.inputmethod.latin.makedict.DictDecoder. DictionaryBufferFromReadOnlyByteBufferFactory; -import com.android.inputmethod.latin.makedict.BinaryDictDecoder. +import com.android.inputmethod.latin.makedict.DictDecoder. DictionaryBufferFromWritableByteBufferFactory; import android.test.AndroidTestCase; @@ -33,10 +32,10 @@ import java.io.FileOutputStream; import java.io.IOException; /** - * Unit tests for BinaryDictDecoder + * Unit tests for Ver3DictDecoder */ -public class BinaryDictDecoderTests extends AndroidTestCase { - private static final String TAG = BinaryDictDecoderTests.class.getSimpleName(); +public class Ver3DictDecoderTests extends AndroidTestCase { + private static final String TAG = Ver3DictDecoderTests.class.getSimpleName(); private final byte[] data = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; @@ -60,8 +59,7 @@ public class BinaryDictDecoderTests extends AndroidTestCase { } @SuppressWarnings("null") - public void runTestOpenBuffer(final String testName, - final DictionaryBufferFactory factory) { + public void runTestOpenBuffer(final String testName, final DictionaryBufferFactory factory) { File testFile = null; try { testFile = File.createTempFile(testName, ".tmp", getContext().getCacheDir()); @@ -70,7 +68,7 @@ public class BinaryDictDecoderTests extends AndroidTestCase { } assertNotNull(testFile); - final BinaryDictDecoder dictDecoder = new BinaryDictDecoder(testFile); + final Ver3DictDecoder dictDecoder = new Ver3DictDecoder(testFile); try { dictDecoder.openDictBuffer(factory); } catch (Exception e) { @@ -104,8 +102,7 @@ public class BinaryDictDecoderTests extends AndroidTestCase { } @SuppressWarnings("null") - public void runTestGetBuffer(final String testName, - final DictionaryBufferFactory factory) { + public void runTestGetBuffer(final String testName, final DictionaryBufferFactory factory) { File testFile = null; try { testFile = File.createTempFile(testName, ".tmp", getContext().getCacheDir()); @@ -113,7 +110,7 @@ public class BinaryDictDecoderTests extends AndroidTestCase { Log.e(TAG, "IOException while the creating temporary file", e); } - final BinaryDictDecoder dictDecoder = new BinaryDictDecoder(testFile); + final Ver3DictDecoder dictDecoder = new Ver3DictDecoder(testFile); // the default return value of getBuffer() must be null. assertNull("the default return value of getBuffer() is not null", diff --git a/tests/src/com/android/inputmethod/latin/utils/UserHistoryDictIOUtilsTests.java b/tests/src/com/android/inputmethod/latin/utils/UserHistoryDictIOUtilsTests.java index 83d9c2122..eca12c0d8 100644 --- a/tests/src/com/android/inputmethod/latin/utils/UserHistoryDictIOUtilsTests.java +++ b/tests/src/com/android/inputmethod/latin/utils/UserHistoryDictIOUtilsTests.java @@ -21,10 +21,10 @@ import android.test.AndroidTestCase; import android.test.suitebuilder.annotation.LargeTest; import android.util.Log; -import com.android.inputmethod.latin.makedict.BinaryDictDecoder; import com.android.inputmethod.latin.makedict.FormatSpec; import com.android.inputmethod.latin.makedict.FusionDictionary; import com.android.inputmethod.latin.makedict.FusionDictionary.CharGroup; +import com.android.inputmethod.latin.makedict.Ver3DictDecoder; import com.android.inputmethod.latin.personalization.UserHistoryDictionaryBigramList; import com.android.inputmethod.latin.utils.UserHistoryDictIOUtils.BigramDictionaryInterface; import com.android.inputmethod.latin.utils.UserHistoryDictIOUtils.OnAddWordListener; @@ -147,10 +147,10 @@ public class UserHistoryDictIOUtilsTests extends AndroidTestCase } private void readDictFromFile(final File file, final OnAddWordListener listener) { - final BinaryDictDecoder dictDecoder = new BinaryDictDecoder(file); + final Ver3DictDecoder dictDecoder = new Ver3DictDecoder(file); try { dictDecoder.openDictBuffer( - new BinaryDictDecoder.DictionaryBufferFromByteArrayFactory()); + new Ver3DictDecoder.DictionaryBufferFromByteArrayFactory()); } catch (FileNotFoundException e) { Log.e(TAG, "file not found", e); } catch (IOException e) { |