Home | History | Annotate | Download | only in res
      1 package com.xtremelabs.robolectric.res;
      2 
      3 
      4 import static com.xtremelabs.robolectric.util.TestUtil.getSystemResourceDir;
      5 import static com.xtremelabs.robolectric.util.TestUtil.resourceFile;
      6 
      7 import java.util.ArrayList;
      8 
      9 import org.junit.After;
     10 import org.junit.Before;
     11 import org.junit.Test;
     12 import org.junit.runner.RunWith;
     13 
     14 import android.content.ComponentName;
     15 import android.content.Intent;
     16 import android.graphics.drawable.Drawable;
     17 import android.view.KeyEvent;
     18 import android.view.Menu;
     19 import android.view.MenuItem;
     20 import android.view.SubMenu;
     21 import android.view.ContextMenu.ContextMenuInfo;
     22 import android.view.MenuItem.OnMenuItemClickListener;
     23 
     24 import com.xtremelabs.robolectric.R;
     25 import com.xtremelabs.robolectric.Robolectric;
     26 import com.xtremelabs.robolectric.WithTestDefaultsRunner;
     27 import com.xtremelabs.robolectric.tester.android.view.TestMenuItem;
     28 import com.xtremelabs.robolectric.util.I18nException;
     29 
     30 @RunWith(WithTestDefaultsRunner.class)
     31 public class MenuLoaderTest {
     32 
     33 	private MenuLoader menuLoader;
     34 
     35 	@Before
     36 	public void setUp() throws Exception {
     37         ResourceExtractor resourceExtractor = new ResourceExtractor();
     38         resourceExtractor.addLocalRClass(R.class);
     39         resourceExtractor.addSystemRClass(android.R.class);
     40 
     41         StringResourceLoader stringResourceLoader = new StringResourceLoader(resourceExtractor);
     42         new DocumentLoader(stringResourceLoader).loadResourceXmlDir(resourceFile("res", "values"));
     43         new DocumentLoader(stringResourceLoader).loadSystemResourceXmlDir(getSystemResourceDir("values"));
     44 
     45         menuLoader = new MenuLoader(resourceExtractor, new AttrResourceLoader(resourceExtractor));
     46         new DocumentLoader(menuLoader).loadResourceXmlDir(resourceFile("res", "menu"));
     47 	}
     48 
     49 	@After
     50 	public void tearDown() throws Exception {
     51 	}
     52 
     53 	@Test(expected=I18nException.class)
     54 	public void shouldThrowI18nExceptionOnMenuWithBareStrings() throws Exception {
     55 		Menu testMenu = new TestMenu();
     56         menuLoader.setStrictI18n(true);
     57 		menuLoader.inflateMenu(Robolectric.application, R.menu.test, testMenu);
     58 	}
     59 
     60 	public class TestMenu implements Menu {
     61 		@Override
     62 		public MenuItem add(CharSequence title) {
     63 			return null;
     64 		}
     65 
     66 		@Override
     67 		public MenuItem add(int titleRes) {
     68 			return null;
     69 		}
     70 
     71 		@Override
     72 		public MenuItem add(int groupId, int itemId, int order,
     73 				CharSequence title) {
     74 			return null;
     75 		}
     76 
     77 		@Override
     78 		public MenuItem add(int groupId, int itemId, int order, int titleRes) {
     79 			return null;
     80 		}
     81 
     82 		@Override
     83 		public SubMenu addSubMenu(CharSequence title) {
     84 			return null;
     85 		}
     86 
     87 		@Override
     88 		public SubMenu addSubMenu(int titleRes) {
     89 			return null;
     90 		}
     91 
     92 		@Override
     93 		public SubMenu addSubMenu(int groupId, int itemId, int order,
     94 				CharSequence title) {
     95 			return null;
     96 		}
     97 
     98 		@Override
     99 		public SubMenu addSubMenu(int groupId, int itemId, int order,
    100 				int titleRes) {
    101 			return null;
    102 		}
    103 
    104 		@Override
    105 		public int addIntentOptions(int groupId, int itemId, int order,
    106 				ComponentName caller, Intent[] specifics, Intent intent,
    107 				int flags, MenuItem[] outSpecificItems) {
    108 			return 0;
    109 		}
    110 
    111 		@Override
    112 		public void removeItem(int id) {
    113 
    114 		}
    115 
    116 		@Override
    117 		public void removeGroup(int groupId) {
    118 
    119 		}
    120 
    121 		@Override
    122 		public void clear() {
    123 
    124 		}
    125 
    126 		@Override
    127 		public void setGroupCheckable(int group, boolean checkable,
    128 				boolean exclusive) {
    129 
    130 		}
    131 
    132 		@Override
    133 		public void setGroupVisible(int group, boolean visible) {
    134 
    135 		}
    136 
    137 		@Override
    138 		public void setGroupEnabled(int group, boolean enabled) {
    139 
    140 		}
    141 
    142 		@Override
    143 		public boolean hasVisibleItems() {
    144 			return false;
    145 		}
    146 
    147 		@Override
    148 		public MenuItem findItem(int id) {
    149 			return null;
    150 		}
    151 
    152 		@Override
    153 		public int size() {
    154 
    155 			return 0;
    156 		}
    157 
    158 		@Override
    159 		public MenuItem getItem(int index) {
    160 
    161 			return null;
    162 		}
    163 
    164 		@Override
    165 		public void close() {
    166 
    167 
    168 		}
    169 
    170 		@Override
    171 		public boolean performShortcut(int keyCode, KeyEvent event, int flags) {
    172 
    173 			return false;
    174 		}
    175 
    176 		@Override
    177 		public boolean isShortcutKey(int keyCode, KeyEvent event) {
    178 
    179 			return false;
    180 		}
    181 
    182 		@Override
    183 		public boolean performIdentifierAction(int id, int flags) {
    184 
    185 			return false;
    186 		}
    187 
    188 		@Override
    189 		public void setQwertyMode(boolean isQwerty) {
    190 
    191 
    192 		}
    193 	}
    194 }
    195