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 17 package android.widget.gridview; 18 19 import android.util.GridScenario; 20 21 import android.test.ActivityInstrumentationTestCase; 22 import android.test.suitebuilder.annotation.MediumTest; 23 import android.test.ViewAsserts; 24 import android.widget.GridView; 25 26 public class GridSetSelectionBaseTest<T extends GridScenario> extends ActivityInstrumentationTestCase<T> { 27 private T mActivity; 28 private GridView mGridView; 29 30 protected GridSetSelectionBaseTest(Class<T> klass) { 31 super("com.android.frameworks.coretests", klass); 32 } 33 34 @Override 35 protected void setUp() throws Exception { 36 super.setUp(); 37 38 mActivity = getActivity(); 39 mGridView = getActivity().getGridView(); 40 } 41 42 @MediumTest 43 public void testPreconditions() { 44 assertNotNull(mActivity); 45 assertNotNull(mGridView); 46 47 // First item should be selected 48 if (mGridView.isStackFromBottom()) { 49 assertEquals(mGridView.getAdapter().getCount() - 1, 50 mGridView.getSelectedItemPosition()); 51 } else { 52 assertEquals(0, mGridView.getSelectedItemPosition()); 53 } 54 } 55 56 @MediumTest 57 public void testSetSelectionToTheEnd() { 58 final int target = mGridView.getAdapter().getCount() - 1; 59 mActivity.runOnUiThread(new Runnable() { 60 public void run() { 61 mGridView.setSelection(target); 62 } 63 }); 64 getInstrumentation().waitForIdleSync(); 65 66 assertEquals(mGridView.getSelectedItemPosition(), target); 67 assertNotNull(mGridView.getSelectedView()); 68 69 ViewAsserts.assertOnScreen(mGridView, mGridView.getSelectedView()); 70 } 71 72 @MediumTest 73 public void testSetSelectionToMiddle() { 74 final int target = mGridView.getAdapter().getCount() / 2; 75 mActivity.runOnUiThread(new Runnable() { 76 public void run() { 77 mGridView.setSelection(target); 78 } 79 }); 80 getInstrumentation().waitForIdleSync(); 81 82 assertEquals(mGridView.getSelectedItemPosition(), target); 83 assertNotNull(mGridView.getSelectedView()); 84 85 ViewAsserts.assertOnScreen(mGridView, mGridView.getSelectedView()); 86 } 87 88 @MediumTest 89 public void testSetSelectionToTheTop() { 90 mActivity.runOnUiThread(new Runnable() { 91 public void run() { 92 mGridView.setSelection(0); 93 } 94 }); 95 getInstrumentation().waitForIdleSync(); 96 97 assertEquals(mGridView.getSelectedItemPosition(), 0); 98 assertNotNull(mGridView.getSelectedView()); 99 100 ViewAsserts.assertOnScreen(mGridView, mGridView.getSelectedView()); 101 } 102 } 103