OSDN Git Service

Add feature flag for suggestion/SettingsIntelligence integ.
authorFan Zhang <zhfan@google.com>
Thu, 14 Sep 2017 23:04:35 +0000 (16:04 -0700)
committerFan Zhang <zhfan@google.com>
Thu, 14 Sep 2017 23:04:35 +0000 (16:04 -0700)
Bug: 65065268
Test: robotests
Change-Id: I42e1f8b01d7b82de3b94bd77943a9a119adf5867

src/com/android/settings/dashboard/suggestions/SuggestionControllerMixin.java
tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionControllerMixinTest.java

index 0142203..f58946d 100644 (file)
@@ -26,6 +26,7 @@ import android.os.RemoteException;
 import android.service.settings.suggestions.ISuggestionService;
 import android.service.settings.suggestions.Suggestion;
 import android.support.annotation.VisibleForTesting;
+import android.util.FeatureFlagUtils;
 import android.util.Log;
 
 import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -40,6 +41,8 @@ import java.util.List;
  */
 public class SuggestionControllerMixin implements LifecycleObserver, OnStart, OnStop {
 
+    @VisibleForTesting
+    static final String FEATURE_FLAG = "new_settings_suggestion";
     private static final String TAG = "SuggestionCtrlMixin";
     private static final boolean DEBUG = false;
 
@@ -49,6 +52,10 @@ public class SuggestionControllerMixin implements LifecycleObserver, OnStart, On
 
     private ISuggestionService mRemoteService;
 
+    public static boolean isEnabled() {
+        return FeatureFlagUtils.isEnabled(FEATURE_FLAG);
+    }
+
     public SuggestionControllerMixin(Context context, Lifecycle lifecycle) {
         mContext = context.getApplicationContext();
         mServiceIntent = new Intent().setComponent(
@@ -79,11 +86,6 @@ public class SuggestionControllerMixin implements LifecycleObserver, OnStart, On
         }
     }
 
-    public boolean isEnabled() {
-        // TODO: Set up feature flag
-        return true;
-    }
-
     /**
      * Get setting suggestions.
      */
index 1061184..ac2026c 100644 (file)
@@ -21,13 +21,15 @@ import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
-import android.os.RemoteException;
 import android.service.settings.suggestions.ISuggestionService;
+import android.util.FeatureFlagUtils;
 
 import com.android.settings.TestConfig;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.SettingsShadowSystemProperties;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -37,7 +39,10 @@ import org.robolectric.annotation.Config;
 import org.robolectric.util.ReflectionHelpers;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION,
+        shadows = {
+                SettingsShadowSystemProperties.class
+        })
 public class SuggestionControllerMixinTest {
 
     @Mock
@@ -55,10 +60,23 @@ public class SuggestionControllerMixinTest {
         when(mContext.getApplicationContext()).thenReturn(mContext);
     }
 
+    @After
+    public void tearDown() {
+        SettingsShadowSystemProperties.clear();
+    }
+
     @Test
-    public void verifyIsEnabled() {
-        mMixin = new SuggestionControllerMixin(mContext, mLifecycle);
-        assertThat(mMixin.isEnabled()).isTrue();
+    public void systemPropertySet_verifyIsEnabled() {
+        SettingsShadowSystemProperties.set(
+                FeatureFlagUtils.FFLAG_PREFIX + SuggestionControllerMixin.FEATURE_FLAG, "true");
+        assertThat(SuggestionControllerMixin.isEnabled()).isTrue();
+    }
+
+    @Test
+    public void systemPropertyNotSet_verifyIsDisabled() {
+        SettingsShadowSystemProperties.set(
+                FeatureFlagUtils.FFLAG_PREFIX + SuggestionControllerMixin.FEATURE_FLAG, "false");
+        assertThat(SuggestionControllerMixin.isEnabled()).isFalse();
     }
 
     @Test