Merge "Refactor FeatureFactory"

This commit is contained in:
Chaohui Wang
2023-06-29 09:01:17 +00:00
committed by Android (Google) Code Review
10 changed files with 451 additions and 716 deletions

View File

@@ -15,9 +15,7 @@
*/
package com.android.settings.testutils;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import android.content.Context;
@@ -55,8 +53,6 @@ import com.android.settings.wifi.WifiTrackerLibProvider;
import com.android.settings.wifi.factory.WifiFeatureProvider;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import org.mockito.Answers;
/**
* Test util to provide fake FeatureFactory. To use this factory, call {@code setupForTest} in
* {@code @Before} method of the test class.
@@ -100,17 +96,9 @@ public class FakeFeatureFactory extends FeatureFactory {
* Call this in {@code @Before} method of the test class to use fake factory.
*/
public static FakeFeatureFactory setupForTest() {
final Context context = mock(Context.class, Answers.RETURNS_DEEP_STUBS);
sFactory = null;
when(context.getString(com.android.settings.R.string.config_featureFactory))
.thenReturn(FakeFeatureFactory.class.getName());
try {
Class c = FakeFeatureFactory.class;
when(context.getClassLoader().loadClass(anyString())).thenReturn(c);
} catch (ClassNotFoundException e) {
// Ignore.
}
return (FakeFeatureFactory) FakeFeatureFactory.getFactory(context);
FakeFeatureFactory factory = new FakeFeatureFactory();
setFactory(getAppContext(), factory);
return factory;
}
/**

View File

@@ -47,7 +47,7 @@ import com.android.settings.slices.SlicesFeatureProvider
import com.android.settings.users.UserFeatureProvider
import com.android.settings.vpn2.AdvancedVpnFeatureProvider
import com.android.settings.wifi.WifiTrackerLibProvider
import com.android.settings.wifi.factory.WifiFeatureProvider;
import com.android.settings.wifi.factory.WifiFeatureProvider
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider
import org.mockito.Mockito.mock
@@ -59,130 +59,94 @@ class FakeFeatureFactory : FeatureFactory() {
mock(ApplicationFeatureProvider::class.java)
init {
sFactory = this
setFactory(appContext, this)
}
override fun getAssistGestureFeatureProvider(): AssistGestureFeatureProvider {
override val assistGestureFeatureProvider: AssistGestureFeatureProvider
get() = TODO("Not yet implemented")
override val suggestionFeatureProvider: SuggestionFeatureProvider
get() = TODO("Not yet implemented")
override val hardwareInfoFeatureProvider: HardwareInfoFeatureProvider
get() = TODO("Not yet implemented")
override fun getSupportFeatureProvider(context: Context): SupportFeatureProvider? {
TODO("Not yet implemented")
}
override fun getSuggestionFeatureProvider(): SuggestionFeatureProvider {
override val metricsFeatureProvider = mockMetricsFeatureProvider
override fun getPowerUsageFeatureProvider(context: Context): PowerUsageFeatureProvider {
TODO("Not yet implemented")
}
override fun getSupportFeatureProvider(context: Context?): SupportFeatureProvider {
override fun getBatteryStatusFeatureProvider(context: Context): BatteryStatusFeatureProvider {
TODO("Not yet implemented")
}
override fun getMetricsFeatureProvider(): MetricsFeatureProvider = mockMetricsFeatureProvider
override val batterySettingsFeatureProvider: BatterySettingsFeatureProvider
get() = TODO("Not yet implemented")
override fun getPowerUsageFeatureProvider(context: Context?): PowerUsageFeatureProvider {
override fun getDashboardFeatureProvider(context: Context): DashboardFeatureProvider {
TODO("Not yet implemented")
}
override fun getBatteryStatusFeatureProvider(context: Context?): BatteryStatusFeatureProvider {
TODO("Not yet implemented")
}
override val dockUpdaterFeatureProvider: DockUpdaterFeatureProvider
get() = TODO("Not yet implemented")
override fun getBatterySettingsFeatureProvider(): BatterySettingsFeatureProvider {
TODO("Not yet implemented")
}
override fun getApplicationFeatureProvider(context: Context) = mockApplicationFeatureProvider
override fun getDashboardFeatureProvider(context: Context?): DashboardFeatureProvider {
TODO("Not yet implemented")
}
override fun getDockUpdaterFeatureProvider(): DockUpdaterFeatureProvider {
TODO("Not yet implemented")
}
override fun getApplicationFeatureProvider(context: Context?) = mockApplicationFeatureProvider
override fun getLocaleFeatureProvider(): LocaleFeatureProvider {
TODO("Not yet implemented")
}
override val localeFeatureProvider: LocaleFeatureProvider
get() = TODO("Not yet implemented")
override fun getEnterprisePrivacyFeatureProvider(
context: Context?,
context: Context,
): EnterprisePrivacyFeatureProvider {
TODO("Not yet implemented")
}
override fun getSearchFeatureProvider(): SearchFeatureProvider {
override val searchFeatureProvider: SearchFeatureProvider
get() = TODO("Not yet implemented")
override fun getSurveyFeatureProvider(context: Context): SurveyFeatureProvider? {
TODO("Not yet implemented")
}
override fun getSurveyFeatureProvider(context: Context?): SurveyFeatureProvider {
override val securityFeatureProvider: SecurityFeatureProvider
get() = TODO("Not yet implemented")
override fun getUserFeatureProvider(context: Context): UserFeatureProvider {
TODO("Not yet implemented")
}
override fun getSecurityFeatureProvider(): SecurityFeatureProvider {
override val slicesFeatureProvider: SlicesFeatureProvider
get() = TODO("Not yet implemented")
override val accountFeatureProvider: AccountFeatureProvider
get() = TODO("Not yet implemented")
override val panelFeatureProvider: PanelFeatureProvider
get() = TODO("Not yet implemented")
override fun getContextualCardFeatureProvider(context: Context): ContextualCardFeatureProvider {
TODO("Not yet implemented")
}
override fun getUserFeatureProvider(context: Context?): UserFeatureProvider {
TODO("Not yet implemented")
}
override fun getSlicesFeatureProvider(): SlicesFeatureProvider {
TODO("Not yet implemented")
}
override fun getAccountFeatureProvider(): AccountFeatureProvider {
TODO("Not yet implemented")
}
override fun getPanelFeatureProvider(): PanelFeatureProvider {
TODO("Not yet implemented")
}
override fun getContextualCardFeatureProvider(
context: Context?,
): ContextualCardFeatureProvider {
TODO("Not yet implemented")
}
override fun getBluetoothFeatureProvider(): BluetoothFeatureProvider {
TODO("Not yet implemented")
}
override fun getFaceFeatureProvider(): FaceFeatureProvider {
TODO("Not yet implemented")
}
override fun getBiometricsRepositoryProvider(): BiometricsRepositoryProvider {
TODO("Not yet implemented")
}
override fun getWifiTrackerLibProvider(): WifiTrackerLibProvider {
TODO("Not yet implemented")
}
override fun getSecuritySettingsFeatureProvider(): SecuritySettingsFeatureProvider {
TODO("Not yet implemented")
}
override fun getAccessibilitySearchFeatureProvider(): AccessibilitySearchFeatureProvider {
TODO("Not yet implemented")
}
override fun getAccessibilityMetricsFeatureProvider(): AccessibilityMetricsFeatureProvider {
TODO("Not yet implemented")
}
override fun getHardwareInfoFeatureProvider(): HardwareInfoFeatureProvider {
TODO("Not yet implemented")
}
override fun getAdvancedVpnFeatureProvider(): AdvancedVpnFeatureProvider {
TODO("Not yet implemented")
}
override fun getWifiFeatureProvider(): WifiFeatureProvider {
TODO("Not yet implemented")
}
override fun getKeyboardSettingsFeatureProvider(): KeyboardSettingsFeatureProvider {
TODO("Not yet implemented")
}
override val bluetoothFeatureProvider: BluetoothFeatureProvider
get() = TODO("Not yet implemented")
override val faceFeatureProvider: FaceFeatureProvider
get() = TODO("Not yet implemented")
override val biometricsRepositoryProvider: BiometricsRepositoryProvider
get() = TODO("Not yet implemented")
override val wifiTrackerLibProvider: WifiTrackerLibProvider
get() = TODO("Not yet implemented")
override val securitySettingsFeatureProvider: SecuritySettingsFeatureProvider
get() = TODO("Not yet implemented")
override val accessibilitySearchFeatureProvider: AccessibilitySearchFeatureProvider
get() = TODO("Not yet implemented")
override val accessibilityMetricsFeatureProvider: AccessibilityMetricsFeatureProvider
get() = TODO("Not yet implemented")
override val advancedVpnFeatureProvider: AdvancedVpnFeatureProvider
get() = TODO("Not yet implemented")
override val wifiFeatureProvider: WifiFeatureProvider
get() = TODO("Not yet implemented")
override val keyboardSettingsFeatureProvider: KeyboardSettingsFeatureProvider
get() = TODO("Not yet implemented")
}

View File

@@ -95,8 +95,9 @@ public class FakeFeatureFactory extends FeatureFactory {
* Call this in {@code @Before} method of the test class to use fake factory.
*/
public static FakeFeatureFactory setupForTest() {
sFactory = new FakeFeatureFactory();
return (FakeFeatureFactory) sFactory;
FakeFeatureFactory factory = new FakeFeatureFactory();
setFactory(getAppContext(), factory);
return factory;
}
/**