package org.robolectric.fakes;
import android.app.Activity;
import android.content.Intent;
import android.view.MenuItem;
import junit.framework.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.TestRunners;
import org.robolectric.shadows.ShadowApplication;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.assertj.core.api.Assertions.assertThat;
@RunWith(TestRunners.SelfTest.class)
public class RoboMenuTest {
@Test
public void addAndRemoveMenuItems() {
RoboMenu menu = new RoboMenu(RuntimeEnvironment.application);
menu.add(9, 10, 0, org.robolectric.R.string.ok);
RoboMenuItem item = (RoboMenuItem) menu.findItem(10);
assertThat(item.getGroupId()).isEqualTo(9);
assertThat(item.getItemId()).isEqualTo(10);
menu.removeItem(10);
item = (RoboMenuItem) menu.findItem(10);
Assert.assertNull(item);
}
@Test
public void addSubMenu() {
RoboMenu menu = new RoboMenu(RuntimeEnvironment.application);
menu.addSubMenu(9, 10, 0, org.robolectric.R.string.ok);
RoboMenuItem item = (RoboMenuItem) menu.findItem(10);
assertThat(item.getGroupId()).isEqualTo(9);
assertThat(item.getItemId()).isEqualTo(10);
}
@Test
public void clickWithIntent() {
RoboMenu menu = new RoboMenu(RuntimeEnvironment.application);
menu.add(0, 10, 0, org.robolectric.R.string.ok);
RoboMenuItem item = (RoboMenuItem) menu.findItem(10);
Assert.assertNull(item.getIntent());
Intent intent = new Intent(RuntimeEnvironment.application, Activity.class);
item.setIntent(intent);
item.click();
Assert.assertNotNull(item);
Intent startedIntent = ShadowApplication.getInstance().getNextStartedActivity();
assertNotNull(startedIntent);
}
@Test
public void add_AddsItemsInOrder() {
RoboMenu menu = new RoboMenu(RuntimeEnvironment.application);
menu.add(0, 0, 1, "greeting");
menu.add(0, 0, 0, "hell0");
menu.add(0, 0, 0, "hello");
MenuItem item = menu.getItem(0);
assertEquals("hell0", item.getTitle());
item = menu.getItem(1);
assertEquals("hello", item.getTitle());
item = menu.getItem(2);
assertEquals("greeting", item.getTitle());
}
}