From 0ac8564fe528d93742db87d25a808700e6ba45e7 Mon Sep 17 00:00:00 2001 From: "Reece H. Dunn" Date: Sat, 10 Oct 2015 14:19:48 +0100 Subject: [PATCH] TextToSpeechServiceTest: add mMatchingVoice tests --- .../espeak/test/TextToSpeechServiceTest.java | 61 ++++++++++++++++--- .../src/com/reecedunn/espeak/TtsService.java | 2 +- 2 files changed, 54 insertions(+), 9 deletions(-) diff --git a/android/eSpeakTests/src/com/reecedunn/espeak/test/TextToSpeechServiceTest.java b/android/eSpeakTests/src/com/reecedunn/espeak/test/TextToSpeechServiceTest.java index cd1cdfc3..b8687ad1 100644 --- a/android/eSpeakTests/src/com/reecedunn/espeak/test/TextToSpeechServiceTest.java +++ b/android/eSpeakTests/src/com/reecedunn/espeak/test/TextToSpeechServiceTest.java @@ -18,18 +18,14 @@ package com.reecedunn.espeak.test; import android.content.Context; import android.speech.tts.TextToSpeech; -import android.speech.tts.TextToSpeech.OnInitListener; import android.test.AndroidTestCase; -import android.util.Log; import com.reecedunn.espeak.TtsService; - -import java.util.Locale; +import com.reecedunn.espeak.Voice; import static com.reecedunn.espeak.test.TtsMatcher.isTtsLangCode; import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.nullValue; +import static org.hamcrest.Matchers.*; public class TextToSpeechServiceTest extends AndroidTestCase { @@ -51,6 +47,10 @@ public class TextToSpeechServiceTest extends AndroidTestCase public int onLoadLanguage(String language, String country, String variant) { return super.onLoadLanguage(language, country, variant); } + + public Voice getActiveVoice() { + return mMatchingVoice; + } } private TtsServiceTest mService = null; @@ -82,27 +82,42 @@ public class TextToSpeechServiceTest extends AndroidTestCase public void testOnLoadLanguage() { assertThat(mService.onLoadLanguage("eng", "", ""), isTtsLangCode(TextToSpeech.LANG_COUNTRY_VAR_AVAILABLE)); checkLanguage(mService.onGetLanguage(), "eng", "", ""); + assertThat(mService.getActiveVoice(), is(notNullValue())); + assertThat(mService.getActiveVoice().name, is("en")); assertThat(mService.onLoadLanguage("eng", "USA", ""), isTtsLangCode(TextToSpeech.LANG_COUNTRY_VAR_AVAILABLE)); checkLanguage(mService.onGetLanguage(), "eng", "USA", ""); + assertThat(mService.getActiveVoice(), is(notNullValue())); + assertThat(mService.getActiveVoice().name, is("en-us")); assertThat(mService.onLoadLanguage("eng", "GBR", "scotland"), isTtsLangCode(TextToSpeech.LANG_COUNTRY_VAR_AVAILABLE)); checkLanguage(mService.onGetLanguage(), "eng", "GBR", "scotland"); + assertThat(mService.getActiveVoice(), is(notNullValue())); + assertThat(mService.getActiveVoice().name, is("en-sc")); assertThat(mService.onLoadLanguage("eng", "USA", "rp"), isTtsLangCode(TextToSpeech.LANG_COUNTRY_AVAILABLE)); checkLanguage(mService.onGetLanguage(), "eng", "USA", ""); + assertThat(mService.getActiveVoice(), is(notNullValue())); + assertThat(mService.getActiveVoice().name, is("en-us")); assertThat(mService.onLoadLanguage("eng", "", "scotland"), isTtsLangCode(TextToSpeech.LANG_COUNTRY_AVAILABLE)); checkLanguage(mService.onGetLanguage(), "eng", "", ""); + assertThat(mService.getActiveVoice(), is(notNullValue())); + assertThat(mService.getActiveVoice().name, is("en")); assertThat(mService.onLoadLanguage("eng", "FRA", "rp"), isTtsLangCode(TextToSpeech.LANG_AVAILABLE)); checkLanguage(mService.onGetLanguage(), "eng", "", ""); + assertThat(mService.getActiveVoice(), is(notNullValue())); + assertThat(mService.getActiveVoice().name, is("en-uk-rp")); assertThat(mService.onLoadLanguage("eng", "FRA", ""), isTtsLangCode(TextToSpeech.LANG_AVAILABLE)); checkLanguage(mService.onGetLanguage(), "eng", "", ""); + assertThat(mService.getActiveVoice(), is(notNullValue())); + assertThat(mService.getActiveVoice().name, is("en-uk-rp")); assertThat(mService.onLoadLanguage("ine", "", ""), isTtsLangCode(TextToSpeech.LANG_NOT_SUPPORTED)); checkLanguage(mService.onGetLanguage(), "eng", "", ""); + assertThat(mService.getActiveVoice(), is(nullValue())); } public void testOnIsLanguageAvailable() { @@ -110,27 +125,42 @@ public class TextToSpeechServiceTest extends AndroidTestCase assertThat(mService.onIsLanguageAvailable("eng", "", ""), isTtsLangCode(TextToSpeech.LANG_COUNTRY_VAR_AVAILABLE)); checkLanguage(mService.onGetLanguage(), "vie", "VNM", "saigon"); + assertThat(mService.getActiveVoice(), is(notNullValue())); + assertThat(mService.getActiveVoice().name, is("en")); assertThat(mService.onIsLanguageAvailable("eng", "USA", ""), isTtsLangCode(TextToSpeech.LANG_COUNTRY_VAR_AVAILABLE)); checkLanguage(mService.onGetLanguage(), "vie", "VNM", "saigon"); + assertThat(mService.getActiveVoice(), is(notNullValue())); + assertThat(mService.getActiveVoice().name, is("en-us")); assertThat(mService.onIsLanguageAvailable("eng", "GBR", "scotland"), isTtsLangCode(TextToSpeech.LANG_COUNTRY_VAR_AVAILABLE)); checkLanguage(mService.onGetLanguage(), "vie", "VNM", "saigon"); + assertThat(mService.getActiveVoice(), is(notNullValue())); + assertThat(mService.getActiveVoice().name, is("en-sc")); assertThat(mService.onIsLanguageAvailable("eng", "USA", "rp"), isTtsLangCode(TextToSpeech.LANG_COUNTRY_AVAILABLE)); checkLanguage(mService.onGetLanguage(), "vie", "VNM", "saigon"); + assertThat(mService.getActiveVoice(), is(notNullValue())); + assertThat(mService.getActiveVoice().name, is("en-us")); assertThat(mService.onIsLanguageAvailable("eng", "", "scotland"), isTtsLangCode(TextToSpeech.LANG_COUNTRY_AVAILABLE)); checkLanguage(mService.onGetLanguage(), "vie", "VNM", "saigon"); + assertThat(mService.getActiveVoice(), is(notNullValue())); + assertThat(mService.getActiveVoice().name, is("en")); assertThat(mService.onIsLanguageAvailable("eng", "FRA", "rp"), isTtsLangCode(TextToSpeech.LANG_AVAILABLE)); checkLanguage(mService.onGetLanguage(), "vie", "VNM", "saigon"); + assertThat(mService.getActiveVoice(), is(notNullValue())); + assertThat(mService.getActiveVoice().name, is("en-uk-rp")); assertThat(mService.onIsLanguageAvailable("eng", "FRA", ""), isTtsLangCode(TextToSpeech.LANG_AVAILABLE)); checkLanguage(mService.onGetLanguage(), "vie", "VNM", "saigon"); + assertThat(mService.getActiveVoice(), is(notNullValue())); + assertThat(mService.getActiveVoice().name, is("en-uk-rp")); assertThat(mService.onIsLanguageAvailable("ine", "", ""), isTtsLangCode(TextToSpeech.LANG_NOT_SUPPORTED)); checkLanguage(mService.onGetLanguage(), "vie", "VNM", "saigon"); + assertThat(mService.getActiveVoice(), is(nullValue())); } public void testOnGetDefaultVoiceNameFor() { @@ -138,26 +168,41 @@ public class TextToSpeechServiceTest extends AndroidTestCase assertThat(mService.onGetDefaultVoiceNameFor("eng", "", ""), is("en")); checkLanguage(mService.onGetLanguage(), "vie", "VNM", "saigon"); + assertThat(mService.getActiveVoice(), is(notNullValue())); + assertThat(mService.getActiveVoice().name, is("en")); assertThat(mService.onGetDefaultVoiceNameFor("eng", "USA", ""), is("en-us")); checkLanguage(mService.onGetLanguage(), "vie", "VNM", "saigon"); + assertThat(mService.getActiveVoice(), is(notNullValue())); + assertThat(mService.getActiveVoice().name, is("en-us")); assertThat(mService.onGetDefaultVoiceNameFor("eng", "GBR", "scotland"), is("en-sc")); checkLanguage(mService.onGetLanguage(), "vie", "VNM", "saigon"); + assertThat(mService.getActiveVoice(), is(notNullValue())); + assertThat(mService.getActiveVoice().name, is("en-sc")); assertThat(mService.onGetDefaultVoiceNameFor("eng", "USA", "rp"), is("en-us")); checkLanguage(mService.onGetLanguage(), "vie", "VNM", "saigon"); + assertThat(mService.getActiveVoice(), is(notNullValue())); + assertThat(mService.getActiveVoice().name, is("en-us")); assertThat(mService.onGetDefaultVoiceNameFor("eng", "", "scotland"), is("en")); checkLanguage(mService.onGetLanguage(), "vie", "VNM", "saigon"); + assertThat(mService.getActiveVoice(), is(notNullValue())); + assertThat(mService.getActiveVoice().name, is("en")); - assertThat(mService.onGetDefaultVoiceNameFor("eng", "FRA", "rp"), is("en-uk-rp")); // INCORRECT BEHAVIOUR + assertThat(mService.onGetDefaultVoiceNameFor("eng", "FRA", "rp"), is("en-uk-rp")); checkLanguage(mService.onGetLanguage(), "vie", "VNM", "saigon"); + assertThat(mService.getActiveVoice(), is(notNullValue())); + assertThat(mService.getActiveVoice().name, is("en-uk-rp")); - assertThat(mService.onGetDefaultVoiceNameFor("eng", "FRA", ""), is("en-uk-rp")); // INCORRECT BEHAVIOUR + assertThat(mService.onGetDefaultVoiceNameFor("eng", "FRA", ""), is("en-uk-rp")); checkLanguage(mService.onGetLanguage(), "vie", "VNM", "saigon"); + assertThat(mService.getActiveVoice(), is(notNullValue())); + assertThat(mService.getActiveVoice().name, is("en-uk-rp")); assertThat(mService.onGetDefaultVoiceNameFor("ine", "", ""), is(nullValue())); checkLanguage(mService.onGetLanguage(), "vie", "VNM", "saigon"); + assertThat(mService.getActiveVoice(), is(nullValue())); } } diff --git a/android/src/com/reecedunn/espeak/TtsService.java b/android/src/com/reecedunn/espeak/TtsService.java index 71543c78..5b077f59 100644 --- a/android/src/com/reecedunn/espeak/TtsService.java +++ b/android/src/com/reecedunn/espeak/TtsService.java @@ -68,7 +68,7 @@ public class TtsService extends TextToSpeechService { private SynthesisCallback mCallback; private final Map mAvailableVoices = new HashMap(); - private Voice mMatchingVoice = null; + protected Voice mMatchingVoice = null; private BroadcastReceiver mOnLanguagesDownloaded = null;