blob: 2a702035d7a8215d5b36a4e03db0cefe7a20faf0 [file] [log] [blame]
package com.xtremelabs.robolectric.res;
import static com.xtremelabs.robolectric.util.TestUtil.getSystemResourceDir;
import static com.xtremelabs.robolectric.util.TestUtil.resourceFile;
import java.util.ArrayList;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import android.content.ComponentName;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.MenuItem.OnMenuItemClickListener;
import com.xtremelabs.robolectric.R;
import com.xtremelabs.robolectric.Robolectric;
import com.xtremelabs.robolectric.WithTestDefaultsRunner;
import com.xtremelabs.robolectric.tester.android.view.TestMenuItem;
import com.xtremelabs.robolectric.util.I18nException;
@RunWith(WithTestDefaultsRunner.class)
public class MenuLoaderTest {
private MenuLoader menuLoader;
@Before
public void setUp() throws Exception {
ResourceExtractor resourceExtractor = new ResourceExtractor();
resourceExtractor.addLocalRClass(R.class);
resourceExtractor.addSystemRClass(android.R.class);
StringResourceLoader stringResourceLoader = new StringResourceLoader(resourceExtractor);
new DocumentLoader(stringResourceLoader).loadResourceXmlDir(resourceFile("res", "values"));
new DocumentLoader(stringResourceLoader).loadSystemResourceXmlDir(getSystemResourceDir("values"));
menuLoader = new MenuLoader(resourceExtractor, new AttrResourceLoader(resourceExtractor));
new DocumentLoader(menuLoader).loadResourceXmlDir(resourceFile("res", "menu"));
}
@After
public void tearDown() throws Exception {
}
@Test(expected=I18nException.class)
public void shouldThrowI18nExceptionOnMenuWithBareStrings() throws Exception {
Menu testMenu = new TestMenu();
menuLoader.setStrictI18n(true);
menuLoader.inflateMenu(Robolectric.application, R.menu.test, testMenu);
}
public class TestMenu implements Menu {
@Override
public MenuItem add(CharSequence title) {
return null;
}
@Override
public MenuItem add(int titleRes) {
return null;
}
@Override
public MenuItem add(int groupId, int itemId, int order,
CharSequence title) {
return null;
}
@Override
public MenuItem add(int groupId, int itemId, int order, int titleRes) {
return null;
}
@Override
public SubMenu addSubMenu(CharSequence title) {
return null;
}
@Override
public SubMenu addSubMenu(int titleRes) {
return null;
}
@Override
public SubMenu addSubMenu(int groupId, int itemId, int order,
CharSequence title) {
return null;
}
@Override
public SubMenu addSubMenu(int groupId, int itemId, int order,
int titleRes) {
return null;
}
@Override
public int addIntentOptions(int groupId, int itemId, int order,
ComponentName caller, Intent[] specifics, Intent intent,
int flags, MenuItem[] outSpecificItems) {
return 0;
}
@Override
public void removeItem(int id) {
}
@Override
public void removeGroup(int groupId) {
}
@Override
public void clear() {
}
@Override
public void setGroupCheckable(int group, boolean checkable,
boolean exclusive) {
}
@Override
public void setGroupVisible(int group, boolean visible) {
}
@Override
public void setGroupEnabled(int group, boolean enabled) {
}
@Override
public boolean hasVisibleItems() {
return false;
}
@Override
public MenuItem findItem(int id) {
return null;
}
@Override
public int size() {
return 0;
}
@Override
public MenuItem getItem(int index) {
return null;
}
@Override
public void close() {
}
@Override
public boolean performShortcut(int keyCode, KeyEvent event, int flags) {
return false;
}
@Override
public boolean isShortcutKey(int keyCode, KeyEvent event) {
return false;
}
@Override
public boolean performIdentifierAction(int id, int flags) {
return false;
}
@Override
public void setQwertyMode(boolean isQwerty) {
}
}
}