ConnectedDeviceDashboardFragmentTest.java revision 7ca6c2410c00856333e98ede2cec828b04f982c5
1/* 2 * Copyright (C) 2016 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 */ 16package com.android.settings.connecteddevice; 17 18import android.content.Context; 19import android.content.pm.PackageManager; 20import android.provider.SearchIndexableResource; 21 22import com.android.settings.bluetooth.BluetoothMasterSwitchPreferenceController; 23import com.android.settings.nfc.NfcPreferenceController; 24import com.android.settings.SettingsRobolectricTestRunner; 25import com.android.settings.TestConfig; 26import com.android.settingslib.drawer.CategoryKey; 27 28import org.junit.Before; 29import org.junit.Test; 30import org.junit.runner.RunWith; 31import org.mockito.Mock; 32import org.mockito.MockitoAnnotations; 33import org.robolectric.annotation.Config; 34import org.robolectric.shadows.ShadowApplication; 35 36import java.util.List; 37 38import static com.google.common.truth.Truth.assertThat; 39import static org.mockito.Mockito.mock; 40import static org.mockito.Mockito.when; 41 42@RunWith(SettingsRobolectricTestRunner.class) 43@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) 44public class ConnectedDeviceDashboardFragmentTest { 45 @Mock 46 Context mContext; 47 48 @Mock 49 private PackageManager mManager; 50 51 private ConnectedDeviceDashboardFragment mFragment; 52 53 @Before 54 public void setUp() { 55 MockitoAnnotations.initMocks(this); 56 mFragment = new ConnectedDeviceDashboardFragment(); 57 when(mContext.getPackageManager()).thenReturn(mManager); 58 } 59 60 @Test 61 public void testCategory_isConnectedDevice() { 62 assertThat(mFragment.getCategoryKey()).isEqualTo(CategoryKey.CATEGORY_DEVICE); 63 } 64 65 @Test 66 public void testSearchIndexProvider_shouldIndexResource() { 67 final List<SearchIndexableResource> indexRes = 68 mFragment.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(mContext, true /* enabled */); 69 70 assertThat(indexRes).isNotNull(); 71 assertThat(indexRes.get(0).xmlResId).isEqualTo(mFragment.getPreferenceScreenResId()); 72 } 73 74 @Test 75 public void testSearchIndexProvider_NoNfc_KeyAdded() { 76 when(mManager.hasSystemFeature(PackageManager.FEATURE_NFC)).thenReturn(false); 77 final List<String> keys = mFragment.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext); 78 79 assertThat(keys).isNotNull(); 80 assertThat(keys).contains(NfcPreferenceController.KEY_TOGGLE_NFC); 81 assertThat(keys).contains(NfcPreferenceController.KEY_ANDROID_BEAM_SETTINGS); 82 } 83 84 @Test 85 public void testSearchIndexProvider_NFC_KeyNotAdded() { 86 when(mManager.hasSystemFeature(PackageManager.FEATURE_NFC)).thenReturn(true); 87 final List<String> keys = mFragment.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext); 88 89 assertThat(keys).isNotNull(); 90 assertThat(keys).doesNotContain(NfcPreferenceController.KEY_TOGGLE_NFC); 91 assertThat(keys).doesNotContain(NfcPreferenceController.KEY_ANDROID_BEAM_SETTINGS); 92 } 93 94 @Test 95 public void testSearchIndexProvider_NoBluetooth_KeyAdded() { 96 when(mManager.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)).thenReturn(false); 97 final List<String> keys = mFragment.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext); 98 99 assertThat(keys).isNotNull(); 100 assertThat(keys).contains(BluetoothMasterSwitchPreferenceController.KEY_TOGGLE_BLUETOOTH); 101 } 102 103 @Test 104 public void testSearchIndexProvider_Bluetooth_KeyNotAdded() { 105 when(mManager.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)).thenReturn(true); 106 final List<String> keys = mFragment.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext); 107 108 assertThat(keys).isNotNull(); 109 assertThat(keys).doesNotContain(BluetoothMasterSwitchPreferenceController.KEY_TOGGLE_BLUETOOTH); 110 } 111} 112