blob: 9347b27bbf5dbd32d58d45f4fbbda8f1f7e4daf7 [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
Adam Powell696cba52011-03-29 10:38:16 -070062 /* TODO These need to be rewritten to account for presenters that an activity
63 * does not have access to.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080064 IconMenuView iconMenuView = ((IconMenuView) mActivity.getMenuView(MenuBuilder.TYPE_ICON));
65 int[] layout = iconMenuView.getLayout();
66 int layoutNumRows = iconMenuView.getLayoutNumRows();
67
68 int expectedRows = expectedLayout.length;
69 assertEquals("Row mismatch", expectedRows, layoutNumRows);
70
71 for (int row = 0; row < expectedRows; row++) {
72 assertEquals("Col mismatch on row " + row, expectedLayout[row].intValue(),
73 layout[row]);
74 }
Adam Powell696cba52011-03-29 10:38:16 -070075 */
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080076 }
77
78 public void test1ShortItem() {
79 mActivity.setParams(new MenuScenario.Params()
80 .setNumItems(1)
81 .setItemTitle(0, SHORT_TITLE));
82 assertLayout(1);
83 }
84
85 public void test1LongItem() {
86 mActivity.setParams(new MenuScenario.Params()
87 .setNumItems(1)
88 .setItemTitle(0, LONG_TITLE));
89 assertLayout(1);
90 }
91
92 public void test2LongItems() {
93 mActivity.setParams(new MenuScenario.Params()
94 .setNumItems(2)
95 .setItemTitle(0, LONG_TITLE)
96 .setItemTitle(1, LONG_TITLE));
97 assertLayout(1, 1);
98 }
99
100 public void test2ShortItems() {
101 mActivity.setParams(new MenuScenario.Params()
102 .setNumItems(2)
103 .setItemTitle(0, SHORT_TITLE)
104 .setItemTitle(1, SHORT_TITLE));
105 assertLayout(2);
106 }
107
108 public void test3ShortItems() {
109 mActivity.setParams(new MenuScenario.Params()
110 .setNumItems(3)
111 .setItemTitle(0, SHORT_TITLE)
112 .setItemTitle(1, SHORT_TITLE)
113 .setItemTitle(2, SHORT_TITLE));
114 assertLayout(3);
115 }
116
117 public void test3VarietyItems() {
118 mActivity.setParams(new MenuScenario.Params()
119 .setNumItems(3)
120 .setItemTitle(0, SHORT_TITLE)
121 .setItemTitle(1, LONG_TITLE)
122 .setItemTitle(2, SHORT_TITLE));
123 assertLayout(1, 2);
124 }
125
126 public void test3VarietyItems2() {
127 mActivity.setParams(new MenuScenario.Params()
128 .setNumItems(3)
129 .setItemTitle(0, LONG_TITLE)
130 .setItemTitle(1, SHORT_TITLE)
131 .setItemTitle(2, SHORT_TITLE));
132 assertLayout(1, 2);
133 }
134
135 public void test4LongItems() {
136 mActivity.setParams(new MenuScenario.Params()
137 .setNumItems(4)
138 .setItemTitle(0, LONG_TITLE)
139 .setItemTitle(1, LONG_TITLE)
140 .setItemTitle(2, LONG_TITLE)
141 .setItemTitle(3, LONG_TITLE));
142 assertLayout(2, 2);
143 }
144
145 public void test4ShortItems() {
146 mActivity.setParams(new MenuScenario.Params()
147 .setNumItems(4)
148 .setItemTitle(0, SHORT_TITLE)
149 .setItemTitle(1, SHORT_TITLE)
150 .setItemTitle(2, SHORT_TITLE)
151 .setItemTitle(3, SHORT_TITLE));
152 assertLayout(4);
153 }
154
155 public void test4VarietyItems() {
156 mActivity.setParams(new MenuScenario.Params()
157 .setNumItems(4)
158 .setItemTitle(0, LONG_TITLE)
159 .setItemTitle(1, SHORT_TITLE)
160 .setItemTitle(2, SHORT_TITLE)
161 .setItemTitle(3, SHORT_TITLE));
162 assertLayout(2, 2);
163 }
164
165 public void test5ShortItems() {
166 mActivity.setParams(new MenuScenario.Params()
167 .setNumItems(5)
168 .setItemTitle(0, SHORT_TITLE)
169 .setItemTitle(1, SHORT_TITLE)
170 .setItemTitle(2, SHORT_TITLE)
171 .setItemTitle(3, SHORT_TITLE)
172 .setItemTitle(4, SHORT_TITLE));
173 assertLayout(5);
174 }
175
176 public void test5LongItems() {
177 mActivity.setParams(new MenuScenario.Params()
178 .setNumItems(5)
179 .setItemTitle(0, LONG_TITLE)
180 .setItemTitle(1, LONG_TITLE)
181 .setItemTitle(2, LONG_TITLE)
182 .setItemTitle(3, LONG_TITLE)
183 .setItemTitle(4, LONG_TITLE));
184 assertLayout(2, 3);
185 }
186
187 public void test5VarietyItems() {
188 mActivity.setParams(new MenuScenario.Params()
189 .setNumItems(5)
190 .setItemTitle(0, LONG_TITLE)
191 .setItemTitle(1, SHORT_TITLE)
192 .setItemTitle(2, LONG_TITLE)
193 .setItemTitle(3, SHORT_TITLE)
194 .setItemTitle(4, LONG_TITLE));
195 assertLayout(2, 3);
196 }
197
198 public void test6LongItems() {
199 mActivity.setParams(new MenuScenario.Params()
200 .setNumItems(6)
201 .setItemTitle(0, LONG_TITLE)
202 .setItemTitle(1, LONG_TITLE)
203 .setItemTitle(2, LONG_TITLE)
204 .setItemTitle(3, LONG_TITLE)
205 .setItemTitle(4, LONG_TITLE)
206 .setItemTitle(5, LONG_TITLE));
207 assertLayout(3, 3);
208 }
209
210 public void test6ShortItems() {
211 mActivity.setParams(new MenuScenario.Params()
212 .setNumItems(6)
213 .setItemTitle(0, SHORT_TITLE)
214 .setItemTitle(1, SHORT_TITLE)
215 .setItemTitle(2, SHORT_TITLE)
216 .setItemTitle(3, SHORT_TITLE)
217 .setItemTitle(4, SHORT_TITLE)
218 .setItemTitle(5, SHORT_TITLE));
219 assertLayout(6);
220 }
221
222 public void test6VarietyItems() {
223 mActivity.setParams(new MenuScenario.Params()
224 .setNumItems(6)
225 .setItemTitle(0, SHORT_TITLE)
226 .setItemTitle(1, LONG_TITLE)
227 .setItemTitle(2, SHORT_TITLE)
228 .setItemTitle(3, LONG_TITLE)
229 .setItemTitle(4, SHORT_TITLE)
230 .setItemTitle(5, SHORT_TITLE));
231 assertLayout(3, 3);
232 }
233}