OSDN Git Service

Get rid of UserPackageWrapper util.
authorFan Zhang <zhfan@google.com>
Thu, 22 Mar 2018 22:28:46 +0000 (15:28 -0700)
committerFan Zhang <zhfan@google.com>
Thu, 22 Mar 2018 22:28:46 +0000 (15:28 -0700)
Robolectric can support framework private classes now, so there is no
need to use wrappers.

Bug: 76167422
Test: robotests
Change-Id: I034a9f0a9856348bff491f2e9b2b1f7d682ab942

src/com/android/settings/webview/WebViewAppPicker.java
src/com/android/settings/webview/WebViewUpdateServiceWrapper.java
src/com/android/settings/wrapper/UserPackageWrapper.java [deleted file]
src/com/android/settings/wrapper/UserPackageWrapperImpl.java [deleted file]
tests/robotests/src/com/android/settings/webview/WebViewAppPickerTest.java

index a5fef46..f68d27b 100644 (file)
@@ -27,11 +27,11 @@ import android.content.pm.PackageItemInfo;
 import android.content.pm.PackageManager;
 import android.support.annotation.VisibleForTesting;
 import android.text.TextUtils;
+import android.webkit.UserPackage;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
 import com.android.settings.applications.defaultapps.DefaultAppPickerFragment;
-import com.android.settings.wrapper.UserPackageWrapper;
 import com.android.settingslib.applications.DefaultAppInfo;
 import com.android.settingslib.wrapper.PackageManagerWrapper;
 
@@ -150,9 +150,9 @@ public class WebViewAppPicker extends DefaultAppPickerFragment {
     @VisibleForTesting
     String getDisabledReason(WebViewUpdateServiceWrapper webviewUpdateServiceWrapper,
             Context context, String packageName) {
-        List<UserPackageWrapper> userPackages =
+        List<UserPackage> userPackages =
                 webviewUpdateServiceWrapper.getPackageInfosAllUsers(context, packageName);
-        for (UserPackageWrapper userPackage : userPackages) {
+        for (UserPackage userPackage : userPackages) {
             if (!userPackage.isInstalledPackage()) {
                 // Package uninstalled/hidden
                 return context.getString(
index fa1cd3d..fd13586 100644 (file)
@@ -28,8 +28,6 @@ import android.webkit.WebViewProviderInfo;
 import android.widget.Toast;
 
 import com.android.settings.R;
-import com.android.settings.wrapper.UserPackageWrapper;
-import com.android.settings.wrapper.UserPackageWrapperImpl;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -37,7 +35,8 @@ import java.util.List;
 public class WebViewUpdateServiceWrapper {
     private static final String TAG = "WVUSWrapper";
 
-    public WebViewUpdateServiceWrapper() {}
+    public WebViewUpdateServiceWrapper() {
+    }
 
     /**
      * Fetch the package currently used as WebView implementation.
@@ -75,6 +74,7 @@ public class WebViewUpdateServiceWrapper {
 
     /**
      * Change WebView provider to {@param packageName}.
+     *
      * @return whether the change succeeded.
      */
     public boolean setWebViewProvider(String packageName) {
@@ -90,14 +90,8 @@ public class WebViewUpdateServiceWrapper {
     /**
      * Fetch PackageInfos for the package named {@param packageName} for all users on the device.
      */
-    public List<UserPackageWrapper> getPackageInfosAllUsers(Context context, String packageName) {
-        List<UserPackageWrapper> userPackageWrappers = new ArrayList<>();
-        List<UserPackage> userPackages =
-                UserPackage.getPackageInfosAllUsers(context, packageName, PACKAGE_FLAGS);
-        for (UserPackage userPackage : userPackages) {
-            userPackageWrappers.add(new UserPackageWrapperImpl(userPackage));
-        }
-        return userPackageWrappers;
+    public List<UserPackage> getPackageInfosAllUsers(Context context, String packageName) {
+        return UserPackage.getPackageInfosAllUsers(context, packageName, PACKAGE_FLAGS);
     }
 
     /**
diff --git a/src/com/android/settings/wrapper/UserPackageWrapper.java b/src/com/android/settings/wrapper/UserPackageWrapper.java
deleted file mode 100644 (file)
index afa1d82..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * 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.wrapper;
-
-import android.content.pm.PackageInfo;
-import android.content.pm.UserInfo;
-
-/**
- * Wrapper class around android.webkit.UserPackage - to be able to use UserPackage in Robolectric
- * tests (such tests currently don't support mocking hidden classes).
- */
-public interface UserPackageWrapper {
-    UserInfo getUserInfo();
-    PackageInfo getPackageInfo();
-    boolean isEnabledPackage();
-    boolean isInstalledPackage();
-}
diff --git a/src/com/android/settings/wrapper/UserPackageWrapperImpl.java b/src/com/android/settings/wrapper/UserPackageWrapperImpl.java
deleted file mode 100644 (file)
index 0a2b9cd..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * 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.wrapper;
-
-import android.content.pm.PackageInfo;
-import android.content.pm.UserInfo;
-import android.webkit.UserPackage;
-
-/**
- * Default implementation of UserPackageWrapper.
- */
-public class UserPackageWrapperImpl implements UserPackageWrapper {
-    private final UserPackage mUserPackage;
-
-    public UserPackageWrapperImpl(UserPackage userPackage) {
-        mUserPackage = userPackage;
-    }
-
-    public UserInfo getUserInfo() {
-        return mUserPackage.getUserInfo();
-    }
-
-    public PackageInfo getPackageInfo() {
-        return mUserPackage.getPackageInfo();
-    }
-
-    public boolean isEnabledPackage() {
-        return mUserPackage.isEnabledPackage();
-    }
-
-    public boolean isInstalledPackage() {
-        return mUserPackage.isInstalledPackage();
-    }
-}
index 7ed8756..2a95bc2 100644 (file)
@@ -39,10 +39,10 @@ import android.content.pm.PackageItemInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.UserInfo;
 import android.os.UserManager;
+import android.webkit.UserPackage;
 
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.widget.RadioButtonPreference;
-import com.android.settings.wrapper.UserPackageWrapper;
 import com.android.settingslib.applications.DefaultAppInfo;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 import com.android.settingslib.wrapper.PackageManagerWrapper;
@@ -135,7 +135,7 @@ public class WebViewAppPickerTest {
 
     private void testSuccessfulClickChangesProvider() {
         when(mWvusWrapper.getValidWebViewApplicationInfos(any()))
-            .thenReturn(Collections.singletonList(createApplicationInfo(DEFAULT_PACKAGE_NAME)));
+                .thenReturn(Collections.singletonList(createApplicationInfo(DEFAULT_PACKAGE_NAME)));
         when(mWvusWrapper.setWebViewProvider(eq(DEFAULT_PACKAGE_NAME))).thenReturn(true);
 
         RadioButtonPreference defaultPackagePref = mock(RadioButtonPreference.class);
@@ -149,7 +149,7 @@ public class WebViewAppPickerTest {
 
     private void testFailingClickUpdatesSetting() {
         when(mWvusWrapper.getValidWebViewApplicationInfos(any()))
-            .thenReturn(Collections.singletonList(createApplicationInfo(DEFAULT_PACKAGE_NAME)));
+                .thenReturn(Collections.singletonList(createApplicationInfo(DEFAULT_PACKAGE_NAME)));
         when(mWvusWrapper.setWebViewProvider(eq(DEFAULT_PACKAGE_NAME))).thenReturn(false);
 
         RadioButtonPreference defaultPackagePref = mock(RadioButtonPreference.class);
@@ -229,24 +229,24 @@ public class WebViewAppPickerTest {
 
     @Test
     public void testDisabledReasonNullIfPackagesOk() {
-        UserPackageWrapper packageForFirstUser = mock(UserPackageWrapper.class);
+        UserPackage packageForFirstUser = mock(UserPackage.class);
         when(packageForFirstUser.isEnabledPackage()).thenReturn(true);
         when(packageForFirstUser.isInstalledPackage()).thenReturn(true);
 
-        UserPackageWrapper packageForSecondUser = mock(UserPackageWrapper.class);
+        UserPackage packageForSecondUser = mock(UserPackage.class);
         when(packageForSecondUser.isEnabledPackage()).thenReturn(true);
         when(packageForSecondUser.isInstalledPackage()).thenReturn(true);
 
         WebViewUpdateServiceWrapper wvusWrapper = mock(WebViewUpdateServiceWrapper.class);
         when(wvusWrapper.getPackageInfosAllUsers(any(), eq(DEFAULT_PACKAGE_NAME)))
-            .thenReturn(Arrays.asList(packageForFirstUser, packageForSecondUser));
+                .thenReturn(Arrays.asList(packageForFirstUser, packageForSecondUser));
 
         assertThat(mPicker.getDisabledReason(wvusWrapper, mContext, DEFAULT_PACKAGE_NAME)).isNull();
     }
 
     @Test
     public void testDisabledReasonForSingleUserDisabledPackage() {
-        UserPackageWrapper packageForFirstUser = mock(UserPackageWrapper.class);
+        UserPackage packageForFirstUser = mock(UserPackage.class);
         when(packageForFirstUser.isEnabledPackage()).thenReturn(false);
         when(packageForFirstUser.isInstalledPackage()).thenReturn(true);
         when(packageForFirstUser.getUserInfo()).thenReturn(mFirstUser);
@@ -257,12 +257,12 @@ public class WebViewAppPickerTest {
 
         final String expectedReason = String.format("(disabled for user %s)", mFirstUser.name);
         assertThat(mPicker.getDisabledReason(wvusWrapper, mContext, DEFAULT_PACKAGE_NAME))
-            .isEqualTo(expectedReason);
+                .isEqualTo(expectedReason);
     }
 
     @Test
     public void testDisabledReasonForSingleUserUninstalledPackage() {
-        UserPackageWrapper packageForFirstUser = mock(UserPackageWrapper.class);
+        UserPackage packageForFirstUser = mock(UserPackage.class);
         when(packageForFirstUser.isEnabledPackage()).thenReturn(true);
         when(packageForFirstUser.isInstalledPackage()).thenReturn(false);
         when(packageForFirstUser.getUserInfo()).thenReturn(mFirstUser);
@@ -273,17 +273,17 @@ public class WebViewAppPickerTest {
 
         final String expectedReason = String.format("(uninstalled for user %s)", mFirstUser.name);
         assertThat(mPicker.getDisabledReason(wvusWrapper, mContext, DEFAULT_PACKAGE_NAME))
-            .isEqualTo(expectedReason);
+                .isEqualTo(expectedReason);
     }
 
     @Test
     public void testDisabledReasonSeveralUsers() {
-        UserPackageWrapper packageForFirstUser = mock(UserPackageWrapper.class);
+        UserPackage packageForFirstUser = mock(UserPackage.class);
         when(packageForFirstUser.isEnabledPackage()).thenReturn(false);
         when(packageForFirstUser.isInstalledPackage()).thenReturn(true);
         when(packageForFirstUser.getUserInfo()).thenReturn(mFirstUser);
 
-        UserPackageWrapper packageForSecondUser = mock(UserPackageWrapper.class);
+        UserPackage packageForSecondUser = mock(UserPackage.class);
         when(packageForSecondUser.isEnabledPackage()).thenReturn(true);
         when(packageForSecondUser.isInstalledPackage()).thenReturn(false);
         when(packageForSecondUser.getUserInfo()).thenReturn(mSecondUser);
@@ -294,7 +294,7 @@ public class WebViewAppPickerTest {
 
         final String expectedReason = String.format("(disabled for user %s)", mFirstUser.name);
         assertThat(mPicker.getDisabledReason(wvusWrapper, mContext, DEFAULT_PACKAGE_NAME))
-            .isEqualTo(expectedReason);
+                .isEqualTo(expectedReason);
     }
 
     /**
@@ -303,12 +303,12 @@ public class WebViewAppPickerTest {
      */
     @Test
     public void testDisabledReasonUninstalledAndDisabled() {
-        UserPackageWrapper packageForFirstUser = mock(UserPackageWrapper.class);
+        UserPackage packageForFirstUser = mock(UserPackage.class);
         when(packageForFirstUser.isEnabledPackage()).thenReturn(false);
         when(packageForFirstUser.isInstalledPackage()).thenReturn(false);
         when(packageForFirstUser.getUserInfo()).thenReturn(mFirstUser);
 
-        UserPackageWrapper packageForSecondUser = mock(UserPackageWrapper.class);
+        UserPackage packageForSecondUser = mock(UserPackage.class);
         when(packageForSecondUser.isEnabledPackage()).thenReturn(true);
         when(packageForSecondUser.isInstalledPackage()).thenReturn(true);
         when(packageForSecondUser.getUserInfo()).thenReturn(mSecondUser);
@@ -319,7 +319,7 @@ public class WebViewAppPickerTest {
 
         final String expectedReason = String.format("(uninstalled for user %s)", mFirstUser.name);
         assertThat(mPicker.getDisabledReason(wvusWrapper, mContext, DEFAULT_PACKAGE_NAME))
-            .isEqualTo(expectedReason);
+                .isEqualTo(expectedReason);
     }
 
     /**
@@ -343,7 +343,8 @@ public class WebViewAppPickerTest {
         RadioButtonPreference mockPreference = mock(RadioButtonPreference.class);
         mPicker.bindPreference(mockPreference, DEFAULT_PACKAGE_NAME, webviewAppInfo, null);
         mPicker
-            .bindPreferenceExtra(mockPreference, DEFAULT_PACKAGE_NAME, webviewAppInfo, null, null);
+                .bindPreferenceExtra(mockPreference, DEFAULT_PACKAGE_NAME, webviewAppInfo, null,
+                        null);
         verify(mockPreference, times(1)).setTitle(eq("myPackage myVersionName"));
         verify(mockPreference, times(1)).setTitle(any());
     }