133873d2b41a5cd2597b20a4e88eb8942944c0f23Tyler Schultzpackage com.xtremelabs.robolectric.shadows; 28baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard 38baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richardimport android.app.Activity; 48baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richardimport android.app.Application; 58baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richardimport android.content.ContentResolver; 68baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richardimport android.provider.Settings; 7345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williamsimport com.xtremelabs.robolectric.Robolectric; 807257335f88da163910cc0bd039e6163edc38580Gregg Van Hove & Phil Goodwinimport com.xtremelabs.robolectric.WithTestDefaultsRunner; 98baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richardimport org.junit.Before; 108baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richardimport org.junit.Test; 118baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richardimport org.junit.runner.RunWith; 128baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard 13a3030055b95774b06a963ccc9224fac58c887cb2Christian Williams & Phil Goodwinimport static org.hamcrest.CoreMatchers.equalTo; 14fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkelimport static org.hamcrest.CoreMatchers.nullValue; 158baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richardimport static org.junit.Assert.assertThat; 168baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard 1707257335f88da163910cc0bd039e6163edc38580Gregg Van Hove & Phil Goodwin@RunWith(WithTestDefaultsRunner.class) 188baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richardpublic class SettingsTest { 198baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard private Activity activity; 208baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard private ContentResolver contentResolver; 218baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard 228baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard @Before 238baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard public void setUp() throws Exception { 248baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard activity = new Activity(); 258baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard contentResolver = activity.getContentResolver(); 268baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard } 278baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard 288baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard @Test 298baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard public void whileApplicationStaysSame_shouldRememberOldSettings() throws Exception { 308baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard Settings.System.putInt(contentResolver, "property", 1); 318baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard assertThat(Settings.System.getInt(contentResolver, "property", 0), equalTo(1)); 328baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard 338baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard activity = new Activity(); 348baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard contentResolver = activity.getContentResolver(); 358baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard assertThat(Settings.System.getInt(contentResolver, "property", 0), equalTo(1)); 368baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard } 378baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard 388baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard @Test 398baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard public void whenApplicationChanges_shouldStartWithNewSettings() throws Exception { 408baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard Settings.System.putInt(contentResolver, "property", 1); 418baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard assertThat(Settings.System.getInt(contentResolver, "property", 0), equalTo(1)); 428baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard 43345fb6b77303f0d3c98cf748fefa0136183bdc79Christian Williams Robolectric.application = new Application(); 448baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard activity = new Activity(); 458baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard contentResolver = activity.getContentResolver(); 468baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard assertThat(Settings.System.getInt(contentResolver, "property", 0), equalTo(0)); 478baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard } 488baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard 498baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard @Test 508baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard public void testSystemGetInt() throws Exception { 518baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard assertThat(Settings.System.getInt(contentResolver, "property", 0), equalTo(0)); 528baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard assertThat(Settings.System.getInt(contentResolver, "property", 2), equalTo(2)); 538baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard 548baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard Settings.System.putInt(contentResolver, "property", 1); 558baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard assertThat(Settings.System.getInt(contentResolver, "property", 0), equalTo(1)); 568baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard } 578baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard 588baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard @Test 598baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard public void testSecureGetInt() throws Exception { 608baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard assertThat(Settings.Secure.getInt(contentResolver, "property", 0), equalTo(0)); 618baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard assertThat(Settings.Secure.getInt(contentResolver, "property", 2), equalTo(2)); 628baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard 638baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard Settings.Secure.putInt(contentResolver, "property", 1); 648baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard assertThat(Settings.Secure.getInt(contentResolver, "property", 0), equalTo(1)); 658baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard } 66fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel 67fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel @Test 68fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel public void testSystemGetString() throws Exception { 69fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel assertThat(Settings.System.getString(contentResolver, "property"), nullValue()); 70fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel 71fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel Settings.System.putString(contentResolver, "property", "value"); 72fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel assertThat(Settings.System.getString(contentResolver, "property"), equalTo("value")); 73fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel } 74fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel 75fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel @Test 76fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel public void testSystemGetLong() throws Exception { 77fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel assertThat(Settings.System.getLong(contentResolver, "property", 10L), equalTo(10L)); 78fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel Settings.System.putLong(contentResolver, "property", 42L); 79fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel assertThat(Settings.System.getLong(contentResolver, "property"), equalTo(42L)); 80fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel assertThat(Settings.System.getLong(contentResolver, "property", 10L), equalTo(42L)); 81fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel } 82fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel 83fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel @Test 84fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel public void testSystemGetFloat() throws Exception { 85fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel assertThat(Settings.System.getFloat(contentResolver, "property", 23.23f), equalTo(23.23f)); 86fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel Settings.System.putFloat(contentResolver, "property", 42.42f); 87fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel assertThat(Settings.System.getFloat(contentResolver, "property", 10L), equalTo(42.42f)); 88fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel } 89fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel 90fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel @Test(expected = Settings.SettingNotFoundException.class) 91fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel public void testSystemGetLong_exception() throws Exception { 92fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel Settings.System.getLong(contentResolver, "property"); 93fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel } 94fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel 95fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel @Test(expected = Settings.SettingNotFoundException.class) 96fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel public void testSystemGetInt_exception() throws Exception { 97fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel Settings.System.getInt(contentResolver, "property"); 98fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel } 99fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel 100fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel @Test(expected = Settings.SettingNotFoundException.class) 101fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel public void testSystemGetFloat_exception() throws Exception { 102fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel Settings.System.getFloat(contentResolver, "property"); 103fd3ea5a3a2648261e81c49a1da565d650e58a1a8Jan Berkel } 1048baea4cbf332f0e0acf559dfab4aa59dd7c71003Christian Williams & Ryan Richard} 105