Introduce a WifiTrackerLibProvider.

This make the WifiTrackerLib can be customized.

Bug: 149540986
Test: manual test wifi picker, and atest com.android.settings
Change-Id: I1418ae39c895ce2ff87f18005a226a4835f9e083
This commit is contained in:
Steven Liu
2020-12-16 15:08:51 -08:00
parent b7076d5d5e
commit c1477650c9
17 changed files with 268 additions and 123 deletions

View File

@@ -43,6 +43,7 @@ import com.android.settings.search.SearchFeatureProvider;
import com.android.settings.security.SecurityFeatureProvider;
import com.android.settings.slices.SlicesFeatureProvider;
import com.android.settings.users.UserFeatureProvider;
import com.android.settings.wifi.WifiTrackerLibProvider;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import org.mockito.Answers;
@@ -77,6 +78,8 @@ public class FakeFeatureFactory extends FeatureFactory {
public SearchFeatureProvider searchFeatureProvider;
public ContextualCardFeatureProvider mContextualCardFeatureProvider;
public WifiTrackerLibProvider wifiTrackerLibProvider;
/**
* Call this in {@code @Before} method of the test class to use fake factory.
*/
@@ -120,6 +123,7 @@ public class FakeFeatureFactory extends FeatureFactory {
mBluetoothFeatureProvider = mock(BluetoothFeatureProvider.class);
mAwareFeatureProvider = mock(AwareFeatureProvider.class);
mFaceFeatureProvider = mock(FaceFeatureProvider.class);
wifiTrackerLibProvider = mock(WifiTrackerLibProvider.class);
}
@Override
@@ -231,4 +235,9 @@ public class FakeFeatureFactory extends FeatureFactory {
public FaceFeatureProvider getFaceFeatureProvider() {
return mFaceFeatureProvider;
}
@Override
public WifiTrackerLibProvider getWifiTrackerLibProvider() {
return wifiTrackerLibProvider;
}
}

View File

@@ -20,6 +20,7 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
@@ -41,6 +42,7 @@ import androidx.annotation.NonNull;
import androidx.fragment.app.FragmentActivity;
import com.android.settings.R;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.wifitrackerlib.WifiEntry;
import com.android.wifitrackerlib.WifiPickerTracker;
@@ -82,6 +84,8 @@ public class AddAppNetworksFragmentTest {
@Mock
private WifiEntry mWifiEntry;
private FakeFeatureFactory mFakeFeatureFactory;
@Mock
private WifiPickerTracker mWifiPickerTracker;
@@ -106,6 +110,8 @@ public class AddAppNetworksFragmentTest {
mSavedWpaConfigurationEntry = generateRegularWifiConfiguration(FAKE_NEW_SAVED_WPA_SSID,
WifiConfiguration.KeyMgmt.WPA_PSK, "\"1234567890\"");
mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
mAddAppNetworksFragment.mWifiPickerTracker = mWifiPickerTracker;
setUpOneScannedNetworkWithScanedLevel4();
}
@@ -485,6 +491,9 @@ public class AddAppNetworksFragmentTest {
}
private void setupFragment() {
when(mFakeFeatureFactory.wifiTrackerLibProvider.createWifiPickerTracker(
any(), any(), any(), any(), any(), anyLong(), anyLong(), any()))
.thenReturn(mWifiPickerTracker);
FragmentController.setupFragment(mAddAppNetworksFragment);
}