blob: b053699673aa1b20758b84cf0593efa8973aecd9 [file] [log] [blame]
/**
* Copyright (C) 2008 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.view.menu;
import android.util.KeyUtils;
import com.android.internal.view.menu.IconMenuView;
import com.android.internal.view.menu.MenuBuilder;
import android.content.pm.ActivityInfo;
import android.test.ActivityInstrumentationTestCase;
public class MenuLayoutPortraitTest extends ActivityInstrumentationTestCase<MenuLayoutPortrait> {
private static final String LONG_TITLE = "Really really really really really really really really really really long title";
private static final String SHORT_TITLE = "Item";
private MenuLayout mActivity;
public MenuLayoutPortraitTest() {
super("com.android.frameworks.coretests", MenuLayoutPortrait.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
mActivity = getActivity();
}
public void testPreconditions() {
assertNotNull(mActivity);
}
private void toggleMenu() {
getInstrumentation().waitForIdleSync();
KeyUtils.tapMenuKey(this);
getInstrumentation().waitForIdleSync();
}
/**
* Asserts the layout of the menu.
*
* @param expectedLayout The number of parameters is the number of rows, and
* each parameter is how many items on that row.
*/
private void assertLayout(Integer... expectedLayout) {
toggleMenu();
/* TODO These need to be rewritten to account for presenters that an activity
* does not have access to.
IconMenuView iconMenuView = ((IconMenuView) mActivity.getMenuView(MenuBuilder.TYPE_ICON));
int[] layout = iconMenuView.getLayout();
int layoutNumRows = iconMenuView.getLayoutNumRows();
int expectedRows = expectedLayout.length;
assertEquals("Row mismatch", expectedRows, layoutNumRows);
for (int row = 0; row < expectedRows; row++) {
assertEquals("Col mismatch on row " + row, expectedLayout[row].intValue(),
layout[row]);
}
*/
}
public void test1ShortItem() {
mActivity.setParams(new MenuScenario.Params()
.setNumItems(1)
.setItemTitle(0, SHORT_TITLE));
assertLayout(1);
}
public void test1LongItem() {
mActivity.setParams(new MenuScenario.Params()
.setNumItems(1)
.setItemTitle(0, LONG_TITLE));
assertLayout(1);
}
public void test2LongItems() {
mActivity.setParams(new MenuScenario.Params()
.setNumItems(2)
.setItemTitle(0, LONG_TITLE)
.setItemTitle(1, LONG_TITLE));
assertLayout(1, 1);
}
public void test2ShortItems() {
mActivity.setParams(new MenuScenario.Params()
.setNumItems(2)
.setItemTitle(0, SHORT_TITLE)
.setItemTitle(1, SHORT_TITLE));
assertLayout(2);
}
public void test3ShortItems() {
mActivity.setParams(new MenuScenario.Params()
.setNumItems(3)
.setItemTitle(0, SHORT_TITLE)
.setItemTitle(1, SHORT_TITLE)
.setItemTitle(2, SHORT_TITLE));
assertLayout(3);
}
public void test3VarietyItems() {
mActivity.setParams(new MenuScenario.Params()
.setNumItems(3)
.setItemTitle(0, SHORT_TITLE)
.setItemTitle(1, LONG_TITLE)
.setItemTitle(2, SHORT_TITLE));
// We maintain the order added, so there must be 3 rows
assertLayout(1, 1, 1);
}
public void test3VarietyItems2() {
mActivity.setParams(new MenuScenario.Params()
.setNumItems(3)
.setItemTitle(0, LONG_TITLE)
.setItemTitle(1, SHORT_TITLE)
.setItemTitle(2, SHORT_TITLE));
// The long can fit in first row, and two shorts in second
assertLayout(1, 2);
}
public void test4LongItems() {
mActivity.setParams(new MenuScenario.Params()
.setNumItems(4)
.setItemTitle(0, LONG_TITLE)
.setItemTitle(1, LONG_TITLE)
.setItemTitle(2, LONG_TITLE)
.setItemTitle(3, LONG_TITLE));
assertLayout(1, 1, 2);
}
public void test4ShortItems() {
mActivity.setParams(new MenuScenario.Params()
.setNumItems(4)
.setItemTitle(0, SHORT_TITLE)
.setItemTitle(1, SHORT_TITLE)
.setItemTitle(2, SHORT_TITLE)
.setItemTitle(3, SHORT_TITLE));
assertLayout(2, 2);
}
public void test4VarietyItems() {
mActivity.setParams(new MenuScenario.Params()
.setNumItems(4)
.setItemTitle(0, LONG_TITLE)
.setItemTitle(1, SHORT_TITLE)
.setItemTitle(2, SHORT_TITLE)
.setItemTitle(3, SHORT_TITLE));
assertLayout(1, 1, 2);
}
public void test5ShortItems() {
mActivity.setParams(new MenuScenario.Params()
.setNumItems(5)
.setItemTitle(0, SHORT_TITLE)
.setItemTitle(1, SHORT_TITLE)
.setItemTitle(2, SHORT_TITLE)
.setItemTitle(3, SHORT_TITLE)
.setItemTitle(4, SHORT_TITLE));
assertLayout(2, 3);
}
public void test5LongItems() {
mActivity.setParams(new MenuScenario.Params()
.setNumItems(5)
.setItemTitle(0, LONG_TITLE)
.setItemTitle(1, LONG_TITLE)
.setItemTitle(2, LONG_TITLE)
.setItemTitle(3, LONG_TITLE)
.setItemTitle(4, LONG_TITLE));
assertLayout(1, 2, 2);
}
public void test5VarietyItems() {
mActivity.setParams(new MenuScenario.Params()
.setNumItems(5)
.setItemTitle(0, LONG_TITLE)
.setItemTitle(1, SHORT_TITLE)
.setItemTitle(2, LONG_TITLE)
.setItemTitle(3, SHORT_TITLE)
.setItemTitle(4, LONG_TITLE));
assertLayout(1, 2, 2);
}
public void test6LongItems() {
mActivity.setParams(new MenuScenario.Params()
.setNumItems(6)
.setItemTitle(0, LONG_TITLE)
.setItemTitle(1, LONG_TITLE)
.setItemTitle(2, LONG_TITLE)
.setItemTitle(3, LONG_TITLE)
.setItemTitle(4, LONG_TITLE)
.setItemTitle(5, LONG_TITLE));
assertLayout(2, 2, 2);
}
public void test6ShortItems() {
mActivity.setParams(new MenuScenario.Params()
.setNumItems(6)
.setItemTitle(0, SHORT_TITLE)
.setItemTitle(1, SHORT_TITLE)
.setItemTitle(2, SHORT_TITLE)
.setItemTitle(3, SHORT_TITLE)
.setItemTitle(4, SHORT_TITLE)
.setItemTitle(5, SHORT_TITLE));
assertLayout(3, 3);
}
public void test6VarietyItems() {
mActivity.setParams(new MenuScenario.Params()
.setNumItems(6)
.setItemTitle(0, SHORT_TITLE)
.setItemTitle(1, LONG_TITLE)
.setItemTitle(2, SHORT_TITLE)
.setItemTitle(3, LONG_TITLE)
.setItemTitle(4, SHORT_TITLE)
.setItemTitle(5, SHORT_TITLE));
assertLayout(2, 2, 2);
}
}