• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package com.android.settings.wifi;
2 
3 import static com.google.common.truth.Truth.assertThat;
4 import static org.mockito.Mockito.doReturn;
5 import static org.mockito.Mockito.mock;
6 import static org.mockito.Mockito.spy;
7 import static org.mockito.Mockito.when;
8 
9 import android.content.Context;
10 import android.net.ConnectivityManager;
11 import android.net.NetworkInfo;
12 
13 import com.android.settings.testutils.SettingsRobolectricTestRunner;
14 import com.android.settings.testutils.XmlTestUtils;
15 
16 import org.junit.Before;
17 import org.junit.Test;
18 import org.junit.runner.RunWith;
19 import org.robolectric.RuntimeEnvironment;
20 import org.robolectric.annotation.Config;
21 
22 import java.util.List;
23 
24 @RunWith(SettingsRobolectricTestRunner.class)
25 public class ConfigureWifiSettingsTest {
26 
27     private Context mContext;
28 
29     @Before
setUp()30     public void setUp() {
31         mContext = spy(RuntimeEnvironment.application);
32     }
33 
34     @Test
testNonIndexableKeys_existInXmlLayout()35     public void testNonIndexableKeys_existInXmlLayout() {
36         final List<String> niks =
37             ConfigureWifiSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
38         final int xmlId = new ConfigureWifiSettings().getPreferenceScreenResId();
39 
40         final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(mContext, xmlId);
41 
42         assertThat(keys).containsAllIn(niks);
43     }
44 
45     @Test
46     @Config(qualifiers = "mcc999")
testNonIndexableKeys_ifPageDisabled_shouldNotIndexResource()47     public void testNonIndexableKeys_ifPageDisabled_shouldNotIndexResource() {
48         final List<String> niks =
49             ConfigureWifiSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
50         final int xmlId = new ConfigureWifiSettings().getPreferenceScreenResId();
51 
52         final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(mContext, xmlId);
53         assertThat(keys).isNotNull();
54         assertThat(niks).containsAllIn(keys);
55     }
56 
57     @Test
testNonIndexableKeys_noConnection_blocksIP()58     public void testNonIndexableKeys_noConnection_blocksIP() {
59         ConnectivityManager manager = mock(ConnectivityManager.class);
60         when(manager.getActiveNetworkInfo()).thenReturn(null);
61         doReturn(manager).when(mContext).getSystemService(Context.CONNECTIVITY_SERVICE);
62 
63         final List<String> niks =
64             ConfigureWifiSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
65         assertThat(niks).contains(ConfigureWifiSettings.KEY_IP_ADDRESS);
66     }
67 
68     @Test
testNonIndexableKeys_wifiConnection_blocksIP()69     public void testNonIndexableKeys_wifiConnection_blocksIP() {
70         ConnectivityManager manager = mock(ConnectivityManager.class);
71         NetworkInfo info = mock(NetworkInfo.class);
72         when(info.getType()).thenReturn(ConnectivityManager.TYPE_WIFI);
73         when(manager.getActiveNetworkInfo()).thenReturn(info);
74         doReturn(manager).when(mContext).getSystemService(Context.CONNECTIVITY_SERVICE);
75 
76         final List<String> niks =
77             ConfigureWifiSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
78         assertThat(niks).contains(ConfigureWifiSettings.KEY_IP_ADDRESS);
79     }
80 
81     @Test
testNonIndexableKeys_mobileConnection_blocksIP()82     public void testNonIndexableKeys_mobileConnection_blocksIP() {
83         ConnectivityManager manager = mock(ConnectivityManager.class);
84         NetworkInfo info = mock(NetworkInfo.class);
85         when(info.getType()).thenReturn(ConnectivityManager.TYPE_MOBILE);
86         when(manager.getActiveNetworkInfo()).thenReturn(info);
87         doReturn(manager).when(mContext).getSystemService(Context.CONNECTIVITY_SERVICE);
88 
89         final List<String> niks =
90             ConfigureWifiSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
91         assertThat(niks).doesNotContain(ConfigureWifiSettings.KEY_IP_ADDRESS);
92     }
93 }
94