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