19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 171d3165f10b12165f02b7015ac1a817c5f60e6399Neal Nguyenpackage android.view; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 191d3165f10b12165f02b7015ac1a817c5f60e6399Neal Nguyenimport android.view.Visibility; 201d3165f10b12165f02b7015ac1a817c5f60e6399Neal Nguyenimport com.android.frameworks.coretests.R; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.test.ActivityInstrumentationTestCase; 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.test.suitebuilder.annotation.LargeTest; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.test.suitebuilder.annotation.MediumTest; 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.widget.Button; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.widget.TextView; 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.View; 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport static android.view.KeyEvent.*; 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Exercises {@link android.view.View}'s ability to change visibility between 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * GONE, VISIBLE and INVISIBLE. 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class VisibilityTest extends ActivityInstrumentationTestCase<Visibility> { 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private TextView mRefUp; 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private TextView mRefDown; 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private TextView mVictim; 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private Button mVisible; 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private Button mInvisible; 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private Button mGone; 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public VisibilityTest() { 431d3165f10b12165f02b7015ac1a817c5f60e6399Neal Nguyen super("com.android.frameworks.coretests", Visibility.class); 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() throws Exception { 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project super.setUp(); 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final Visibility a = getActivity(); 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRefUp = (TextView) a.findViewById(R.id.refUp); 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mRefDown = (TextView) a.findViewById(R.id.refDown); 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mVictim = (TextView) a.findViewById(R.id.victim); 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mVisible = (Button) a.findViewById(R.id.vis); 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mInvisible = (Button) a.findViewById(R.id.invis); 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project mGone = (Button) a.findViewById(R.id.gone); 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @MediumTest 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testSetUpConditions() throws Exception { 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertNotNull(mRefUp); 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertNotNull(mRefDown); 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertNotNull(mVictim); 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertNotNull(mVisible); 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertNotNull(mInvisible); 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertNotNull(mGone); 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(mVisible.hasFocus()); 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @MediumTest 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testVisibleToInvisible() throws Exception { 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sendKeys("DPAD_RIGHT"); 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(mInvisible.hasFocus()); 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int oldTop = mVictim.getTop(); 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sendKeys("DPAD_CENTER"); 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertEquals(View.INVISIBLE, mVictim.getVisibility()); 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int newTop = mVictim.getTop(); 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertEquals(oldTop, newTop); 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @MediumTest 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testVisibleToGone() throws Exception { 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project //sendKeys("2*DPAD_RIGHT"); 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sendRepeatedKeys(2, KEYCODE_DPAD_RIGHT); 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(mGone.hasFocus()); 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int oldTop = mVictim.getTop(); 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sendKeys("DPAD_CENTER"); 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertEquals(View.GONE, mVictim.getVisibility()); 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int refDownTop = mRefDown.getTop(); 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertEquals(oldTop, refDownTop); 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @LargeTest 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testGoneToVisible() throws Exception { 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sendKeys("2*DPAD_RIGHT"); 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(mGone.hasFocus()); 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int oldTop = mVictim.getTop(); 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sendKeys("DPAD_CENTER"); 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertEquals(View.GONE, mVictim.getVisibility()); 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int refDownTop = mRefDown.getTop(); 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertEquals(oldTop, refDownTop); 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sendKeys("2*DPAD_LEFT DPAD_CENTER"); 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertEquals(View.VISIBLE, mVictim.getVisibility()); 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int newTop = mVictim.getTop(); 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertEquals(oldTop, newTop); 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @MediumTest 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testGoneToInvisible() throws Exception { 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sendKeys("2*DPAD_RIGHT"); 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(mGone.hasFocus()); 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int oldTop = mVictim.getTop(); 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sendKeys("DPAD_CENTER"); 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertEquals(View.GONE, mVictim.getVisibility()); 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int refDownTop = mRefDown.getTop(); 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertEquals(oldTop, refDownTop); 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sendKeys(KEYCODE_DPAD_LEFT, KEYCODE_DPAD_CENTER); 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertEquals(View.INVISIBLE, mVictim.getVisibility()); 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int newTop = mVictim.getTop(); 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertEquals(oldTop, newTop); 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @MediumTest 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testInvisibleToVisible() throws Exception { 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sendKeys("DPAD_RIGHT"); 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(mInvisible.hasFocus()); 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int oldTop = mVictim.getTop(); 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sendKeys("DPAD_CENTER"); 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertEquals(View.INVISIBLE, mVictim.getVisibility()); 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int newTop = mVictim.getTop(); 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertEquals(oldTop, newTop); 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sendKeys("DPAD_LEFT DPAD_CENTER"); 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertEquals(View.VISIBLE, mVictim.getVisibility()); 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project newTop = mVictim.getTop(); 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertEquals(oldTop, newTop); 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @MediumTest 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testInvisibleToGone() throws Exception { 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sendKeys("DPAD_RIGHT"); 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertTrue(mInvisible.hasFocus()); 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int oldTop = mVictim.getTop(); 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sendKeys("DPAD_CENTER"); 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertEquals(View.INVISIBLE, mVictim.getVisibility()); 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int newTop = mVictim.getTop(); 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertEquals(oldTop, newTop); 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sendKeys("DPAD_RIGHT DPAD_CENTER"); 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertEquals(View.GONE, mVictim.getVisibility()); 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int refDownTop = mRefDown.getTop(); 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project assertEquals(oldTop, refDownTop); 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 180