14b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzepackage com.android.settings.wifi; 24b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze 34b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport static com.google.common.truth.Truth.assertThat; 44b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport static org.mockito.Mockito.doReturn; 54b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport static org.mockito.Mockito.mock; 64b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport static org.mockito.Mockito.spy; 74b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport static org.mockito.Mockito.when; 84b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze 94b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport android.content.Context; 104b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport android.net.ConnectivityManager; 114b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport android.net.NetworkInfo; 1222a39c2b93bc66db71238274a7683d329232d124James Lemieux 134b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport com.android.settings.testutils.SettingsRobolectricTestRunner; 144b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport com.android.settings.testutils.XmlTestUtils; 154b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze 164b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport org.junit.Before; 174b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport org.junit.Test; 184b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport org.junit.runner.RunWith; 194b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport org.robolectric.RuntimeEnvironment; 204b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport org.robolectric.annotation.Config; 214b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze 224b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport java.util.List; 234b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze 244b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze@RunWith(SettingsRobolectricTestRunner.class) 254b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzepublic class ConfigureWifiSettingsTest { 264b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze 274b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze private Context mContext; 284b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze 294b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze @Before 304b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze public void setUp() { 314b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze mContext = spy(RuntimeEnvironment.application); 324b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze } 334b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze 344b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze @Test 354b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze public void testNonIndexableKeys_existInXmlLayout() { 3622a39c2b93bc66db71238274a7683d329232d124James Lemieux final List<String> niks = 3722a39c2b93bc66db71238274a7683d329232d124James Lemieux ConfigureWifiSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext); 384b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze final int xmlId = new ConfigureWifiSettings().getPreferenceScreenResId(); 394b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze 404b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(mContext, xmlId); 414b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze 424b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze assertThat(keys).containsAllIn(niks); 434b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze } 444b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze 454b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze @Test 46848f67d17a2a452da8549ab787e4419b927e5698Ben Lin @Config(qualifiers = "mcc999") 47848f67d17a2a452da8549ab787e4419b927e5698Ben Lin public void testNonIndexableKeys_ifPageDisabled_shouldNotIndexResource() { 4822a39c2b93bc66db71238274a7683d329232d124James Lemieux final List<String> niks = 4922a39c2b93bc66db71238274a7683d329232d124James Lemieux ConfigureWifiSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext); 50848f67d17a2a452da8549ab787e4419b927e5698Ben Lin final int xmlId = new ConfigureWifiSettings().getPreferenceScreenResId(); 51848f67d17a2a452da8549ab787e4419b927e5698Ben Lin 52848f67d17a2a452da8549ab787e4419b927e5698Ben Lin final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(mContext, xmlId); 5322a39c2b93bc66db71238274a7683d329232d124James Lemieux assertThat(keys).isNotNull(); 54848f67d17a2a452da8549ab787e4419b927e5698Ben Lin assertThat(niks).containsAllIn(keys); 55848f67d17a2a452da8549ab787e4419b927e5698Ben Lin } 56848f67d17a2a452da8549ab787e4419b927e5698Ben Lin 57848f67d17a2a452da8549ab787e4419b927e5698Ben Lin @Test 584b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze public void testNonIndexableKeys_noConnection_blocksIP() { 594b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze ConnectivityManager manager = mock(ConnectivityManager.class); 604b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze when(manager.getActiveNetworkInfo()).thenReturn(null); 614b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze doReturn(manager).when(mContext).getSystemService(Context.CONNECTIVITY_SERVICE); 624b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze 6322a39c2b93bc66db71238274a7683d329232d124James Lemieux final List<String> niks = 6422a39c2b93bc66db71238274a7683d329232d124James Lemieux ConfigureWifiSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext); 654b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze assertThat(niks).contains(ConfigureWifiSettings.KEY_IP_ADDRESS); 664b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze } 674b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze 684b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze @Test 694b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze public void testNonIndexableKeys_wifiConnection_blocksIP() { 704b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze ConnectivityManager manager = mock(ConnectivityManager.class); 714b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze NetworkInfo info = mock(NetworkInfo.class); 724b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze when(info.getType()).thenReturn(ConnectivityManager.TYPE_WIFI); 734b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze when(manager.getActiveNetworkInfo()).thenReturn(info); 744b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze doReturn(manager).when(mContext).getSystemService(Context.CONNECTIVITY_SERVICE); 754b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze 7622a39c2b93bc66db71238274a7683d329232d124James Lemieux final List<String> niks = 7722a39c2b93bc66db71238274a7683d329232d124James Lemieux ConfigureWifiSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext); 784b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze assertThat(niks).contains(ConfigureWifiSettings.KEY_IP_ADDRESS); 794b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze } 804b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze 814b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze @Test 824b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze public void testNonIndexableKeys_mobileConnection_blocksIP() { 834b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze ConnectivityManager manager = mock(ConnectivityManager.class); 844b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze NetworkInfo info = mock(NetworkInfo.class); 854b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze when(info.getType()).thenReturn(ConnectivityManager.TYPE_MOBILE); 864b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze when(manager.getActiveNetworkInfo()).thenReturn(info); 874b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze doReturn(manager).when(mContext).getSystemService(Context.CONNECTIVITY_SERVICE); 884b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze 8922a39c2b93bc66db71238274a7683d329232d124James Lemieux final List<String> niks = 9022a39c2b93bc66db71238274a7683d329232d124James Lemieux ConfigureWifiSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext); 914b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze assertThat(niks).doesNotContain(ConfigureWifiSettings.KEY_IP_ADDRESS); 924b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze } 934b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze} 94