109231da6d922e91d30d06876521106f13230a791Peeyush Agarwal/* 209231da6d922e91d30d06876521106f13230a791Peeyush Agarwal * Copyright (C) 2016 The Android Open Source Project 309231da6d922e91d30d06876521106f13230a791Peeyush Agarwal * 409231da6d922e91d30d06876521106f13230a791Peeyush Agarwal * Licensed under the Apache License, Version 2.0 (the "License"); 509231da6d922e91d30d06876521106f13230a791Peeyush Agarwal * you may not use this file except in compliance with the License. 609231da6d922e91d30d06876521106f13230a791Peeyush Agarwal * You may obtain a copy of the License at 709231da6d922e91d30d06876521106f13230a791Peeyush Agarwal * 809231da6d922e91d30d06876521106f13230a791Peeyush Agarwal * http://www.apache.org/licenses/LICENSE-2.0 909231da6d922e91d30d06876521106f13230a791Peeyush Agarwal * 1009231da6d922e91d30d06876521106f13230a791Peeyush Agarwal * Unless required by applicable law or agreed to in writing, software 1109231da6d922e91d30d06876521106f13230a791Peeyush Agarwal * distributed under the License is distributed on an "AS IS" BASIS, 1209231da6d922e91d30d06876521106f13230a791Peeyush Agarwal * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1309231da6d922e91d30d06876521106f13230a791Peeyush Agarwal * See the License for the specific language governing permissions and 1409231da6d922e91d30d06876521106f13230a791Peeyush Agarwal * limitations under the License. 1509231da6d922e91d30d06876521106f13230a791Peeyush Agarwal */ 16ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikaspackage androidx.appcompat.view; 1709231da6d922e91d30d06876521106f13230a791Peeyush Agarwal 1809231da6d922e91d30d06876521106f13230a791Peeyush Agarwalimport static org.junit.Assert.assertEquals; 1909231da6d922e91d30d06876521106f13230a791Peeyush Agarwal 2009231da6d922e91d30d06876521106f13230a791Peeyush Agarwalimport android.support.test.filters.SmallTest; 2109231da6d922e91d30d06876521106f13230a791Peeyush Agarwalimport android.support.test.rule.ActivityTestRule; 2209231da6d922e91d30d06876521106f13230a791Peeyush Agarwalimport android.support.test.runner.AndroidJUnit4; 2309231da6d922e91d30d06876521106f13230a791Peeyush Agarwalimport android.view.KeyEvent; 2409231da6d922e91d30d06876521106f13230a791Peeyush Agarwalimport android.view.Menu; 2509231da6d922e91d30d06876521106f13230a791Peeyush Agarwalimport android.view.MenuInflater; 2609231da6d922e91d30d06876521106f13230a791Peeyush Agarwal 273de8a4e8305507475d7890205184946a25cf45e7Aurimas Liutikasimport androidx.appcompat.test.R; 283de8a4e8305507475d7890205184946a25cf45e7Aurimas Liutikasimport androidx.appcompat.widget.PopupMenu; 293de8a4e8305507475d7890205184946a25cf45e7Aurimas Liutikasimport androidx.core.internal.view.SupportMenuItem; 303de8a4e8305507475d7890205184946a25cf45e7Aurimas Liutikas 3109231da6d922e91d30d06876521106f13230a791Peeyush Agarwalimport org.junit.Before; 3209231da6d922e91d30d06876521106f13230a791Peeyush Agarwalimport org.junit.Rule; 3309231da6d922e91d30d06876521106f13230a791Peeyush Agarwalimport org.junit.Test; 3409231da6d922e91d30d06876521106f13230a791Peeyush Agarwalimport org.junit.runner.RunWith; 3509231da6d922e91d30d06876521106f13230a791Peeyush Agarwal 3609231da6d922e91d30d06876521106f13230a791Peeyush Agarwal/** 3709231da6d922e91d30d06876521106f13230a791Peeyush Agarwal * Test SupportMenuInflater 3809231da6d922e91d30d06876521106f13230a791Peeyush Agarwal */ 3909231da6d922e91d30d06876521106f13230a791Peeyush Agarwal@SmallTest 4009231da6d922e91d30d06876521106f13230a791Peeyush Agarwal@RunWith(AndroidJUnit4.class) 4109231da6d922e91d30d06876521106f13230a791Peeyush Agarwalpublic class SupportMenuInflaterTest { 4209231da6d922e91d30d06876521106f13230a791Peeyush Agarwal 4309231da6d922e91d30d06876521106f13230a791Peeyush Agarwal private SupportMenuInflaterTestActivity mActivity; 4409231da6d922e91d30d06876521106f13230a791Peeyush Agarwal private MenuInflater mMenuInflater; 4509231da6d922e91d30d06876521106f13230a791Peeyush Agarwal private Menu mMenu; 4609231da6d922e91d30d06876521106f13230a791Peeyush Agarwal 4709231da6d922e91d30d06876521106f13230a791Peeyush Agarwal @Rule 4809231da6d922e91d30d06876521106f13230a791Peeyush Agarwal public ActivityTestRule<SupportMenuInflaterTestActivity> mActivityTestRule = 4909231da6d922e91d30d06876521106f13230a791Peeyush Agarwal new ActivityTestRule<>(SupportMenuInflaterTestActivity.class); 5009231da6d922e91d30d06876521106f13230a791Peeyush Agarwal 5109231da6d922e91d30d06876521106f13230a791Peeyush Agarwal @Before 5209231da6d922e91d30d06876521106f13230a791Peeyush Agarwal public void setup() { 5309231da6d922e91d30d06876521106f13230a791Peeyush Agarwal mActivity = mActivityTestRule.getActivity(); 5409231da6d922e91d30d06876521106f13230a791Peeyush Agarwal mMenuInflater = mActivity.getMenuInflater(); 5509231da6d922e91d30d06876521106f13230a791Peeyush Agarwal mMenu = new PopupMenu(mActivity, null).getMenu(); 5609231da6d922e91d30d06876521106f13230a791Peeyush Agarwal } 5709231da6d922e91d30d06876521106f13230a791Peeyush Agarwal 5809231da6d922e91d30d06876521106f13230a791Peeyush Agarwal @Test 5909231da6d922e91d30d06876521106f13230a791Peeyush Agarwal public void testInflateFromXml() { 6009231da6d922e91d30d06876521106f13230a791Peeyush Agarwal mMenuInflater.inflate(R.menu.shortcut, mMenu); 6109231da6d922e91d30d06876521106f13230a791Peeyush Agarwal SupportMenuItem mMenuItem; 6209231da6d922e91d30d06876521106f13230a791Peeyush Agarwal 6309231da6d922e91d30d06876521106f13230a791Peeyush Agarwal mMenuItem = (SupportMenuItem) mMenu.findItem(R.id.no_modifiers); 6409231da6d922e91d30d06876521106f13230a791Peeyush Agarwal assertEquals('a', mMenuItem.getAlphabeticShortcut()); 6509231da6d922e91d30d06876521106f13230a791Peeyush Agarwal assertEquals(KeyEvent.META_CTRL_ON, mMenuItem.getAlphabeticModifiers()); 6609231da6d922e91d30d06876521106f13230a791Peeyush Agarwal assertEquals('1', mMenuItem.getNumericShortcut()); 6709231da6d922e91d30d06876521106f13230a791Peeyush Agarwal assertEquals(KeyEvent.META_CTRL_ON, mMenuItem.getNumericModifiers()); 6809231da6d922e91d30d06876521106f13230a791Peeyush Agarwal 6909231da6d922e91d30d06876521106f13230a791Peeyush Agarwal mMenuItem = (SupportMenuItem) mMenu.findItem(R.id.default_modifiers); 7009231da6d922e91d30d06876521106f13230a791Peeyush Agarwal assertEquals('b', mMenuItem.getAlphabeticShortcut()); 7109231da6d922e91d30d06876521106f13230a791Peeyush Agarwal assertEquals(KeyEvent.META_CTRL_ON, mMenuItem.getAlphabeticModifiers()); 7209231da6d922e91d30d06876521106f13230a791Peeyush Agarwal assertEquals('2', mMenuItem.getNumericShortcut()); 7309231da6d922e91d30d06876521106f13230a791Peeyush Agarwal assertEquals(KeyEvent.META_CTRL_ON, mMenuItem.getNumericModifiers()); 7409231da6d922e91d30d06876521106f13230a791Peeyush Agarwal 7509231da6d922e91d30d06876521106f13230a791Peeyush Agarwal mMenuItem = (SupportMenuItem) mMenu.findItem(R.id.single_modifier); 7609231da6d922e91d30d06876521106f13230a791Peeyush Agarwal assertEquals('c', mMenuItem.getAlphabeticShortcut()); 7709231da6d922e91d30d06876521106f13230a791Peeyush Agarwal assertEquals(KeyEvent.META_SHIFT_ON, mMenuItem.getAlphabeticModifiers()); 7809231da6d922e91d30d06876521106f13230a791Peeyush Agarwal assertEquals('3', mMenuItem.getNumericShortcut()); 7909231da6d922e91d30d06876521106f13230a791Peeyush Agarwal assertEquals(KeyEvent.META_SHIFT_ON, mMenuItem.getNumericModifiers()); 8009231da6d922e91d30d06876521106f13230a791Peeyush Agarwal 8109231da6d922e91d30d06876521106f13230a791Peeyush Agarwal mMenuItem = (SupportMenuItem) mMenu.findItem(R.id.multiple_modifiers); 8209231da6d922e91d30d06876521106f13230a791Peeyush Agarwal assertEquals('d', mMenuItem.getAlphabeticShortcut()); 8309231da6d922e91d30d06876521106f13230a791Peeyush Agarwal assertEquals(KeyEvent.META_CTRL_ON | KeyEvent.META_SHIFT_ON, 8409231da6d922e91d30d06876521106f13230a791Peeyush Agarwal mMenuItem.getAlphabeticModifiers()); 8509231da6d922e91d30d06876521106f13230a791Peeyush Agarwal assertEquals('4', mMenuItem.getNumericShortcut()); 8609231da6d922e91d30d06876521106f13230a791Peeyush Agarwal assertEquals(KeyEvent.META_CTRL_ON | KeyEvent.META_SHIFT_ON, 8709231da6d922e91d30d06876521106f13230a791Peeyush Agarwal mMenuItem.getNumericModifiers()); 8809231da6d922e91d30d06876521106f13230a791Peeyush Agarwal } 8909231da6d922e91d30d06876521106f13230a791Peeyush Agarwal} 90