Home | History | Annotate | Download | only in menu
      1 /**
      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 
     17 package android.view.menu;
     18 
     19 import android.util.KeyUtils;
     20 import com.android.internal.view.menu.IconMenuView;
     21 import com.android.internal.view.menu.MenuBuilder;
     22 
     23 import android.content.pm.ActivityInfo;
     24 import android.test.ActivityInstrumentationTestCase;
     25 
     26 public 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() {
     33         super("com.android.frameworks.coretests", MenuLayoutLandscape.class);
     34     }
     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         /* TODO These need to be rewritten to account for presenters that an activity
     63          * does not have access to.
     64         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         }
     75          */
     76     }
     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 }
    234