1db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphreypackage com.xtremelabs.robolectric.shadows;
2db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey
35f52066979dd3a3eb6a0df2cd360611c50fb31ecRyan Richardimport android.app.Activity;
45f52066979dd3a3eb6a0df2cd360611c50fb31ecRyan Richardimport android.preference.ListPreference;
55f52066979dd3a3eb6a0df2cd360611c50fb31ecRyan Richardimport com.xtremelabs.robolectric.R;
65f52066979dd3a3eb6a0df2cd360611c50fb31ecRyan Richardimport com.xtremelabs.robolectric.Robolectric;
75f52066979dd3a3eb6a0df2cd360611c50fb31ecRyan Richardimport com.xtremelabs.robolectric.WithTestDefaultsRunner;
85f52066979dd3a3eb6a0df2cd360611c50fb31ecRyan Richardimport org.junit.Before;
95f52066979dd3a3eb6a0df2cd360611c50fb31ecRyan Richardimport org.junit.Test;
105f52066979dd3a3eb6a0df2cd360611c50fb31ecRyan Richardimport org.junit.runner.RunWith;
115f52066979dd3a3eb6a0df2cd360611c50fb31ecRyan Richard
128c7d7133d55c755eff45566d1b2ee074300d6d64Michael Portuesiimport static org.hamcrest.CoreMatchers.equalTo;
13db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphreyimport static org.hamcrest.CoreMatchers.instanceOf;
14db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphreyimport static org.hamcrest.CoreMatchers.notNullValue;
15db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphreyimport static org.hamcrest.CoreMatchers.nullValue;
16db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphreyimport static org.hamcrest.CoreMatchers.sameInstance;
17db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphreyimport static org.junit.Assert.assertThat;
18db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey
19db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey@RunWith(WithTestDefaultsRunner.class)
20db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphreypublic class ListPreferenceTest {
21db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey
22db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	private ListPreference listPreference;
23db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	private ShadowListPreference shadow;
24db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey
25db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	@Before
26db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	public void setUp() throws Exception {
27db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey		listPreference = new ListPreference(new Activity());
28db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey		shadow = Robolectric.shadowOf(listPreference);
29db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey    }
30db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey
31db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	@Test
32db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	public void shouldInheritFromDialogPreference() {
33db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey		assertThat(shadow, instanceOf(ShadowDialogPreference.class));
34db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	}
35db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey
36db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	@Test
37db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	public void shouldHaveEntries() {
38db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey		CharSequence[] entries = { "this", "is", "only", "a", "test" };
39db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey
40db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey		assertThat(listPreference.getEntries(), nullValue());
41db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey		listPreference.setEntries(entries);
42db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey		assertThat(listPreference.getEntries(), sameInstance(entries));
43db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	}
44db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey
45db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	@Test
46db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	public void shouldSetEntriesByResourceId() {
47db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey		assertThat(listPreference.getEntries(), nullValue());
48db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey		listPreference.setEntries(R.array.greetings);
49db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey		assertThat(listPreference.getEntries(), notNullValue());
50db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	}
51db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey
52db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	@Test
53db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	public void shouldHaveEntryValues() {
54db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey		CharSequence[] entryValues = { "this", "is", "only", "a", "test" };
55db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey
56db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey		assertThat(listPreference.getEntryValues(), nullValue());
57db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey		listPreference.setEntryValues(entryValues);
58db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey		assertThat(listPreference.getEntryValues(), sameInstance(entryValues));
59db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	}
60db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey
61db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	@Test
62db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	public void shouldSetEntryValuesByResourceId() {
63db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey		assertThat(listPreference.getEntryValues(), nullValue());
64db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey		listPreference.setEntryValues(R.array.greetings);
65db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey		assertThat(listPreference.getEntryValues(), notNullValue());
66db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	}
678c7d7133d55c755eff45566d1b2ee074300d6d64Michael Portuesi
688c7d7133d55c755eff45566d1b2ee074300d6d64Michael Portuesi	@Test
698c7d7133d55c755eff45566d1b2ee074300d6d64Michael Portuesi	public void shouldSetValue() {
708c7d7133d55c755eff45566d1b2ee074300d6d64Michael Portuesi		assertThat(listPreference.getValue(), nullValue());
718c7d7133d55c755eff45566d1b2ee074300d6d64Michael Portuesi		listPreference.setValue("testing");
728c7d7133d55c755eff45566d1b2ee074300d6d64Michael Portuesi		assertThat(listPreference.getValue(), equalTo("testing"));
738c7d7133d55c755eff45566d1b2ee074300d6d64Michael Portuesi	}
74db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey}
75