1/* 2 * Copyright (C) 2007 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package android.view; 18 19import android.test.ActivityInstrumentationTestCase; 20import android.test.FlakyTest; 21import android.test.suitebuilder.annotation.LargeTest; 22import android.test.suitebuilder.annotation.MediumTest; 23import android.test.TouchUtils; 24import android.test.suitebuilder.annotation.Suppress; 25import android.view.View; 26import android.view.KeyEvent; 27import com.android.frameworks.coretests.R; 28 29@Suppress // Flaky 30public class GlobalFocusChangeTest extends ActivityInstrumentationTestCase<GlobalFocusChange> { 31 private GlobalFocusChange mActivity; 32 private View mLeft; 33 private View mRight; 34 35 public GlobalFocusChangeTest() { 36 super("com.android.frameworks.coretests", GlobalFocusChange.class); 37 } 38 39 @Override 40 public void setUp() throws Exception { 41 super.setUp(); 42 mActivity = getActivity(); 43 mLeft = mActivity.findViewById(R.id.left); 44 mRight = mActivity.findViewById(R.id.right); 45 } 46 47 @Override 48 protected void tearDown() throws Exception { 49 mActivity.reset(); 50 super.tearDown(); 51 } 52 53 @FlakyTest(tolerance = 4) 54 @LargeTest 55 public void testFocusChange() throws Exception { 56 sendKeys(KeyEvent.KEYCODE_DPAD_RIGHT); 57 58 assertFalse(mLeft.isFocused()); 59 assertTrue(mRight.isFocused()); 60 61 assertSame(mLeft, mActivity.mOldFocus); 62 assertSame(mRight, mActivity.mNewFocus); 63 } 64 65 @FlakyTest(tolerance = 4) 66 @MediumTest 67 public void testEnterTouchMode() throws Exception { 68 assertTrue(mLeft.isFocused()); 69 70 TouchUtils.tapView(this, mLeft); 71 72 assertSame(mLeft, mActivity.mOldFocus); 73 assertSame(null, mActivity.mNewFocus); 74 } 75 76 @FlakyTest(tolerance = 4) 77 @MediumTest 78 public void testLeaveTouchMode() throws Exception { 79 assertTrue(mLeft.isFocused()); 80 81 TouchUtils.tapView(this, mLeft); 82 sendKeys(KeyEvent.KEYCODE_DPAD_RIGHT); 83 84 assertTrue(mLeft.isFocused()); 85 86 assertSame(null, mActivity.mOldFocus); 87 assertSame(mLeft, mActivity.mNewFocus); 88 } 89} 90