147fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultzpackage com.xtremelabs.robolectric.shadows; 247fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz 347fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultzimport android.view.KeyEvent; 447fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultzimport android.view.View; 547fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultzimport android.widget.Gallery; 647fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultzimport com.xtremelabs.robolectric.WithTestDefaultsRunner; 747fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultzimport org.junit.Before; 847fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultzimport org.junit.Test; 947fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultzimport org.junit.runner.RunWith; 1047fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz 1147fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultzimport static org.hamcrest.CoreMatchers.equalTo; 1247fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultzimport static org.hamcrest.CoreMatchers.sameInstance; 1347fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultzimport static org.hamcrest.MatcherAssert.assertThat; 1447fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultzimport static org.junit.Assert.assertTrue; 1547fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz 1647fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz@RunWith(WithTestDefaultsRunner.class) 1747fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultzpublic class GalleryTest { 1847fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz private Gallery gallery; 1947fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz private TestOnKeyListener listener; 2047fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz private KeyEvent event; 2147fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz 2247fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz @Before 2347fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz public void setUp() throws Exception { 2447fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz gallery = new Gallery(null); 2547fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz listener = new TestOnKeyListener(); 2647fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz gallery.setOnKeyListener(listener); 2747fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz event = new KeyEvent(1, 2); 2847fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz } 2947fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz 3047fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz @Test 3147fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz public void onKeyDown_dPadRightShouldTriggerKeyEventDPadRight() throws Exception { 3247fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz assertTrue(gallery.onKeyDown(KeyEvent.KEYCODE_DPAD_RIGHT, event)); 3347fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz assertThat(listener.keyCode, equalTo(KeyEvent.KEYCODE_DPAD_RIGHT)); 3447fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz assertThat((Gallery) listener.view, sameInstance(gallery)); 3547fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz assertThat(listener.event, sameInstance(event)); 3647fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz } 3747fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz 3847fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz @Test 3947fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz public void onKeyDown_dPadLeftShouldTriggerKeyEventListener() throws Exception { 4047fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz assertTrue(gallery.onKeyDown(KeyEvent.KEYCODE_DPAD_RIGHT, event)); 4147fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz assertThat(listener.keyCode, equalTo(KeyEvent.KEYCODE_DPAD_RIGHT)); 4247fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz assertThat((Gallery)listener.view, sameInstance(gallery)); 4347fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz assertThat(listener.event, sameInstance(event)); 4447fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz } 4547fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz 4647fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz private static class TestOnKeyListener implements View.OnKeyListener { 4747fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz View view; 4847fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz int keyCode; 4947fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz KeyEvent event; 5047fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz 5147fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz @Override 5247fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz public boolean onKey(View view, int keyCode, KeyEvent event) { 5347fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz this.view = view; 5447fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz this.keyCode = keyCode; 5547fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz this.event = event; 5647fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz return false; 5747fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz } 5847fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz } 5947fa620f97960cf74f08e427dc608f693fbef7f1Tim Labeeuw & Tyler Schultz} 60