MenuItem.getIcon should return the drawable from setIcon.

Fixes #1173. Closes #1174.
diff --git a/src/main/java/org/robolectric/tester/android/view/TestMenuItem.java b/src/main/java/org/robolectric/tester/android/view/TestMenuItem.java
index 3f7f639..4ad9637 100644
--- a/src/main/java/org/robolectric/tester/android/view/TestMenuItem.java
+++ b/src/main/java/org/robolectric/tester/android/view/TestMenuItem.java
@@ -19,7 +19,7 @@
   private boolean visible = true;
   private boolean expanded = false;
   private OnMenuItemClickListener menuItemClickListener;
-  public int iconRes;
+  public Drawable icon;
   private Intent intent;
   private SubMenu subMenu;
   private View actionView;
@@ -27,11 +27,9 @@
   private int order;
 
   public TestMenuItem() {
-    super();
   }
 
   public TestMenuItem(int itemId) {
-    super();
     this.itemId = itemId;
   }
 
@@ -90,18 +88,19 @@
 
   @Override
   public MenuItem setIcon(Drawable icon) {
+    this.icon = icon;
     return this;
   }
 
   @Override
   public MenuItem setIcon(int iconRes) {
-    this.iconRes = iconRes;
+    this.icon = iconRes == 0 ? null : Robolectric.application.getResources().getDrawable(iconRes);
     return this;
   }
 
   @Override
   public Drawable getIcon() {
-    return null;
+    return this.icon;
   }
 
   @Override
diff --git a/src/test/java/org/robolectric/tester/android/view/MenuItemTest.java b/src/test/java/org/robolectric/tester/android/view/MenuItemTest.java
index dbbfcb5..414c43a 100644
--- a/src/test/java/org/robolectric/tester/android/view/MenuItemTest.java
+++ b/src/test/java/org/robolectric/tester/android/view/MenuItemTest.java
@@ -1,16 +1,18 @@
 package org.robolectric.tester.android.view;
 
+import android.graphics.drawable.Drawable;
 import android.view.View;
 import org.junit.Before;
 import org.junit.Test;
 import android.view.MenuItem;
 import org.junit.runner.RunWith;
+import org.robolectric.R;
 import org.robolectric.Robolectric;
-import org.robolectric.RobolectricTestRunner;
+import org.robolectric.TestRunners;
 
 import static org.fest.assertions.api.Assertions.assertThat;
 
-@RunWith(RobolectricTestRunner.class)
+@RunWith(TestRunners.WithDefaults.class)
 public class MenuItemTest {
   private MenuItem item;
   private TestOnActionExpandListener listener;
@@ -128,6 +130,34 @@
   }
 
   @Test
+  public void setIcon_shouldNullifyOnZero() throws Exception {
+    Drawable expectedDrawable = Robolectric.application.getResources().getDrawable(R.drawable.an_image);
+    assertThat(expectedDrawable).isNotNull();
+    assertThat(item.getIcon()).isNull();
+    item.setIcon(R.drawable.an_image);
+    assertThat(item.getIcon()).isEqualTo(expectedDrawable);
+    item.setIcon(0);
+    assertThat(item.getIcon()).isNull();
+  }
+
+  @Test
+  public void getIcon_shouldReturnDrawableFromSetIconDrawable() throws Exception {
+    Drawable testDrawable = Robolectric.application.getResources().getDrawable(R.drawable.an_image);
+    assertThat(testDrawable).isNotNull();
+    assertThat(item.getIcon()).isNull();
+    item.setIcon(testDrawable);
+    assertThat(item.getIcon()).isSameAs(testDrawable);
+  }
+
+  @Test
+  public void getIcon_shouldReturnDrawableFromSetIconResourceId() throws Exception {
+    assertThat(item.getIcon()).isNull();
+    item.setIcon(R.drawable.an_other_image);
+    Drawable expectedDrawable = Robolectric.application.getResources().getDrawable(R.drawable.an_other_image);
+    assertThat(item.getIcon()).isEqualTo(expectedDrawable);
+  }
+
+  @Test
   public void setOnActionExpandListener_shouldReturnMenuItem() throws Exception {
     assertThat(item.setOnActionExpandListener(listener)).isSameAs(item);
   }