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