diff options
author | 2013-12-12 15:08:10 +0900 | |
---|---|---|
committer | 2013-12-13 18:18:20 +0900 | |
commit | a245d15da5d295af21ead9a01583c64796a31ad7 (patch) | |
tree | 1156247b156533c7b946f0f42c1d74642ea991e1 /tests/src/com/android/inputmethod/latin/makedict/Ver2DictDecoderTests.java | |
parent | af0c222a5ec4a8dda3db7b99b2e641434f2c4225 (diff) | |
download | latinime-a245d15da5d295af21ead9a01583c64796a31ad7.tar.gz latinime-a245d15da5d295af21ead9a01583c64796a31ad7.tar.xz latinime-a245d15da5d295af21ead9a01583c64796a31ad7.zip |
Have dicttool use the native library to generate v4 dicts.
Yay !
Change-Id: Iea8ced9e81031b9ab7eff05ad9ef7215be248de9
Diffstat (limited to 'tests/src/com/android/inputmethod/latin/makedict/Ver2DictDecoderTests.java')
-rw-r--r-- | tests/src/com/android/inputmethod/latin/makedict/Ver2DictDecoderTests.java | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/tests/src/com/android/inputmethod/latin/makedict/Ver2DictDecoderTests.java b/tests/src/com/android/inputmethod/latin/makedict/Ver2DictDecoderTests.java new file mode 100644 index 000000000..a85753e6b --- /dev/null +++ b/tests/src/com/android/inputmethod/latin/makedict/Ver2DictDecoderTests.java @@ -0,0 +1,150 @@ +/* + * Copyright (C) 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.inputmethod.latin.makedict; + +import com.android.inputmethod.latin.makedict.BinaryDictDecoderUtils.DictBuffer; +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.DictDecoder. + DictionaryBufferFromWritableByteBufferFactory; + +import android.test.AndroidTestCase; +import android.util.Log; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; + +/** + * Unit tests for Ver2DictDecoder + */ +public class Ver2DictDecoderTests extends AndroidTestCase { + private static final String TAG = Ver2DictDecoderTests.class.getSimpleName(); + + private final byte[] data = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; + + // Utilities for testing + public void writeDataToFile(final File file) { + FileOutputStream outStream = null; + try { + outStream = new FileOutputStream(file); + outStream.write(data); + } catch (IOException e) { + fail ("Can't write data to the test file"); + } finally { + if (outStream != null) { + try { + outStream.close(); + } catch (IOException e) { + Log.e(TAG, "Failed to close the output stream", e); + } + } + } + } + + @SuppressWarnings("null") + public void runTestOpenBuffer(final String testName, final DictionaryBufferFactory factory) { + File testFile = null; + try { + testFile = File.createTempFile(testName, ".tmp", getContext().getCacheDir()); + } catch (IOException e) { + Log.e(TAG, "IOException while the creating temporary file", e); + } + + assertNotNull(testFile); + final Ver2DictDecoder dictDecoder = new Ver2DictDecoder(testFile, factory); + try { + dictDecoder.openDictBuffer(); + } catch (Exception e) { + Log.e(TAG, "Failed to open the buffer", e); + } + + writeDataToFile(testFile); + + try { + dictDecoder.openDictBuffer(); + } catch (Exception e) { + Log.e(TAG, "Raised the exception while opening buffer", e); + } + + assertEquals(testFile.length(), dictDecoder.getDictBuffer().capacity()); + } + + public void testOpenBufferWithByteBuffer() { + runTestOpenBuffer("testOpenBufferWithByteBuffer", + new DictionaryBufferFromReadOnlyByteBufferFactory()); + } + + public void testOpenBufferWithByteArray() { + runTestOpenBuffer("testOpenBufferWithByteArray", + new DictionaryBufferFromByteArrayFactory()); + } + + public void testOpenBufferWithWritableByteBuffer() { + runTestOpenBuffer("testOpenBufferWithWritableByteBuffer", + new DictionaryBufferFromWritableByteBufferFactory()); + } + + @SuppressWarnings("null") + public void runTestGetBuffer(final String testName, final DictionaryBufferFactory factory) { + File testFile = null; + try { + testFile = File.createTempFile(testName, ".tmp", getContext().getCacheDir()); + } catch (IOException e) { + Log.e(TAG, "IOException while the creating temporary file", e); + } + + final Ver2DictDecoder dictDecoder = new Ver2DictDecoder(testFile, factory); + + // the default return value of getBuffer() must be null. + assertNull("the default return value of getBuffer() is not null", + dictDecoder.getDictBuffer()); + + writeDataToFile(testFile); + assertTrue(testFile.exists()); + Log.d(TAG, "file length = " + testFile.length()); + + DictBuffer dictBuffer = null; + try { + dictBuffer = dictDecoder.openAndGetDictBuffer(); + } catch (IOException e) { + Log.e(TAG, "Failed to open and get the buffer", e); + } + assertNotNull("the buffer must not be null", dictBuffer); + + for (int i = 0; i < data.length; ++i) { + assertEquals(data[i], dictBuffer.readUnsignedByte()); + } + } + + public void testGetBufferWithByteBuffer() { + runTestGetBuffer("testGetBufferWithByteBuffer", + new DictionaryBufferFromReadOnlyByteBufferFactory()); + } + + public void testGetBufferWithByteArray() { + runTestGetBuffer("testGetBufferWithByteArray", + new DictionaryBufferFromByteArrayFactory()); + } + + public void testGetBufferWithWritableByteBuffer() { + runTestGetBuffer("testGetBufferWithWritableByteBuffer", + new DictionaryBufferFromWritableByteBufferFactory()); + } +} |