--- /dev/null
+/*
+ * Copyright (C) 2009 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 android.view.inputmethod.cts;
+
+import dalvik.annotation.TestLevel;
+import dalvik.annotation.TestTargetClass;
+import dalvik.annotation.TestTargetNew;
+import dalvik.annotation.TestTargets;
+
+import android.os.Bundle;
+import android.os.Parcel;
+import android.test.AndroidTestCase;
+import android.text.TextUtils;
+import android.util.Printer;
+import android.view.inputmethod.EditorInfo;
+
+
+@TestTargetClass(EditorInfo.class)
+public class EditorInfoTest extends AndroidTestCase {
+
+ @TestTargets({
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "describeContents",
+ args = {}
+ ),
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "writeToParcel",
+ args = {Parcel.class, int.class}
+ ),
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "dump",
+ args = {Printer.class, String.class}
+ )
+ })
+ public void testEditorInfo() {
+ EditorInfo info = new EditorInfo();
+
+ info.actionId = 1;
+ info.actionLabel = "actionLabel";
+ info.fieldId = 2;
+ info.fieldName = "fieldName";
+ info.hintText = "hintText";
+ info.imeOptions = EditorInfo.IME_FLAG_NO_ENTER_ACTION;
+ info.initialCapsMode = TextUtils.CAP_MODE_CHARACTERS;
+ info.initialSelEnd = 10;
+ info.initialSelStart = 0;
+ info.inputType = EditorInfo.TYPE_MASK_CLASS;
+ info.label = "label";
+ info.packageName = "com.android.cts.stub";
+ info.privateImeOptions = "privateIme";
+ Bundle b = new Bundle();
+ String key = "bundleKey";
+ String value = "bundleValue";
+ b.putString(key, value);
+ info.extras = b;
+
+ assertEquals(0, info.describeContents());
+
+ Parcel p = Parcel.obtain();
+ info.writeToParcel(p, 0);
+ p.setDataPosition(0);
+ EditorInfo targetInfo = EditorInfo.CREATOR.createFromParcel(p);
+ p.recycle();
+ assertEquals(info.actionId, targetInfo.actionId);
+ assertEquals(info.fieldId, targetInfo.fieldId);
+ assertEquals(info.fieldName, targetInfo.fieldName);
+ assertEquals(info.imeOptions, targetInfo.imeOptions);
+ assertEquals(info.initialCapsMode, targetInfo.initialCapsMode);
+ assertEquals(info.initialSelEnd, targetInfo.initialSelEnd);
+ assertEquals(info.initialSelStart, targetInfo.initialSelStart);
+ assertEquals(info.inputType, targetInfo.inputType);
+ assertEquals(info.packageName, targetInfo.packageName);
+ assertEquals(info.privateImeOptions, targetInfo.privateImeOptions);
+ assertEquals(info.hintText.toString(), targetInfo.hintText.toString());
+ assertEquals(info.actionLabel.toString(), targetInfo.actionLabel.toString());
+ assertEquals(info.label.toString(), targetInfo.label.toString());
+ assertEquals(info.extras.getString(key), targetInfo.extras.getString(key));
+
+ TestPrinter printer = new TestPrinter();
+ String prefix = "TestEditorInfo";
+ info.dump(printer, prefix);
+ assertTrue(printer.isPrintlnCalled);
+ }
+
+ private class TestPrinter implements Printer {
+ public boolean isPrintlnCalled;
+ public void println(String x) {
+ isPrintlnCalled = true;
+ }
+ }
+}