package com.xtremelabs.robolectric.shadows; import android.view.KeyEvent; import android.view.View; import android.widget.Gallery; import com.xtremelabs.robolectric.WithTestDefaultsRunner; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.sameInstance; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertTrue; @RunWith(WithTestDefaultsRunner.class) public class GalleryTest { private Gallery gallery; private TestOnKeyListener listener; private KeyEvent event; @Before public void setUp() throws Exception { gallery = new Gallery(null); listener = new TestOnKeyListener(); gallery.setOnKeyListener(listener); event = new KeyEvent(1, 2); } @Test public void onKeyDown_dPadRightShouldTriggerKeyEventDPadRight() throws Exception { assertTrue(gallery.onKeyDown(KeyEvent.KEYCODE_DPAD_RIGHT, event)); assertThat(listener.keyCode, equalTo(KeyEvent.KEYCODE_DPAD_RIGHT)); assertThat((Gallery) listener.view, sameInstance(gallery)); assertThat(listener.event, sameInstance(event)); } @Test public void onKeyDown_dPadLeftShouldTriggerKeyEventListener() throws Exception { assertTrue(gallery.onKeyDown(KeyEvent.KEYCODE_DPAD_RIGHT, event)); assertThat(listener.keyCode, equalTo(KeyEvent.KEYCODE_DPAD_RIGHT)); assertThat((Gallery)listener.view, sameInstance(gallery)); assertThat(listener.event, sameInstance(event)); } private static class TestOnKeyListener implements View.OnKeyListener { View view; int keyCode; KeyEvent event; @Override public boolean onKey(View view, int keyCode, KeyEvent event) { this.view = view; this.keyCode = keyCode; this.event = event; return false; } } }