1326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell/* 2326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell * Copyright (C) 2007 The Android Open Source Project 3326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell * 4326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell * Licensed under the Apache License, Version 2.0 (the "License"); 5326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell * you may not use this file except in compliance with the License. 6326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell * You may obtain a copy of the License at 7326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell * 8326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell * http://www.apache.org/licenses/LICENSE-2.0 9326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell * 10326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell * Unless required by applicable law or agreed to in writing, software 11326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell * distributed under the License is distributed on an "AS IS" BASIS, 12326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell * See the License for the specific language governing permissions and 14326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell * limitations under the License. 15326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell */ 16326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell 171d3165f10b12165f02b7015ac1a817c5f60e6399Neal Nguyenpackage android.view; 18326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell 19326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powellimport android.test.ActivityInstrumentationTestCase2; 20326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powellimport android.test.UiThreadTest; 21326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powellimport android.test.suitebuilder.annotation.MediumTest; 22326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powellimport android.view.View; 23326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powellimport android.view.ViewGroup; 24326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powellimport android.widget.Button; 25326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powellimport android.widget.TextView; 261d3165f10b12165f02b7015ac1a817c5f60e6399Neal Nguyenimport com.android.frameworks.coretests.R; 27326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell 28326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell/** 29326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell * Exercises {@link android.view.View}'s ability to change visibility between 30326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell * GONE, VISIBLE and INVISIBLE. 31326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell */ 32326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powellpublic class VisibilityCallbackTest extends ActivityInstrumentationTestCase2<VisibilityCallback> { 33326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell private TextView mRefUp; 34326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell private TextView mRefDown; 35326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell private VisibilityCallback.MonitoredTextView mVictim; 36326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell private ViewGroup mParent; 37326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell private Button mVisible; 38326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell private Button mInvisible; 39326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell private Button mGone; 40326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell 41326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell public VisibilityCallbackTest() { 421d3165f10b12165f02b7015ac1a817c5f60e6399Neal Nguyen super("com.android.frameworks.coretests", VisibilityCallback.class); 43326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell } 44326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell 45326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell @Override 46326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell public void setUp() throws Exception { 47326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell super.setUp(); 48326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell 49326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell final VisibilityCallback a = getActivity(); 50326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell mRefUp = (TextView) a.findViewById(R.id.refUp); 51326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell mRefDown = (TextView) a.findViewById(R.id.refDown); 52326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell mVictim = (VisibilityCallback.MonitoredTextView) a.findViewById(R.id.victim); 53326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell mParent = (ViewGroup) a.findViewById(R.id.parent); 54326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell mVisible = (Button) a.findViewById(R.id.vis); 55326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell mInvisible = (Button) a.findViewById(R.id.invis); 56326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell mGone = (Button) a.findViewById(R.id.gone); 57326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell 58326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell mVictim.post(new Runnable() { 59326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell public void run() { 60326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell mVictim.setVisibility(View.INVISIBLE); 61326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell } 62326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell }); 63326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell getInstrumentation().waitForIdleSync(); 64326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell } 65326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell 66326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell @MediumTest 67326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell @UiThreadTest 68326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell public void testSetUpConditions() throws Exception { 69326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell assertNotNull(mRefUp); 70326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell assertNotNull(mRefDown); 71326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell assertNotNull(mVictim); 72326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell assertNotNull(mVisible); 73326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell assertNotNull(mInvisible); 74326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell assertNotNull(mGone); 75326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell 76326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell assertTrue(mVisible.hasFocus()); 77326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell assertEquals(View.INVISIBLE, mVictim.getVisibility()); 78326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell assertEquals(View.VISIBLE, mParent.getVisibility()); 79326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell } 80326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell 81326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell @MediumTest 82326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell @UiThreadTest 83326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell public void testDirect() throws Exception { 84326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell mVictim.setVisibility(View.VISIBLE); 85326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell assertEquals(View.VISIBLE, mVictim.getLastChangedVisibility()); 86326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell assertEquals(mVictim, mVictim.getLastVisChangedView()); 87326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell 88326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell mVictim.setVisibility(View.INVISIBLE); 89326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell assertEquals(View.INVISIBLE, mVictim.getLastChangedVisibility()); 90326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell assertEquals(mVictim, mVictim.getLastVisChangedView()); 91326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell 92326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell mVictim.setVisibility(View.GONE); 93326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell assertEquals(View.GONE, mVictim.getLastChangedVisibility()); 94326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell assertEquals(mVictim, mVictim.getLastVisChangedView()); 95326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell } 96326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell 97326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell @MediumTest 98326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell @UiThreadTest 99326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell public void testChild() throws Exception { 100326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell mParent.setVisibility(View.INVISIBLE); 101326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell assertEquals(View.INVISIBLE, mVictim.getLastChangedVisibility()); 102326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell assertEquals(mParent, mVictim.getLastVisChangedView()); 103326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell 104326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell mParent.setVisibility(View.GONE); 105326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell assertEquals(View.GONE, mVictim.getLastChangedVisibility()); 106326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell assertEquals(mParent, mVictim.getLastVisChangedView()); 107326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell 108326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell mParent.setVisibility(View.VISIBLE); 109326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell assertEquals(View.VISIBLE, mVictim.getLastChangedVisibility()); 110326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell assertEquals(mParent, mVictim.getLastVisChangedView()); 111326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell } 112326d808b858359464b2ffeb84f2e0a8e0c79b600Adam Powell} 113