1 /* 2 * Copyright (C) 2012 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package android.preference.cts; 18 19 import android.Manifest; 20 import android.preference.CheckBoxPreference; 21 import android.preference.Preference; 22 import android.preference.PreferenceGroup; 23 import android.test.ActivityInstrumentationTestCase2; 24 25 import com.android.compatibility.common.util.SystemUtil; 26 27 public class PreferenceGroupTest 28 extends ActivityInstrumentationTestCase2<PreferenceFromCodeActivity> { 29 30 private PreferenceFromCodeActivity mActivity; 31 private PreferenceGroup mPreferenceGroup; 32 PreferenceGroupTest()33 public PreferenceGroupTest() { 34 super(PreferenceFromCodeActivity.class); 35 } 36 37 @Override setUp()38 protected void setUp() throws Exception { 39 super.setUp(); 40 mActivity = SystemUtil.runWithShellPermissionIdentity( 41 this::getActivity, Manifest.permission.START_ACTIVITIES_FROM_SDK_SANDBOX); 42 mPreferenceGroup = (PreferenceGroup) mActivity.findPreference("pref-group"); 43 CheckBoxPreference checkboxPref = new CheckBoxPreference(mActivity); 44 checkboxPref.setKey("checkbox_preference_group"); 45 checkboxPref.setIcon(R.drawable.ic_launcher); 46 checkboxPref.setTitle(R.string.title_checkbox_preference); 47 checkboxPref.setSummary(R.string.summary_checkbox_preference); 48 checkboxPref.setSummaryOn(R.string.summary_on_checkbox_preference); 49 checkboxPref.setSummaryOff(R.string.summary_off_checkbox_preference); 50 checkboxPref.setChecked(true); 51 mPreferenceGroup.addPreference(checkboxPref); 52 } 53 testAddPreference()54 public void testAddPreference() { 55 Preference preference = mActivity.findPreference("pref-group"); 56 assertNotNull(preference); 57 } 58 testFindPreference()59 public void testFindPreference() { 60 Preference preference = mPreferenceGroup.findPreference("checkbox_preference_group"); 61 assertNotNull(preference); 62 } 63 testPreferenceCount()64 public void testPreferenceCount() { 65 assertEquals(1, mPreferenceGroup.getPreferenceCount()); 66 } 67 testSetOrderingAsAdded()68 public void testSetOrderingAsAdded() { 69 mPreferenceGroup.setOrderingAsAdded(false); 70 assertFalse(mPreferenceGroup.isOrderingAsAdded()); 71 } 72 testRemoveAll()73 public void testRemoveAll() { 74 mPreferenceGroup.removeAll(); 75 assertEquals(0, mPreferenceGroup.getPreferenceCount()); 76 } 77 testRemovePreference()78 public void testRemovePreference() { 79 Preference preference = mPreferenceGroup.findPreference("checkbox_preference_group"); 80 mPreferenceGroup.removePreference(preference); 81 assertEquals(0, mPreferenceGroup.getPreferenceCount()); 82 } 83 testIsOnSameScreenAsChildren()84 public void testIsOnSameScreenAsChildren() { 85 CustomPreferenceGroup mCustomPreferenceGroup = (CustomPreferenceGroup) 86 mActivity.findPreference("custom-pref-group"); 87 assertTrue(mCustomPreferenceGroup.isOnSameScreenAsChildren()); 88 } 89 testOnPrepareAddPreference()90 public void testOnPrepareAddPreference() { 91 CustomPreferenceGroup mCustomPreferenceGroup = (CustomPreferenceGroup) 92 mActivity.findPreference("custom-pref-group"); 93 CheckBoxPreference checkboxPref = new CheckBoxPreference(mActivity); 94 checkboxPref.setKey("checkbox_preference-2"); 95 mCustomPreferenceGroup.addPreference(checkboxPref); 96 assertTrue(mCustomPreferenceGroup.mOnPrepareCalled); 97 } 98 } 99