[CTS] Add test for speaker Id egress for hds and vqds
Add unit and integration test for speaker Id egress for
HotwordDetectionService and VisualQueryDetectionService.
Bug: 318617199
Test: atest CtsVoiceInteractionTestCases
Flag: FLAG_ALLOW_SPEAKER_ID_EGRESS, FLAG_ALLOW_COMPLEX_RESULTS_EGRESS_FROM_VQDS
Change-Id: I4fda5562fe9c13046fa4a7facee1324b56544505
diff --git a/tests/tests/voiceinteraction/src/android/voiceinteraction/cts/unittests/HotwordDetectedResultTest.java b/tests/tests/voiceinteraction/src/android/voiceinteraction/cts/unittests/HotwordDetectedResultTest.java
index 9e33cf7..07137c0 100644
--- a/tests/tests/voiceinteraction/src/android/voiceinteraction/cts/unittests/HotwordDetectedResultTest.java
+++ b/tests/tests/voiceinteraction/src/android/voiceinteraction/cts/unittests/HotwordDetectedResultTest.java
@@ -183,6 +183,15 @@
}
@Test
+ public void testHotwordDetectedResult_setInvalidSpeakerId() throws Exception {
+ assertThrows(IllegalArgumentException.class,
+ () -> new HotwordDetectedResult.Builder().setSpeakerId(-1).build());
+ assertThrows(IllegalArgumentException.class,
+ () -> new HotwordDetectedResult.Builder().setSpeakerId(
+ HotwordDetectedResult.getMaxSpeakerId() + 1).build());
+ }
+
+ @Test
public void testHotwordDetectedResultBuilder() throws Exception {
final ParcelFileDescriptor[] fakeAudioStreamPipe = createFakeAudioStreamPipe(
FAKE_HOTWORD_AUDIO_STREAM_DATA);
@@ -205,7 +214,8 @@
/* hotwordPhraseId= */ 1,
audioStreams,
new PersistableBundle(),
- /* backgroundAudioPower= */ 100);
+ /* backgroundAudioPower= */ 100,
+ /* speakerId= */ 1);
assertHotwordDetectedResult(hotwordDetectedResult);
HotwordAudioStream result = hotwordDetectedResult.getAudioStreams().get(0);
@@ -239,7 +249,8 @@
/* hotwordPhraseId= */ 1,
audioStreams,
new PersistableBundle(),
- /* backgroundAudioPower= */ 100);
+ /* backgroundAudioPower= */ 100,
+ /* speakerId= */ 1);
final Parcel p = Parcel.obtain();
hotwordDetectedResult.writeToParcel(p, 0);
@@ -270,7 +281,8 @@
int hotwordPhraseId,
List<HotwordAudioStream> audioStreams,
PersistableBundle extras,
- int backgroundAudioPower) {
+ int backgroundAudioPower,
+ int speakerId) {
return new HotwordDetectedResult.Builder()
.setConfidenceLevel(confidenceLevel)
.setMediaSyncEvent(mediaSyncEvent)
@@ -284,6 +296,7 @@
.setAudioStreams(audioStreams)
.setExtras(extras)
.setBackgroundAudioPower(backgroundAudioPower)
+ .setSpeakerId(speakerId)
.build();
}
@@ -301,6 +314,7 @@
assertThat(hotwordDetectedResult.getAudioStreams()).isNotNull();
assertThat(hotwordDetectedResult.getExtras()).isNotNull();
assertThat(hotwordDetectedResult.getBackgroundAudioPower()).isEqualTo(100);
+ assertThat(hotwordDetectedResult.getSpeakerId()).isEqualTo(1);
}
private static void assertHotwordAudioStream(HotwordAudioStream hotwordAudioStream,
diff --git a/tests/tests/voiceinteraction/src/android/voiceinteraction/cts/unittests/VisualQueryDetectedResultTest.java b/tests/tests/voiceinteraction/src/android/voiceinteraction/cts/unittests/VisualQueryDetectedResultTest.java
index 7df8ba2..3e98c66 100644
--- a/tests/tests/voiceinteraction/src/android/voiceinteraction/cts/unittests/VisualQueryDetectedResultTest.java
+++ b/tests/tests/voiceinteraction/src/android/voiceinteraction/cts/unittests/VisualQueryDetectedResultTest.java
@@ -18,6 +18,8 @@
import static com.google.common.truth.Truth.assertThat;
+import static org.testng.Assert.assertThrows;
+
import android.os.Parcel;
import android.service.voice.VisualQueryDetectedResult;
@@ -32,16 +34,30 @@
private static final String TEST_QUERY = "What time is it?";
@Test
+ public void testVisualQueryDetectedResult_setInvalidSpeakerId() throws Exception {
+ assertThrows(IllegalArgumentException.class,
+ () -> new VisualQueryDetectedResult.Builder().setSpeakerId(-1).build());
+ assertThrows(IllegalArgumentException.class,
+ () -> new VisualQueryDetectedResult.Builder().setSpeakerId(
+ VisualQueryDetectedResult.getMaxSpeakerId() + 1).build());
+ }
+
+ @Test
public void testVisualQueryDetectedResultBuilder() throws Exception {
final VisualQueryDetectedResult visualQueryDetectedResult =
- buildVisualQueryDetectedResult(/* partialQuery= */ TEST_QUERY);
+ buildVisualQueryDetectedResult(
+ /* partialQuery= */ TEST_QUERY,
+ /* speakerId= */ 1);
assertVisualQueryDetectedResult(visualQueryDetectedResult);
+
}
@Test
public void testHotwordDetectedResultParcelizeDeparcelize() throws Exception {
final VisualQueryDetectedResult visualQueryDetectedResult =
- buildVisualQueryDetectedResult(/* partialQuery= */ TEST_QUERY);
+ buildVisualQueryDetectedResult(
+ /* partialQuery= */ TEST_QUERY,
+ /* speakerId= */ 1);
final Parcel p = Parcel.obtain();
visualQueryDetectedResult.writeToParcel(p, 0);
p.setDataPosition(0);
@@ -52,14 +68,18 @@
assertVisualQueryDetectedResult(targetVisualQueryDetectedResult);
}
- private VisualQueryDetectedResult buildVisualQueryDetectedResult(String partialQuery) {
+ private VisualQueryDetectedResult buildVisualQueryDetectedResult(
+ String partialQuery,
+ int speakerId) {
return new VisualQueryDetectedResult.Builder()
.setPartialQuery(TEST_QUERY)
+ .setSpeakerId(speakerId)
.build();
}
private void assertVisualQueryDetectedResult(
VisualQueryDetectedResult visualQueryDetectedResult) {
assertThat(visualQueryDetectedResult.getPartialQuery()).isEqualTo(TEST_QUERY);
+ assertThat(visualQueryDetectedResult.getSpeakerId()).isEqualTo(1);
}
}