1package com.xtremelabs.robolectric.shadows;
2
3import android.app.ListActivity;
4import android.view.View;
5import android.widget.ListAdapter;
6import android.widget.ListView;
7import com.xtremelabs.robolectric.Robolectric;
8import com.xtremelabs.robolectric.WithTestDefaultsRunner;
9import org.junit.Test;
10import org.junit.runner.RunWith;
11
12import static junit.framework.Assert.assertTrue;
13import static org.hamcrest.CoreMatchers.is;
14import static org.hamcrest.CoreMatchers.notNullValue;
15import static org.hamcrest.CoreMatchers.sameInstance;
16import static org.hamcrest.MatcherAssert.assertThat;
17
18@RunWith(WithTestDefaultsRunner.class)
19public class ListActivityTest {
20
21    @Test
22    public void shouldSupportSettingAndGettingListAdapter(){
23        ListActivity listActivity = new ListActivity();
24        ListAdapter adapter = new CountingAdapter(5);
25        listActivity.setListAdapter(adapter);
26
27        assertThat(listActivity.getListAdapter(), is(notNullValue()));
28    }
29
30    @Test
31    public void shouldSupportOnItemClick() throws Exception {
32        final boolean[] clicked = new boolean[1];
33        ListActivity listActivity = new ListActivity() {
34            @Override
35            protected void onListItemClick(ListView l, View v, int position, long id) {
36                clicked[0] = true;
37            }
38        };
39        listActivity.setContentView(new ListView(null));
40        listActivity.setListAdapter(new CountingAdapter(5));
41        Robolectric.shadowOf(listActivity.getListView()).performItemClick(0);
42        assertTrue(clicked[0]);
43    }
44
45    @Test
46    public void shouldSetAdapterOnListView() throws Exception {
47        ListActivity listActivity = new ListActivity();
48        ListAdapter adapter = new CountingAdapter(5);
49        final ListView listView = new ListView(null);
50        listActivity.setContentView(listView);
51        listActivity.setListAdapter(adapter);
52        assertThat(listView.getAdapter(), sameInstance(adapter));
53    }
54}
55