1079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphreypackage com.xtremelabs.robolectric.shadows;
2079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey
3ca8b4e7c96507b66cb816a3383c93b02d79a7685Tyler Schultzimport static org.hamcrest.CoreMatchers.equalTo;
465b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphreyimport static org.hamcrest.CoreMatchers.not;
565b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphreyimport static org.hamcrest.CoreMatchers.nullValue;
68a9faa25fa0a1bdc4f7acc09ac968da63540997cadriancowhamimport static org.hamcrest.CoreMatchers.notNullValue;
7ca8b4e7c96507b66cb816a3383c93b02d79a7685Tyler Schultzimport static org.hamcrest.CoreMatchers.sameInstance;
8ca8b4e7c96507b66cb816a3383c93b02d79a7685Tyler Schultzimport static org.junit.Assert.assertThat;
9079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey
108a9faa25fa0a1bdc4f7acc09ac968da63540997cadriancowhamimport java.util.HashMap;
118a9faa25fa0a1bdc4f7acc09ac968da63540997cadriancowham
124df0e9ff4f1c1088c4bf2b7eec39bfc8b999dcb1Rich Humphreyimport org.junit.Before;
134df0e9ff4f1c1088c4bf2b7eec39bfc8b999dcb1Rich Humphreyimport org.junit.Test;
144df0e9ff4f1c1088c4bf2b7eec39bfc8b999dcb1Rich Humphreyimport org.junit.runner.RunWith;
154df0e9ff4f1c1088c4bf2b7eec39bfc8b999dcb1Rich Humphrey
16079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphreyimport android.app.Activity;
17079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphreyimport android.content.Context;
188a9faa25fa0a1bdc4f7acc09ac968da63540997cadriancowhamimport android.content.Intent;
19079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphreyimport android.preference.Preference;
205773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphreyimport android.preference.Preference.OnPreferenceClickListener;
21079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphreyimport android.util.AttributeSet;
2265b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey
2365b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphreyimport com.xtremelabs.robolectric.R;
24079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphreyimport com.xtremelabs.robolectric.Robolectric;
25079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphreyimport com.xtremelabs.robolectric.WithTestDefaultsRunner;
268854adc03b66442ceb8edef27ca4f6993f792d23Michael Portuesiimport com.xtremelabs.robolectric.tester.android.util.TestAttributeSet;
27079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey
28079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey@RunWith(WithTestDefaultsRunner.class)
29079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphreypublic class PreferenceTest {
30079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey
3197f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey	private TestPreference preference;
32079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey	private ShadowPreference shadow;
334df0e9ff4f1c1088c4bf2b7eec39bfc8b999dcb1Rich Humphrey
344df0e9ff4f1c1088c4bf2b7eec39bfc8b999dcb1Rich Humphrey	private Context context;
354df0e9ff4f1c1088c4bf2b7eec39bfc8b999dcb1Rich Humphrey	private TestAttributeSet attrs;
364df0e9ff4f1c1088c4bf2b7eec39bfc8b999dcb1Rich Humphrey
3713c284c27d1e302a3564a8b4259922b64ca7678dRich Humphrey	private boolean clicked = false;
3813c284c27d1e302a3564a8b4259922b64ca7678dRich Humphrey
39079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey	@Before
40079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey	public void setup() {
41079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey		context = new Activity();
42079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey		attrs = new TestAttributeSet( new HashMap<String, String>() );
4397f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		preference = new TestPreference(context, attrs);
4497f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		shadow = Robolectric.shadowOf( preference );
45079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey	}
46079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey
47079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey	@Test
4838c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey	public void shouldConstruct() {
49079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey		int defStyle = 7;
50079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey
5197f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		preference = new TestPreference(context, attrs, defStyle);
5297f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		shadow = Robolectric.shadowOf(preference);
5397f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		assertThat(shadow.getContext(), sameInstance(context));
5497f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		assertThat(shadow.getAttrs(), sameInstance((AttributeSet)attrs));
5597f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		assertThat(shadow.getDefStyle(), equalTo(defStyle));
56079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey
5797f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		preference = new TestPreference(context, attrs);
5897f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		shadow = Robolectric.shadowOf(preference);
5997f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		assertThat(shadow.getContext(), sameInstance( context ));
6097f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		assertThat(shadow.getAttrs(), sameInstance((AttributeSet)attrs));
6197f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		assertThat(shadow.getDefStyle(), equalTo(0));
62ca3a400d69d3b4c697d78c4013d9d78b46053272Rich Humphrey
63ca3a400d69d3b4c697d78c4013d9d78b46053272Rich Humphrey		preference = new TestPreference(context);
64ca3a400d69d3b4c697d78c4013d9d78b46053272Rich Humphrey		shadow = Robolectric.shadowOf(preference);
65ca3a400d69d3b4c697d78c4013d9d78b46053272Rich Humphrey		assertThat(shadow.getContext(), sameInstance( context ));
66ca3a400d69d3b4c697d78c4013d9d78b46053272Rich Humphrey		assertThat(shadow.getAttrs(), nullValue());
67ca3a400d69d3b4c697d78c4013d9d78b46053272Rich Humphrey		assertThat(shadow.getDefStyle(), equalTo(0));
68ca3a400d69d3b4c697d78c4013d9d78b46053272Rich Humphrey}
6997f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey
7097f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey	@Test
7138c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey	public void shouldInitializeFromAttributes() {
7238c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey		String key = "key_value";
7338c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey		HashMap<String, String> hash = new HashMap<String, String>();
7438c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey		hash.put( "android:key", key );
7538c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey		attrs = new TestAttributeSet( hash );
7638c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey
7738c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey		preference = new TestPreference(context, attrs);
7838c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey		assertThat( preference.getKey(), equalTo(key) );
7938c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey	}
8038c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey
8138c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey	@Test
8265b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	public void shouldHaveAKey() {
8365b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey		String key = "key_value";
8465b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey
8538c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey		assertThat(preference.getKey(), nullValue());
8665b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey		preference.setKey(key);
8738c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey		assertThat(preference.getKey(), equalTo(key));
8865b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	}
8965b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey
9065b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	@Test
9165b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	public void shouldHaveATitle() {
9265b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey		CharSequence title = "Test Preference";
9365b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey
9438c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey		assertThat(preference.getTitle(), nullValue());
9565b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey		preference.setTitle(title);
9638c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey		assertThat(preference.getTitle(), equalTo(title));
9797f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey	}
9897f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey
9997f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey	@Test
100db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	public void shouldSetTitleByResourceId() {
10165b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey		CharSequence expected = "Hello";
10265b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey
10338c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey		assertThat(preference.getTitle(), not(equalTo(expected)));
10465b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey		preference.setTitle(R.string.hello);
10538c6ce36d70bb518e9a2a8e1b496ce4c225e8d44Rich Humphrey		assertThat(preference.getTitle(), equalTo(expected));
10665b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	}
107d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey
108d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey	@Test
109d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey	public void shouldHaveASummary() {
110d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey		CharSequence summary = "This is only a test.";
111d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey
112d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey		assertThat(preference.getSummary(), nullValue());
113d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey		preference.setSummary(summary);
114d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey		assertThat(preference.getSummary(), equalTo(summary));
115d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey	}
116d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey
117d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey	@Test
118db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	public void shouldSetSummaryByResourceId() {
119d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey		CharSequence expected = "Hello";
120d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey
121d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey		assertThat(preference.getSummary(), not(equalTo(expected)));
122d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey		preference.setSummary(R.string.hello);
123d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey		assertThat(preference.getSummary(), equalTo(expected));
124d876b7e662a061353260034129afd9605c7b8f40Rich Humphrey	}
125395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey
126395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey	@Test
127395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey	public void shouldRememberDefaultValue() {
128395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey		Object defaultValue = "Zoodles was here";
129395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey
130395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey		assertThat(shadow.getDefaultValue(), nullValue());
131395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey		preference.setDefaultValue(defaultValue);
132395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey		assertThat(shadow.getDefaultValue(), sameInstance(defaultValue));
133395ccc7732a27c21af50ae8dad634c80a2c0f14cRich Humphrey	}
1345ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey
1355ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey	@Test
1365ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey	public void shouldOrder() {
1375ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey		int[] values = { 0, 1, 2, 2011 };
1385ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey
1395ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey		for(int order : values) {
1405ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey			preference.setOrder(order);
1415ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey			assertThat(preference.getOrder(), equalTo(order));
1425ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey		}
1435ee82201f6e34eee062a12e1b1c57123b8cdc2f2Rich Humphrey	}
14465b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey
14565b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey	@Test
146860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey	public void shouldEnable() {
147860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey		assertThat(preference.isEnabled(), equalTo(true));
148860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey
149860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey		preference.setEnabled(false);
150860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey		assertThat(preference.isEnabled(), equalTo(false));
151860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey
152860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey		preference.setEnabled(true);
153860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey		assertThat(preference.isEnabled(), equalTo(true));
154860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey	}
155860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey
156860f8c39f4b14a23d103310d523c7855d40b8f58Rich Humphrey	@Test
157db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey	public void testPersistent() {
15897f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		boolean[] values = { true, false };
15997f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey
16097f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		for( boolean shouldPersist : values ) {
161db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey			shadow.setPersistent(shouldPersist);
16297f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey			assertThat(preference.shouldPersist(), equalTo(shouldPersist));
163db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey			assertThat(preference.isPersistent(), equalTo(shouldPersist));
16497f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		}
16597f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey	}
16697f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey
16797f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey	@Test
1685773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey	public void shouldPersistedIn() {
16997f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		int defaultValue = 727;
17097f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		int[] values = { 0, 1, 2, 2011 };
17197f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey
17297f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		for(int persistedInt : values) {
173c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey			shadow.persistInt(persistedInt);
17497f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey
175db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey			shadow.setPersistent(false);
17697f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey			assertThat(preference.getPersistedInt(defaultValue), equalTo(defaultValue));
17797f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey
178db942f0867e5e1f3bc97eb8facf686bdbca7c20aRich Humphrey			shadow.setPersistent(true);
17997f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey			assertThat(preference.getPersistedInt(defaultValue), equalTo(persistedInt));
18097f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		}
18197f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey	}
18297f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey
183c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey	@Test
1845773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey	public void shouldRememberOnClickListener() {
1855773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey		Preference.OnPreferenceClickListener onPreferenceClickListener = new OnPreferenceClickListener() {
1865773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey			@Override
1875773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey			public boolean onPreferenceClick(Preference preference) {
1885773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey				return true;
1895773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey			}
1905773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey		};
1915773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey
1925773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey		preference.setOnPreferenceClickListener(onPreferenceClickListener);
1935773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey		assertThat(shadow.getOnPreferenceClickListener(), sameInstance(onPreferenceClickListener));
1945773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey	}
1955773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey
1965773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey	@Test
19713c284c27d1e302a3564a8b4259922b64ca7678dRich Humphrey	public void shouldClickThroughToClickListener() {
1985773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey		Preference.OnPreferenceClickListener onPreferenceClickListener = new OnPreferenceClickListener() {
1995773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey			@Override
2005773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey			public boolean onPreferenceClick(Preference preference) {
20113c284c27d1e302a3564a8b4259922b64ca7678dRich Humphrey				clicked = true;
20213c284c27d1e302a3564a8b4259922b64ca7678dRich Humphrey				return true;
20313c284c27d1e302a3564a8b4259922b64ca7678dRich Humphrey			}
20413c284c27d1e302a3564a8b4259922b64ca7678dRich Humphrey		};
20513c284c27d1e302a3564a8b4259922b64ca7678dRich Humphrey		preference.setOnPreferenceClickListener(onPreferenceClickListener);
20613c284c27d1e302a3564a8b4259922b64ca7678dRich Humphrey
20713c284c27d1e302a3564a8b4259922b64ca7678dRich Humphrey		assertThat( clicked, equalTo(false));
20813c284c27d1e302a3564a8b4259922b64ca7678dRich Humphrey		assertThat( shadow.click(), equalTo(true));
20913c284c27d1e302a3564a8b4259922b64ca7678dRich Humphrey		assertThat( clicked, equalTo(true));
21013c284c27d1e302a3564a8b4259922b64ca7678dRich Humphrey	}
21113c284c27d1e302a3564a8b4259922b64ca7678dRich Humphrey
21213c284c27d1e302a3564a8b4259922b64ca7678dRich Humphrey	@Test
2135773573687f3d05e5e97816b1c5d31e6a4d7f212Rich Humphrey	public void shouldCallChangeListener() {
214c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey		Integer[] values = { 0, 1, 2, 2011 };
215c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey
216c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey		for(Integer newValue : values) {
217c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey			assertThat(preference.callChangeListener(newValue), equalTo(true));
218c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey			assertThat(shadow.getCallChangeListenerValue(), sameInstance((Object)newValue));
219c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey		}
220c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey	}
221c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey
2228a9faa25fa0a1bdc4f7acc09ac968da63540997cadriancowham	@Test
2238a9faa25fa0a1bdc4f7acc09ac968da63540997cadriancowham	public void shouldReturnIntent() {
2248a9faa25fa0a1bdc4f7acc09ac968da63540997cadriancowham		assertThat( preference.getIntent(), nullValue() );
2258a9faa25fa0a1bdc4f7acc09ac968da63540997cadriancowham		preference.setIntent( new Intent() );
2268a9faa25fa0a1bdc4f7acc09ac968da63540997cadriancowham		assertThat( preference.getIntent(), notNullValue() );
2278a9faa25fa0a1bdc4f7acc09ac968da63540997cadriancowham	}
2288a9faa25fa0a1bdc4f7acc09ac968da63540997cadriancowham
2299d14e4b4b8e308dba6455a7e2c780c32cff6d273Michael Portuesi	@Test
2309d14e4b4b8e308dba6455a7e2c780c32cff6d273Michael Portuesi	public void shouldRememberDependency() {
2319d14e4b4b8e308dba6455a7e2c780c32cff6d273Michael Portuesi		assertThat( preference.getDependency(), nullValue() );
2329d14e4b4b8e308dba6455a7e2c780c32cff6d273Michael Portuesi		preference.setDependency( "TEST_PREF_KEY" );
2339d14e4b4b8e308dba6455a7e2c780c32cff6d273Michael Portuesi		assertThat( preference.getDependency(), notNullValue() );
2349d14e4b4b8e308dba6455a7e2c780c32cff6d273Michael Portuesi		assertThat( preference.getDependency(), equalTo("TEST_PREF_KEY") );
2359d14e4b4b8e308dba6455a7e2c780c32cff6d273Michael Portuesi	}
23665b198f024aea2f29ce34287bbe6027a632d37b1Rich Humphrey
23797f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey	private static class TestPreference extends Preference {
238ca3a400d69d3b4c697d78c4013d9d78b46053272Rich Humphrey		public TestPreference(Context context) {
239ca3a400d69d3b4c697d78c4013d9d78b46053272Rich Humphrey			super(context);
24097f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		}
241ca3a400d69d3b4c697d78c4013d9d78b46053272Rich Humphrey
24297f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		public TestPreference(Context context, AttributeSet attrs) {
24397f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey			super(context, attrs);
24497f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		}
24597f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey
24697f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		public TestPreference(Context context, AttributeSet attrs, int defStyle) {
24797f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey			super(context, attrs, defStyle);
24897f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		}
24997f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey
25097f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		public boolean shouldPersist() {
25197f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey			return super.shouldPersist();
25297f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		}
25397f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey
25497f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		public int getPersistedInt(int defaultReturnValue) {
25597f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey			return super.getPersistedInt(defaultReturnValue);
25697f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey		}
257c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey
258c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey		public boolean persistInt(int value) {
259c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey			return super.persistInt(value);
260c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey		}
261c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey
262c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey		public boolean callChangeListener(Object newValue) {
263c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey			return super.callChangeListener(newValue);
264c1cb9c7b5226198b51f272c6e41d8630f123d023Rich Humphrey		}
26597f349c4ea58c18d79083dc9a02353bbe2a56fbfRich Humphrey	}
266079a071612e45353e46bde2f29eff7e6fc762f01Rich Humphrey}
267