175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov/** 275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Copyright (C) 2009 The Android Open Source Project 375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * in compliance with the License. You may obtain a copy of the License at 675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * http://www.apache.org/licenses/LICENSE-2.0 875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * 975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * Unless required by applicable law or agreed to in writing, software distributed under the 1075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 1175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * express or implied. See the License for the specific language governing permissions and 1275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * limitations under the License. 1375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 1475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 151d3165f10b12165f02b7015ac1a817c5f60e6399Neal Nguyenpackage android.view.accessibility; 1675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 17f76c56bcaa9df1d1afa711177f813dc63f399795Brett Chabotimport android.test.suitebuilder.annotation.SmallTest; 1875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 1975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganovimport junit.framework.TestCase; 2075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 2175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov/** 2275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * This class exercises the caching and recycling of {@link AccessibilityEvent}s. 2375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 2475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganovpublic class RecycleAccessibilityEventTest extends TestCase { 2575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 2675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private static final String CLASS_NAME = "foo.bar.baz.Test"; 2775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private static final String PACKAGE_NAME = "foo.bar.baz"; 2875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private static final String TEXT = "Some stuff"; 2975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 3075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private static final String CONTENT_DESCRIPTION = "Content description"; 3175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private static final int ITEM_COUNT = 10; 3275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private static final int CURRENT_ITEM_INDEX = 1; 3375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 3475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private static final int FROM_INDEX = 1; 3575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private static final int ADDED_COUNT = 2; 3675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov private static final int REMOVED_COUNT = 1; 3775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 3875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov /** 3975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov * If an {@link AccessibilityEvent} is marshaled/unmarshaled correctly 4075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov */ 41f76c56bcaa9df1d1afa711177f813dc63f399795Brett Chabot @SmallTest 4275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov public void testAccessibilityEventViewTextChangedType() { 4375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov AccessibilityEvent first = 4475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov AccessibilityEvent.obtain(AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED); 4575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov assertNotNull(first); 4675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 4775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov first.setClassName(CLASS_NAME); 4875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov first.setPackageName(PACKAGE_NAME); 4975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov first.getText().add(TEXT); 5075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov first.setFromIndex(FROM_INDEX); 5175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov first.setAddedCount(ADDED_COUNT); 5275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov first.setRemovedCount(REMOVED_COUNT); 5375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov first.setChecked(true); 5475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov first.setContentDescription(CONTENT_DESCRIPTION); 5575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov first.setItemCount(ITEM_COUNT); 5675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov first.setCurrentItemIndex(CURRENT_ITEM_INDEX); 5775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov first.setEnabled(true); 5875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov first.setPassword(true); 5975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 6075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov first.recycle(); 6175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 6275986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov assertNotNull(first); 6375986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov assertNull(first.getClassName()); 6475986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov assertNull(first.getPackageName()); 6575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov assertEquals(0, first.getText().size()); 6675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov assertFalse(first.isChecked()); 6775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov assertNull(first.getContentDescription()); 6800aabf7d187bc05408199bd687a538b2e68bdc17Svetoslav Ganov assertEquals(-1, first.getItemCount()); 6975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov assertEquals(AccessibilityEvent.INVALID_POSITION, first.getCurrentItemIndex()); 7075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov assertFalse(first.isEnabled()); 7175986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov assertFalse(first.isPassword()); 7200aabf7d187bc05408199bd687a538b2e68bdc17Svetoslav Ganov assertEquals(-1, first.getFromIndex()); 7300aabf7d187bc05408199bd687a538b2e68bdc17Svetoslav Ganov assertEquals(-1, first.getAddedCount()); 7400aabf7d187bc05408199bd687a538b2e68bdc17Svetoslav Ganov assertEquals(-1, first.getRemovedCount()); 7575986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov 7675986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov // get another event from the pool (this must be the recycled first) 7775986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov AccessibilityEvent second = AccessibilityEvent.obtain(); 7875986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov assertEquals(first, second); 7975986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov } 8075986cf9bc57ef11ad70f36fb77fbbf5d63af6ecsvetoslavganov} 81