resolved conflicts for merge of a5ae6183 to gingerbread
Change-Id: Iae25f795cea61a8a428f44d2459342b13b6be5d0
diff --git a/tests/tests/telephony/src/android/telephony/cts/TelephonyManagerTest.java b/tests/tests/telephony/src/android/telephony/cts/TelephonyManagerTest.java
index 9ecbf20..c07c557 100644
--- a/tests/tests/telephony/src/android/telephony/cts/TelephonyManagerTest.java
+++ b/tests/tests/telephony/src/android/telephony/cts/TelephonyManagerTest.java
@@ -22,6 +22,8 @@
import dalvik.annotation.TestTargets;
import android.content.Context;
+import android.content.pm.FeatureInfo;
+import android.content.pm.PackageManager;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Looper;
@@ -31,6 +33,9 @@
import android.telephony.TelephonyManager;
import android.test.AndroidTestCase;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
import java.util.regex.Pattern;
@TestTargetClass(TelephonyManager.class)
@@ -403,4 +408,71 @@
}
}
}
+
+ @TestTargetNew(
+ level = TestLevel.COMPLETE,
+ method = "getPhoneType",
+ args = {}
+ )
+ public void testGetPhoneType() {
+ int phoneType = mTelephonyManager.getPhoneType();
+ switch (phoneType) {
+ case TelephonyManager.PHONE_TYPE_GSM:
+ assertTelephonyFeatures(PackageManager.FEATURE_TELEPHONY,
+ PackageManager.FEATURE_TELEPHONY_GSM);
+ break;
+
+ case TelephonyManager.PHONE_TYPE_CDMA:
+ assertTelephonyFeatures(PackageManager.FEATURE_TELEPHONY,
+ PackageManager.FEATURE_TELEPHONY_CDMA);
+ break;
+
+ case TelephonyManager.PHONE_TYPE_NONE:
+ assertTelephonyFeatures();
+ break;
+
+ default:
+ throw new IllegalArgumentException("Did you add a new phone type? " + phoneType);
+ }
+ }
+
+ /**
+ * Checks that the given features are enabled and also that all the other telephony features
+ * are disabled.
+ *
+ * @param expectedFeaturesEnabled that {@link PackageManager} should report
+ */
+ private void assertTelephonyFeatures(String... expectedFeaturesEnabled) {
+ // Create sets of enabled and disabled features.
+ Set<String> enabledFeatures = new HashSet<String>();
+ Collections.addAll(enabledFeatures, expectedFeaturesEnabled);
+
+ Set<String> disabledFeatures = new HashSet<String>();
+ Collections.addAll(disabledFeatures,
+ PackageManager.FEATURE_TELEPHONY,
+ PackageManager.FEATURE_TELEPHONY_GSM,
+ PackageManager.FEATURE_TELEPHONY_CDMA);
+ disabledFeatures.removeAll(enabledFeatures);
+
+ // Get all available features to test not only hasFeature but getSystemAvailableFeatures.
+ PackageManager packageManager = getContext().getPackageManager();
+ Set<String> availableFeatures = new HashSet<String>();
+ for (FeatureInfo featureInfo : packageManager.getSystemAvailableFeatures()) {
+ availableFeatures.add(featureInfo.name);
+ }
+
+ for (String feature : enabledFeatures) {
+ assertTrue("PackageManager#hasSystemFeature should return true for " + feature,
+ packageManager.hasSystemFeature(feature));
+ assertTrue("PackageManager#getSystemAvailableFeatures should have " + feature,
+ availableFeatures.contains(feature));
+ }
+
+ for (String feature : disabledFeatures) {
+ assertFalse("PackageMangaer#hasSystemFeature should NOT return true for " + feature,
+ packageManager.hasSystemFeature(feature));
+ assertFalse("PackageManage#getSystemAvailableFeatures should NOT have " + feature,
+ availableFeatures.contains(feature));
+ }
+ }
}