1 /** 2 * Copyright (C) 2018 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 package com.android.settings.wifi; 17 18 import static com.google.common.truth.Truth.assertThat; 19 import static org.mockito.Mockito.mock; 20 21 import android.content.pm.PackageInfo; 22 import android.Manifest; 23 24 import com.android.settings.testutils.SettingsRobolectricTestRunner; 25 import com.android.settingslib.applications.ApplicationsState.AppEntry; 26 import com.android.settingslib.applications.ApplicationsState.AppFilter; 27 28 import org.junit.Before; 29 import org.junit.Test; 30 import org.junit.runner.RunWith; 31 import org.mockito.Mock; 32 import org.mockito.MockitoAnnotations; 33 34 @RunWith(SettingsRobolectricTestRunner.class) 35 public class AppStateChangeWifiStateBridgeTest { 36 37 @Mock 38 private AppEntry mEntry; 39 @Mock 40 private AppStateChangeWifiStateBridge.WifiSettingsState mState; 41 private AppFilter mFilter; 42 43 @Before 44 public void setUp() { 45 MockitoAnnotations.initMocks(this); 46 mFilter = AppStateChangeWifiStateBridge.FILTER_CHANGE_WIFI_STATE; 47 } 48 49 @Test 50 public void testFilterApp_inputNull_returnFalse() { 51 assertThat(mFilter.filterApp(null)).isFalse(); 52 } 53 54 @Test 55 public void testFilterApp_extraInfoNull_returnFalse() { 56 mEntry.extraInfo = null; 57 assertThat(mFilter.filterApp(mEntry)).isFalse(); 58 } 59 60 @Test 61 public void testFilterApp_permissionedDeclaredTrue_returnTrue() { 62 mState.permissionDeclared = true; 63 mEntry.extraInfo = mState; 64 assertThat(mFilter.filterApp(mEntry)).isTrue(); 65 } 66 67 @Test 68 public void testFilterApp_permissionedDeclaredFalse_returnFalse() { 69 mState.permissionDeclared = false; 70 mEntry.extraInfo = mState; 71 assertThat(mFilter.filterApp(mEntry)).isFalse(); 72 } 73 74 @Test 75 public void testFilterApp_networkSettingsGranted_returnFalse() { 76 mState.permissionDeclared = true; 77 mState.packageInfo = mock(PackageInfo.class); 78 mState.packageInfo.requestedPermissions 79 = new String[]{ Manifest.permission.NETWORK_SETTINGS }; 80 mEntry.extraInfo = mState; 81 assertThat(mFilter.filterApp(mEntry)).isFalse(); 82 } 83 } 84