/*
* Copyright (C) 2007 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.widget.focus;
import android.widget.focus.HorizontalFocusSearch;
import android.test.ActivityInstrumentationTestCase;
import android.test.suitebuilder.annotation.Suppress;
import android.widget.LinearLayout;
import android.widget.Button;
import android.view.View;
import static android.widget.focus.VerticalFocusSearchTest.FocusSearchAlg;
import static android.widget.focus.VerticalFocusSearchTest.NewFocusSearchAlg;
/**
* Tests that focus searching works on a horizontal linear layout of buttons of
* various widths and vertical placements.
*/
// Suppress until bug http://b/issue?id=1416545 is fixed.
@Suppress
public class HorizontalFocusSearchTest extends ActivityInstrumentationTestCase<HorizontalFocusSearch> {
private FocusSearchAlg mFocusFinder;
private LinearLayout mLayout;
private Button mLeftTall;
private Button mMidShort1Top;
private Button mMidShort2Bottom;
private Button mRightTall;
public HorizontalFocusSearchTest() {
super("com.android.frameworks.coretests", HorizontalFocusSearch.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
mFocusFinder = new NewFocusSearchAlg();
mLayout = getActivity().getLayout();
mLeftTall = getActivity().getLeftTall();
mMidShort1Top = getActivity().getMidShort1Top();
mMidShort2Bottom = getActivity().getMidShort2Bottom();
mRightTall = getActivity().getRightTall();
}
public void testPreconditions() {
assertNotNull(mLayout);
assertNotNull(mLeftTall);
assertNotNull(mMidShort1Top);
assertNotNull(mMidShort2Bottom);
assertNotNull(mRightTall);
}
public void testSearchFromLeftButton() {
assertNull("going up from mLeftTall",
mFocusFinder.findNextFocus(mLayout, mLeftTall, View.FOCUS_UP));
assertNull("going down from mLeftTall",
mFocusFinder.findNextFocus(mLayout, mLeftTall, View.FOCUS_DOWN));
assertNull("going left from mLeftTall",
mFocusFinder.findNextFocus(mLayout, mLeftTall, View.FOCUS_LEFT));
assertEquals("going right from mLeftTall",
mMidShort1Top,
mFocusFinder.findNextFocus(mLayout, mLeftTall, View.FOCUS_RIGHT));
}
public void TODO_testSearchFromMiddleLeftButton() {
assertNull("going up from mMidShort1Top",
mFocusFinder.findNextFocus(mLayout, mMidShort1Top, View.FOCUS_UP));
assertEquals("going down from mMidShort1Top",
mMidShort2Bottom,
mFocusFinder.findNextFocus(mLayout, mMidShort1Top, View.FOCUS_DOWN));
assertEquals("going left from mMidShort1Top",
mLeftTall,
mFocusFinder.findNextFocus(mLayout, mMidShort1Top, View.FOCUS_LEFT));
assertEquals("going right from mMidShort1Top",
mMidShort2Bottom,
mFocusFinder.findNextFocus(mLayout, mMidShort1Top, View.FOCUS_RIGHT));
}
public void TODO_testSearchFromMiddleRightButton() {
assertEquals("going up from mMidShort2Bottom",
mMidShort1Top,
mFocusFinder.findNextFocus(mLayout, mMidShort2Bottom, View.FOCUS_UP));
assertNull("going down from mMidShort2Bottom",
mFocusFinder.findNextFocus(mLayout, mMidShort2Bottom, View.FOCUS_DOWN));
assertEquals("going left from mMidShort2Bottom",
mMidShort1Top,
mFocusFinder.findNextFocus(mLayout, mMidShort2Bottom, View.FOCUS_LEFT));
assertEquals("goind right from mMidShort2Bottom",
mRightTall,
mFocusFinder.findNextFocus(mLayout, mMidShort2Bottom, View.FOCUS_RIGHT));
}
public void testSearchFromRightButton() {
assertNull("going up from mRightTall",
mFocusFinder.findNextFocus(mLayout, mRightTall, View.FOCUS_UP));
assertNull("going down from mRightTall",
mFocusFinder.findNextFocus(mLayout, mRightTall, View.FOCUS_DOWN));
assertEquals("going left from mRightTall",
mMidShort2Bottom,
mFocusFinder.findNextFocus(mLayout, mRightTall, View.FOCUS_LEFT));
assertNull("going right from mRightTall",
mFocusFinder.findNextFocus(mLayout, mRightTall, View.FOCUS_RIGHT));
}
}