blob: e9baabf3175af41e8366233922456dd3dd43bffa [file] [log] [blame]
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001/*
2 * Copyright (C) 2008 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
Neal Nguyen1d3165f2010-01-12 13:26:10 -080017package android.widget.listview.focus;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080018
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080019import android.test.ActivityInstrumentationTestCase;
Tadashi G. Takaokab4470f22019-01-15 18:29:15 +090020import android.util.InternalSelectionView;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080021import android.view.KeyEvent;
22import android.widget.ListView;
Tadashi G. Takaokab4470f22019-01-15 18:29:15 +090023import android.widget.listview.AdjacentListsWithAdjacentISVsInside;
24
25import androidx.test.filters.MediumTest;
26import androidx.test.filters.Suppress;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080027
28public class AdjacentListsWithAdjacentISVsInsideTest extends ActivityInstrumentationTestCase<AdjacentListsWithAdjacentISVsInside> {
29
30 private ListView mLeftListView;
31 private InternalSelectionView mLeftIsv;
32 private InternalSelectionView mLeftMiddleIsv;
33 private ListView mRightListView;
34 private InternalSelectionView mRightMiddleIsv;
35 private InternalSelectionView mRightIsv;
36
37 public AdjacentListsWithAdjacentISVsInsideTest() {
Neal Nguyen1d3165f2010-01-12 13:26:10 -080038 super("com.android.frameworks.coretests", AdjacentListsWithAdjacentISVsInside.class);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080039 }
40
41 @Override
42 protected void setUp() throws Exception {
43 super.setUp();
44 final AdjacentListsWithAdjacentISVsInside a = getActivity();
45 mLeftListView = a.getLeftListView();
46 mLeftIsv = a.getLeftIsv();
47 mLeftMiddleIsv = a.getLeftMiddleIsv();
48 mRightListView = a.getRightListView();
49 mRightMiddleIsv = a.getRightMiddleIsv();
50 mRightIsv = a.getRightIsv();
51 }
52
53 @MediumTest
54 public void testPreconditions() {
55 assertTrue(mLeftListView.hasFocus());
56 assertTrue(mLeftIsv.isFocused());
57 assertEquals(0, mLeftIsv.getSelectedRow());
58 }
59
60 /**
61 * rockinist test name to date!
62 */
63 @MediumTest
64 public void testFocusedRectAndFocusHintWorkWithinListItemHorizontal() {
65 sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
66 assertEquals(1, mLeftIsv.getSelectedRow());
67
68 sendKeys(KeyEvent.KEYCODE_DPAD_RIGHT);
69 assertTrue(mLeftListView.hasFocus());
70 assertTrue(mLeftMiddleIsv.isFocused());
71 assertEquals("mLeftMiddleIsv.getSelectedRow()", 1, mLeftMiddleIsv.getSelectedRow());
72
73 sendKeys(KeyEvent.KEYCODE_DPAD_LEFT);
74 assertTrue(mLeftIsv.isFocused());
75 assertEquals("mLeftIsv.getSelectedRow()", 1, mLeftIsv.getSelectedRow());
76 }
77
78 @MediumTest
Abodunrinwa Tokif9017762015-07-31 18:13:30 -070079 @Suppress // Failing.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080080 public void testFocusTransfersOutsideOfListWhenNoCandidateInsideHorizontal() {
81 sendKeys(KeyEvent.KEYCODE_DPAD_DOWN, KeyEvent.KEYCODE_DPAD_DOWN, KeyEvent.KEYCODE_DPAD_RIGHT);
82
83 assertTrue(mLeftListView.hasFocus());
84 assertTrue(mLeftMiddleIsv.isFocused());
85 assertEquals(2, mLeftMiddleIsv.getSelectedRow());
86
87 sendKeys(KeyEvent.KEYCODE_DPAD_RIGHT);
88 assertTrue("mRightListView.hasFocus()", mRightListView.hasFocus());
89 assertTrue("mRightMiddleIsv.isFocused()", mRightMiddleIsv.isFocused());
90 assertEquals("mRightMiddleIsv.getSelectedRow()", 2, mRightMiddleIsv.getSelectedRow());
91 }
92}