Add a "Add Network" button to SavedAccessPointsWifiSettings

Bug: 36719359
Test: runtest --path
packages/apps/Settings/tests/unit/src/com/android/settings/wifi/SavedNetworkSettingsTest.java
Test: Open saved networks from WifiSettings. Ensure that exiting and
resuming the activity keeps the "Add Network" button on the bottom of
the network list. This is tested through the cases where networks are
forgotten/saved before resuming, and that pausing/resuming when the dialog
is open or closed does not affect the result.

Change-Id: Ib719a1f6b9468c0f8f44470eeed9144904672cf1
This commit is contained in:
Stephen Chen
2017-08-11 13:09:35 -07:00
parent d0275e53eb
commit dc1add0c61
2 changed files with 116 additions and 13 deletions

View File

@@ -0,0 +1,76 @@
/*
* Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.settings.wifi;
import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.action.ViewActions.click;
import static android.support.test.espresso.assertion.ViewAssertions.matches;
import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
import static android.support.test.espresso.matcher.ViewMatchers.withText;
import android.content.Context;
import android.content.Intent;
import android.support.test.InstrumentationRegistry;
import android.support.test.rule.ActivityTestRule;
import android.support.test.runner.AndroidJUnit4;
import com.android.settings.Settings;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(AndroidJUnit4.class)
public class SavedNetworkSettingsTest {
// Keys used to lookup resources by name (see the resourceId helper method).
private static final String STRING = "string";
private static final String WIFI_ADD_NETWORK = "wifi_add_network";
private static final String WIFI_NETWORK_LABEL = "wifi_ssid";
private Context mContext;
@Rule
public ActivityTestRule<Settings.SavedAccessPointsSettingsActivity> mActivityRule =
new ActivityTestRule<>(Settings.SavedAccessPointsSettingsActivity.class, true);
private int resourceId(String type, String name) {
return mContext.getResources().getIdentifier(name, type, mContext.getPackageName());
}
@Before
public void setUp() {
mContext = InstrumentationRegistry.getTargetContext();
}
private void launchSavedNetworksSettings() {
Intent intent = new Intent()
.setClassName(mContext.getPackageName(),
Settings.SavedAccessPointsSettingsActivity.class.getName())
.setPackage(mContext.getPackageName());
mActivityRule.launchActivity(intent);
}
@Test
public void launchSavedNetworkSettings_shouldHaveAddNetworkField() {
launchSavedNetworksSettings();
onView(withText(resourceId(STRING, WIFI_ADD_NETWORK))).check(matches(isDisplayed()))
.perform(click());
onView(withText(resourceId(STRING, WIFI_NETWORK_LABEL))).check(matches(isDisplayed()));
}
}