1package com.xtremelabs.robolectric.tester.android.view;
2
3import static org.junit.Assert.assertNotNull;
4import junit.framework.Assert;
5
6import org.junit.Test;
7import org.junit.runner.RunWith;
8
9import com.xtremelabs.robolectric.Robolectric;
10import com.xtremelabs.robolectric.WithTestDefaultsRunner;
11import com.xtremelabs.robolectric.shadows.ShadowActivity;
12import com.xtremelabs.robolectric.tester.android.view.TestMenuItem;
13
14import android.app.Activity;
15import android.content.Intent;
16
17
18@RunWith(WithTestDefaultsRunner.class)
19public class TestMenuTest {
20
21    @Test
22    public void addAndRemoveMenuItems() {
23        TestMenu testMenu = new TestMenu(new MyActivity());
24        //TestMenuItem testMenuItem = new TestMenuItem(R.id.menu_about);
25        testMenu.add(0, 10,0,0);
26
27        TestMenuItem testMenuItem = (TestMenuItem) testMenu.findItem(10);
28
29        Assert.assertEquals(10, testMenuItem.getItemId());
30
31        testMenu.removeItem(10);
32
33        testMenuItem = (TestMenuItem) testMenu.findItem(10);
34        Assert.assertNull(testMenuItem);
35
36    }
37
38    @Test
39    public void clickWithIntent() {
40    	MyActivity activity = new MyActivity();
41
42    	TestMenu testMenu = new TestMenu(activity);
43        testMenu.add(0, 10,0,0);
44
45        TestMenuItem testMenuItem = (TestMenuItem) testMenu.findItem(10);
46        Assert.assertNull(testMenuItem.getIntent());
47
48        Intent intent = new Intent(activity, MyActivity.class);
49        testMenuItem.setIntent(intent);
50        testMenuItem.click();
51
52        Assert.assertNotNull(testMenuItem);
53
54        ShadowActivity shadowActivity = Robolectric.shadowOf(activity);
55        Intent startedIntent = shadowActivity.getNextStartedActivity();
56    	assertNotNull(startedIntent);
57    }
58
59    private static class MyActivity extends Activity {
60        @Override protected void onDestroy() {
61            super.onDestroy();
62        }
63    }
64
65}
66