15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)package com.xtremelabs.robolectric.shadows;
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import android.app.ListActivity;
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import android.view.View;
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import android.widget.ListAdapter;
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import android.widget.ListView;
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import com.xtremelabs.robolectric.Robolectric;
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import com.xtremelabs.robolectric.WithTestDefaultsRunner;
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import org.junit.Test;
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import org.junit.runner.RunWith;
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
12868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)import static junit.framework.Assert.assertTrue;
13868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)import static org.hamcrest.CoreMatchers.is;
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import static org.hamcrest.CoreMatchers.notNullValue;
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)import static org.hamcrest.CoreMatchers.sameInstance;
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)import static org.hamcrest.MatcherAssert.assertThat;
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)@RunWith(WithTestDefaultsRunner.class)
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)public class ListActivityTest {
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    @Test
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    public void shouldSupportSettingAndGettingListAdapter(){
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        ListActivity listActivity = new ListActivity();
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        ListAdapter adapter = new CountingAdapter(5);
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        listActivity.setListAdapter(adapter);
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assertThat(listActivity.getListAdapter(), is(notNullValue()));
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    @Test
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    public void shouldSupportOnItemClick() throws Exception {
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        final boolean[] clicked = new boolean[1];
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        ListActivity listActivity = new ListActivity() {
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            @Override
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            protected void onListItemClick(ListView l, View v, int position, long id) {
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                clicked[0] = true;
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            }
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        };
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        listActivity.setContentView(new ListView(null));
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        listActivity.setListAdapter(new CountingAdapter(5));
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        Robolectric.shadowOf(listActivity.getListView()).performItemClick(0);
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assertTrue(clicked[0]);
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    @Test
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    public void shouldSetAdapterOnListView() throws Exception {
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        ListActivity listActivity = new ListActivity();
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        ListAdapter adapter = new CountingAdapter(5);
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        final ListView listView = new ListView(null);
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        listActivity.setContentView(listView);
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        listActivity.setListAdapter(adapter);
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        assertThat(listView.getAdapter(), sameInstance(adapter));
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)