blob: d9bf860648d2eb92015c86bf2178af27eeac2368 [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"); you may not
5 * use this file except in compliance with the License. You may obtain a copy
6 * 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, WITHOUT
12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 * License for the specific language governing permissions and limitations
14 * under the License.
15 */
16
Neal Nguyen1d3165f2010-01-12 13:26:10 -080017package android.view.menu;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080018
Neal Nguyen1d3165f2010-01-12 13:26:10 -080019import android.util.KeyUtils;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080020import com.android.internal.view.menu.IconMenuView;
21import com.android.internal.view.menu.MenuBuilder;
22
23import android.content.pm.ActivityInfo;
24import android.test.ActivityInstrumentationTestCase;
25
26public class MenuLayoutLandscapeTest extends ActivityInstrumentationTestCase<MenuLayoutLandscape> {
27 private static final String LONG_TITLE = "Really really really really really really really really really really long title";
28 private static final String SHORT_TITLE = "Item";
29
30 private MenuLayout mActivity;
31
32 public MenuLayoutLandscapeTest() {
Neal Nguyen1d3165f2010-01-12 13:26:10 -080033 super("com.android.frameworks.coretests", MenuLayoutLandscape.class);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080034 }
35
36 @Override
37 protected void setUp() throws Exception {
38 super.setUp();
39 mActivity = getActivity();
40 }
41
42 public void testPreconditions() {
43 assertNotNull(mActivity);
44 }
45
46 private void toggleMenu() {
47 getInstrumentation().waitForIdleSync();
48 KeyUtils.tapMenuKey(this);
49 getInstrumentation().waitForIdleSync();
50 }
51
52 /**
53 * Asserts the layout of the menu.
54 *
55 * @param expectedLayout The number of parameters is the number of rows, and
56 * each parameter is how many items on that row (the first
57 * parameter is the top-most row).
58 */
59 private void assertLayout(Integer... expectedLayout) {
60 toggleMenu();
61
62 IconMenuView iconMenuView = ((IconMenuView) mActivity.getMenuView(MenuBuilder.TYPE_ICON));
63 int[] layout = iconMenuView.getLayout();
64 int layoutNumRows = iconMenuView.getLayoutNumRows();
65
66 int expectedRows = expectedLayout.length;
67 assertEquals("Row mismatch", expectedRows, layoutNumRows);
68
69 for (int row = 0; row < expectedRows; row++) {
70 assertEquals("Col mismatch on row " + row, expectedLayout[row].intValue(),
71 layout[row]);
72 }
73 }
74
75 public void test1ShortItem() {
76 mActivity.setParams(new MenuScenario.Params()
77 .setNumItems(1)
78 .setItemTitle(0, SHORT_TITLE));
79 assertLayout(1);
80 }
81
82 public void test1LongItem() {
83 mActivity.setParams(new MenuScenario.Params()
84 .setNumItems(1)
85 .setItemTitle(0, LONG_TITLE));
86 assertLayout(1);
87 }
88
89 public void test2LongItems() {
90 mActivity.setParams(new MenuScenario.Params()
91 .setNumItems(2)
92 .setItemTitle(0, LONG_TITLE)
93 .setItemTitle(1, LONG_TITLE));
94 assertLayout(1, 1);
95 }
96
97 public void test2ShortItems() {
98 mActivity.setParams(new MenuScenario.Params()
99 .setNumItems(2)
100 .setItemTitle(0, SHORT_TITLE)
101 .setItemTitle(1, SHORT_TITLE));
102 assertLayout(2);
103 }
104
105 public void test3ShortItems() {
106 mActivity.setParams(new MenuScenario.Params()
107 .setNumItems(3)
108 .setItemTitle(0, SHORT_TITLE)
109 .setItemTitle(1, SHORT_TITLE)
110 .setItemTitle(2, SHORT_TITLE));
111 assertLayout(3);
112 }
113
114 public void test3VarietyItems() {
115 mActivity.setParams(new MenuScenario.Params()
116 .setNumItems(3)
117 .setItemTitle(0, SHORT_TITLE)
118 .setItemTitle(1, LONG_TITLE)
119 .setItemTitle(2, SHORT_TITLE));
120 assertLayout(1, 2);
121 }
122
123 public void test3VarietyItems2() {
124 mActivity.setParams(new MenuScenario.Params()
125 .setNumItems(3)
126 .setItemTitle(0, LONG_TITLE)
127 .setItemTitle(1, SHORT_TITLE)
128 .setItemTitle(2, SHORT_TITLE));
129 assertLayout(1, 2);
130 }
131
132 public void test4LongItems() {
133 mActivity.setParams(new MenuScenario.Params()
134 .setNumItems(4)
135 .setItemTitle(0, LONG_TITLE)
136 .setItemTitle(1, LONG_TITLE)
137 .setItemTitle(2, LONG_TITLE)
138 .setItemTitle(3, LONG_TITLE));
139 assertLayout(2, 2);
140 }
141
142 public void test4ShortItems() {
143 mActivity.setParams(new MenuScenario.Params()
144 .setNumItems(4)
145 .setItemTitle(0, SHORT_TITLE)
146 .setItemTitle(1, SHORT_TITLE)
147 .setItemTitle(2, SHORT_TITLE)
148 .setItemTitle(3, SHORT_TITLE));
149 assertLayout(4);
150 }
151
152 public void test4VarietyItems() {
153 mActivity.setParams(new MenuScenario.Params()
154 .setNumItems(4)
155 .setItemTitle(0, LONG_TITLE)
156 .setItemTitle(1, SHORT_TITLE)
157 .setItemTitle(2, SHORT_TITLE)
158 .setItemTitle(3, SHORT_TITLE));
159 assertLayout(2, 2);
160 }
161
162 public void test5ShortItems() {
163 mActivity.setParams(new MenuScenario.Params()
164 .setNumItems(5)
165 .setItemTitle(0, SHORT_TITLE)
166 .setItemTitle(1, SHORT_TITLE)
167 .setItemTitle(2, SHORT_TITLE)
168 .setItemTitle(3, SHORT_TITLE)
169 .setItemTitle(4, SHORT_TITLE));
170 assertLayout(5);
171 }
172
173 public void test5LongItems() {
174 mActivity.setParams(new MenuScenario.Params()
175 .setNumItems(5)
176 .setItemTitle(0, LONG_TITLE)
177 .setItemTitle(1, LONG_TITLE)
178 .setItemTitle(2, LONG_TITLE)
179 .setItemTitle(3, LONG_TITLE)
180 .setItemTitle(4, LONG_TITLE));
181 assertLayout(2, 3);
182 }
183
184 public void test5VarietyItems() {
185 mActivity.setParams(new MenuScenario.Params()
186 .setNumItems(5)
187 .setItemTitle(0, LONG_TITLE)
188 .setItemTitle(1, SHORT_TITLE)
189 .setItemTitle(2, LONG_TITLE)
190 .setItemTitle(3, SHORT_TITLE)
191 .setItemTitle(4, LONG_TITLE));
192 assertLayout(2, 3);
193 }
194
195 public void test6LongItems() {
196 mActivity.setParams(new MenuScenario.Params()
197 .setNumItems(6)
198 .setItemTitle(0, LONG_TITLE)
199 .setItemTitle(1, LONG_TITLE)
200 .setItemTitle(2, LONG_TITLE)
201 .setItemTitle(3, LONG_TITLE)
202 .setItemTitle(4, LONG_TITLE)
203 .setItemTitle(5, LONG_TITLE));
204 assertLayout(3, 3);
205 }
206
207 public void test6ShortItems() {
208 mActivity.setParams(new MenuScenario.Params()
209 .setNumItems(6)
210 .setItemTitle(0, SHORT_TITLE)
211 .setItemTitle(1, SHORT_TITLE)
212 .setItemTitle(2, SHORT_TITLE)
213 .setItemTitle(3, SHORT_TITLE)
214 .setItemTitle(4, SHORT_TITLE)
215 .setItemTitle(5, SHORT_TITLE));
216 assertLayout(6);
217 }
218
219 public void test6VarietyItems() {
220 mActivity.setParams(new MenuScenario.Params()
221 .setNumItems(6)
222 .setItemTitle(0, SHORT_TITLE)
223 .setItemTitle(1, LONG_TITLE)
224 .setItemTitle(2, SHORT_TITLE)
225 .setItemTitle(3, LONG_TITLE)
226 .setItemTitle(4, SHORT_TITLE)
227 .setItemTitle(5, SHORT_TITLE));
228 assertLayout(3, 3);
229 }
230}