If there are no activities registered for voice intents, don't run the
corresponding CTS tests.
For example, Android television implementations don't process voice intents: battery_saver_mode.
BUG=23778283
Change-Id: I33d581d5c33884b85ff560df6ff0540c7b221c5a
diff --git a/tests/tests/alarmclock/src/android/alarmclock/cts/AlarmClockTestBase.java b/tests/tests/alarmclock/src/android/alarmclock/cts/AlarmClockTestBase.java
index 4e5b4ce..0d434f2 100644
--- a/tests/tests/alarmclock/src/android/alarmclock/cts/AlarmClockTestBase.java
+++ b/tests/tests/alarmclock/src/android/alarmclock/cts/AlarmClockTestBase.java
@@ -70,7 +70,7 @@
new IntentFilter(Utils.BROADCAST_INTENT + testCaseType.toString()));
}
- private boolean isIntentAupported(TestcaseType testCaseType) {
+ private boolean isIntentSupported(TestcaseType testCaseType) {
Intent intent;
switch (testCaseType) {
case DISMISS_ALARM:
@@ -102,7 +102,7 @@
protected String runTest(TestcaseType testCaseType) throws Exception {
Log.i(TAG, "Begin Testing: " + testCaseType);
// Make sure the corresponding intent is supported by the platform, before testing.
- if (!isIntentAupported(testCaseType)) return Utils.COMPLETION_RESULT;
+ if (!isIntentSupported(testCaseType)) return Utils.COMPLETION_RESULT;
if (!startTestActivity(testCaseType)) {
fail("test activity start failed for testcase = " + testCaseType);
diff --git a/tests/tests/voicesettings/src/android/voicesettings/cts/AirplaneModeTest.java b/tests/tests/voicesettings/src/android/voicesettings/cts/AirplaneModeTest.java
index 4597651..2d19162 100644
--- a/tests/tests/voicesettings/src/android/voicesettings/cts/AirplaneModeTest.java
+++ b/tests/tests/voicesettings/src/android/voicesettings/cts/AirplaneModeTest.java
@@ -16,6 +16,8 @@
package android.voicesettings.cts;
+import static android.provider.Settings.ACTION_VOICE_CONTROL_AIRPLANE_MODE;
+
import android.provider.Settings;
import android.provider.Settings.Global;
import android.util.Log;
@@ -33,6 +35,9 @@
}
public void testAll() throws Exception {
+ if (!isIntentSupported(ACTION_VOICE_CONTROL_AIRPLANE_MODE)) {
+ return;
+ }
int mode;
try {
mode = getMode();
diff --git a/tests/tests/voicesettings/src/android/voicesettings/cts/BatterySaverModeTest.java b/tests/tests/voicesettings/src/android/voicesettings/cts/BatterySaverModeTest.java
index 3d1357a..6fe82a7 100644
--- a/tests/tests/voicesettings/src/android/voicesettings/cts/BatterySaverModeTest.java
+++ b/tests/tests/voicesettings/src/android/voicesettings/cts/BatterySaverModeTest.java
@@ -16,6 +16,8 @@
package android.voicesettings.cts;
+import static android.provider.Settings.ACTION_VOICE_CONTROL_BATTERY_SAVER_MODE;
+
import android.content.Context;
import android.os.PowerManager;
import android.util.Log;
@@ -30,6 +32,9 @@
}
public void testAll() throws Exception {
+ if (!isIntentSupported(ACTION_VOICE_CONTROL_BATTERY_SAVER_MODE)) {
+ return;
+ }
startTestActivity("BATTERYSAVER_MODE");
boolean modeIsOn = isModeOn();
Log.i(TAG, "Before testing, BATTERYSAVER_MODE is set to: " + modeIsOn);
diff --git a/tests/tests/voicesettings/src/android/voicesettings/cts/VoiceSettingsTestBase.java b/tests/tests/voicesettings/src/android/voicesettings/cts/VoiceSettingsTestBase.java
index 5386497..b355e7b 100644
--- a/tests/tests/voicesettings/src/android/voicesettings/cts/VoiceSettingsTestBase.java
+++ b/tests/tests/voicesettings/src/android/voicesettings/cts/VoiceSettingsTestBase.java
@@ -21,6 +21,7 @@
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
+import android.content.pm.PackageManager;
import android.os.Bundle;
import android.test.ActivityInstrumentationTestCase2;
import android.util.Log;
@@ -57,6 +58,17 @@
super.tearDown();
}
+ protected boolean isIntentSupported(String intentStr) {
+ Intent intent = new Intent(intentStr);
+ final PackageManager manager = mContext.getPackageManager();
+ assertNotNull(manager);
+ if (manager.resolveActivity(intent, 0) == null) {
+ Log.i(TAG, "No Voice Activity found for the intent: " + intentStr);
+ return false;
+ }
+ return true;
+ }
+
protected void startTestActivity(String intentSuffix) {
Intent intent = new Intent();
intent.setAction("android.intent.action.TEST_START_ACTIVITY_" + intentSuffix);
diff --git a/tests/tests/voicesettings/src/android/voicesettings/cts/ZenModeTest.java b/tests/tests/voicesettings/src/android/voicesettings/cts/ZenModeTest.java
index ca86918..b0ddf44 100644
--- a/tests/tests/voicesettings/src/android/voicesettings/cts/ZenModeTest.java
+++ b/tests/tests/voicesettings/src/android/voicesettings/cts/ZenModeTest.java
@@ -16,6 +16,7 @@
package android.voicesettings.cts;
+import static android.provider.Settings.ACTION_VOICE_CONTROL_DO_NOT_DISTURB_MODE;
import static android.provider.Settings.EXTRA_DO_NOT_DISTURB_MODE_ENABLED;
import static android.provider.Settings.EXTRA_DO_NOT_DISTURB_MODE_MINUTES;
@@ -39,6 +40,9 @@
}
public void testAll() throws Exception {
+ if (!isIntentSupported(ACTION_VOICE_CONTROL_DO_NOT_DISTURB_MODE)) {
+ return;
+ }
int mode;
try {
mode = getMode();