1 package com.xtremelabs.robolectric.shadows; 2 3 import android.view.KeyEvent; 4 import android.view.View; 5 import android.widget.Gallery; 6 import com.xtremelabs.robolectric.WithTestDefaultsRunner; 7 import org.junit.Before; 8 import org.junit.Test; 9 import org.junit.runner.RunWith; 10 11 import static org.hamcrest.CoreMatchers.equalTo; 12 import static org.hamcrest.CoreMatchers.sameInstance; 13 import static org.hamcrest.MatcherAssert.assertThat; 14 import static org.junit.Assert.assertTrue; 15 16 @RunWith(WithTestDefaultsRunner.class) 17 public class GalleryTest { 18 private Gallery gallery; 19 private TestOnKeyListener listener; 20 private KeyEvent event; 21 22 @Before setUp()23 public void setUp() throws Exception { 24 gallery = new Gallery(null); 25 listener = new TestOnKeyListener(); 26 gallery.setOnKeyListener(listener); 27 event = new KeyEvent(1, 2); 28 } 29 30 @Test onKeyDown_dPadRightShouldTriggerKeyEventDPadRight()31 public void onKeyDown_dPadRightShouldTriggerKeyEventDPadRight() throws Exception { 32 assertTrue(gallery.onKeyDown(KeyEvent.KEYCODE_DPAD_RIGHT, event)); 33 assertThat(listener.keyCode, equalTo(KeyEvent.KEYCODE_DPAD_RIGHT)); 34 assertThat((Gallery) listener.view, sameInstance(gallery)); 35 assertThat(listener.event, sameInstance(event)); 36 } 37 38 @Test onKeyDown_dPadLeftShouldTriggerKeyEventListener()39 public void onKeyDown_dPadLeftShouldTriggerKeyEventListener() throws Exception { 40 assertTrue(gallery.onKeyDown(KeyEvent.KEYCODE_DPAD_RIGHT, event)); 41 assertThat(listener.keyCode, equalTo(KeyEvent.KEYCODE_DPAD_RIGHT)); 42 assertThat((Gallery)listener.view, sameInstance(gallery)); 43 assertThat(listener.event, sameInstance(event)); 44 } 45 46 private static class TestOnKeyListener implements View.OnKeyListener { 47 View view; 48 int keyCode; 49 KeyEvent event; 50 51 @Override onKey(View view, int keyCode, KeyEvent event)52 public boolean onKey(View view, int keyCode, KeyEvent event) { 53 this.view = view; 54 this.keyCode = keyCode; 55 this.event = event; 56 return false; 57 } 58 } 59 } 60