/** * 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.accessibility; import android.test.suitebuilder.annotation.SmallTest; import junit.framework.TestCase; /** * This class exercises the caching and recycling of {@link AccessibilityEvent}s. */ public class RecycleAccessibilityEventTest extends TestCase { private static final String CLASS_NAME = "foo.bar.baz.Test"; private static final String PACKAGE_NAME = "foo.bar.baz"; private static final String TEXT = "Some stuff"; private static final String CONTENT_DESCRIPTION = "Content description"; private static final int ITEM_COUNT = 10; private static final int CURRENT_ITEM_INDEX = 1; private static final int FROM_INDEX = 1; private static final int ADDED_COUNT = 2; private static final int REMOVED_COUNT = 1; /** * If an {@link AccessibilityEvent} is marshaled/unmarshaled correctly */ @SmallTest public void testAccessibilityEventViewTextChangedType() { AccessibilityEvent first = AccessibilityEvent.obtain(AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED); assertNotNull(first); first.setClassName(CLASS_NAME); first.setPackageName(PACKAGE_NAME); first.getText().add(TEXT); first.setFromIndex(FROM_INDEX); first.setAddedCount(ADDED_COUNT); first.setRemovedCount(REMOVED_COUNT); first.setChecked(true); first.setContentDescription(CONTENT_DESCRIPTION); first.setItemCount(ITEM_COUNT); first.setCurrentItemIndex(CURRENT_ITEM_INDEX); first.setEnabled(true); first.setPassword(true); first.recycle(); assertNotNull(first); assertNull(first.getClassName()); assertNull(first.getPackageName()); assertEquals(0, first.getText().size()); assertFalse(first.isChecked()); assertNull(first.getContentDescription()); assertEquals(-1, first.getItemCount()); assertEquals(AccessibilityEvent.INVALID_POSITION, first.getCurrentItemIndex()); assertFalse(first.isEnabled()); assertFalse(first.isPassword()); assertEquals(-1, first.getFromIndex()); assertEquals(-1, first.getAddedCount()); assertEquals(-1, first.getRemovedCount()); // get another event from the pool (this must be the recycled first) AccessibilityEvent second = AccessibilityEvent.obtain(); assertEquals(first, second); } }