ConfigureWifiSettingsTest.java revision 848f67d17a2a452da8549ab787e4419b927e5698
14b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzepackage com.android.settings.wifi;
24b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze
34b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport static com.google.common.truth.Truth.assertThat;
44b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze
54b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport static org.mockito.Mockito.doReturn;
64b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport static org.mockito.Mockito.mock;
74b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport static org.mockito.Mockito.spy;
84b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport static org.mockito.Mockito.when;
94b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze
104b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport android.content.Context;
114b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport android.net.ConnectivityManager;
124b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport android.net.NetworkInfo;
134b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport com.android.settings.TestConfig;
144b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport com.android.settings.testutils.SettingsRobolectricTestRunner;
154b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport com.android.settings.testutils.XmlTestUtils;
164b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze
174b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport org.junit.Before;
184b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport org.junit.Test;
194b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport org.junit.runner.RunWith;
204b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport org.robolectric.RuntimeEnvironment;
214b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport org.robolectric.annotation.Config;
224b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze
234b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzeimport java.util.List;
244b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze
254b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze@RunWith(SettingsRobolectricTestRunner.class)
26cbfb099a4002f751ff9b367f1742565b40c5d519jeffreyhuang@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
274b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritzepublic class ConfigureWifiSettingsTest {
284b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze
294b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze    private Context mContext;
304b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze
314b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze    @Before
324b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze    public void setUp() {
334b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze        mContext = spy(RuntimeEnvironment.application);
344b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze    }
354b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze
364b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze    @Test
374b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze    public void testNonIndexableKeys_existInXmlLayout() {
384b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze        final List<String> niks = ConfigureWifiSettings.SEARCH_INDEX_DATA_PROVIDER
394b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze                .getNonIndexableKeys(mContext);
404b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze        final int xmlId = new ConfigureWifiSettings().getPreferenceScreenResId();
414b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze
424b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze        final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(mContext, xmlId);
434b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze
444b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze        assertThat(keys).containsAllIn(niks);
454b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze    }
464b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze
474b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze    @Test
48848f67d17a2a452da8549ab787e4419b927e5698Ben Lin    @Config(qualifiers = "mcc999")
49848f67d17a2a452da8549ab787e4419b927e5698Ben Lin    public void testNonIndexableKeys_ifPageDisabled_shouldNotIndexResource() {
50848f67d17a2a452da8549ab787e4419b927e5698Ben Lin        final List<String> niks = ConfigureWifiSettings.SEARCH_INDEX_DATA_PROVIDER
51848f67d17a2a452da8549ab787e4419b927e5698Ben Lin                .getNonIndexableKeys(mContext);
52848f67d17a2a452da8549ab787e4419b927e5698Ben Lin        final int xmlId = new ConfigureWifiSettings().getPreferenceScreenResId();
53848f67d17a2a452da8549ab787e4419b927e5698Ben Lin
54848f67d17a2a452da8549ab787e4419b927e5698Ben Lin        final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(mContext, xmlId);
55848f67d17a2a452da8549ab787e4419b927e5698Ben Lin        assertThat(niks).containsAllIn(keys);
56848f67d17a2a452da8549ab787e4419b927e5698Ben Lin    }
57848f67d17a2a452da8549ab787e4419b927e5698Ben Lin
58848f67d17a2a452da8549ab787e4419b927e5698Ben Lin    @Test
594b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze    public void testNonIndexableKeys_noConnection_blocksIP() {
604b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze        ConnectivityManager manager = mock(ConnectivityManager.class);
614b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze        when(manager.getActiveNetworkInfo()).thenReturn(null);
624b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze        doReturn(manager).when(mContext).getSystemService(Context.CONNECTIVITY_SERVICE);
634b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze
644b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze        final List<String> niks = ConfigureWifiSettings.SEARCH_INDEX_DATA_PROVIDER
654b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze                .getNonIndexableKeys(mContext);
664b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze        assertThat(niks).contains(ConfigureWifiSettings.KEY_IP_ADDRESS);
674b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze    }
684b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze
694b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze    @Test
704b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze    public void testNonIndexableKeys_wifiConnection_blocksIP() {
714b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze        ConnectivityManager manager = mock(ConnectivityManager.class);
724b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze        NetworkInfo info = mock(NetworkInfo.class);
734b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze        when(info.getType()).thenReturn(ConnectivityManager.TYPE_WIFI);
744b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze        when(manager.getActiveNetworkInfo()).thenReturn(info);
754b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze        doReturn(manager).when(mContext).getSystemService(Context.CONNECTIVITY_SERVICE);
764b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze
774b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze        final List<String> niks = ConfigureWifiSettings.SEARCH_INDEX_DATA_PROVIDER
784b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze                .getNonIndexableKeys(mContext);
794b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze        assertThat(niks).contains(ConfigureWifiSettings.KEY_IP_ADDRESS);
804b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze    }
814b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze
824b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze    @Test
834b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze    public void testNonIndexableKeys_mobileConnection_blocksIP() {
844b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze        ConnectivityManager manager = mock(ConnectivityManager.class);
854b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze        NetworkInfo info = mock(NetworkInfo.class);
864b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze        when(info.getType()).thenReturn(ConnectivityManager.TYPE_MOBILE);
874b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze        when(manager.getActiveNetworkInfo()).thenReturn(info);
884b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze        doReturn(manager).when(mContext).getSystemService(Context.CONNECTIVITY_SERVICE);
894b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze
904b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze        final List<String> niks = ConfigureWifiSettings.SEARCH_INDEX_DATA_PROVIDER
914b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze                .getNonIndexableKeys(mContext);
924b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze        assertThat(niks).doesNotContain(ConfigureWifiSettings.KEY_IP_ADDRESS);
934b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze    }
944b0677a2a45e2542b44e906c91e4bf57ed00f44eMatthew Fritze}
95