am e27f1632: Merge "Set the TTS voice name for the default language." into lmp-dev
* commit 'e27f1632a62e332daa7d167ca8c992a13f0e31bd': Set the TTS voice name for the default language.
This commit is contained in:
committed by
Android Git Automerger
commit
c79ff762cd
@@ -2029,6 +2029,11 @@ public class TextToSpeech {
|
||||
mParams.putString(Engine.KEY_PARAM_LANGUAGE, defaultLanguage[0]);
|
||||
mParams.putString(Engine.KEY_PARAM_COUNTRY, defaultLanguage[1]);
|
||||
mParams.putString(Engine.KEY_PARAM_VARIANT, defaultLanguage[2]);
|
||||
|
||||
// Get the default voice for the locale.
|
||||
String defaultVoiceName = mService.getDefaultVoiceNameFor(
|
||||
defaultLanguage[0], defaultLanguage[1], defaultLanguage[2]);
|
||||
mParams.putString(Engine.KEY_PARAM_VOICE_NAME, defaultVoiceName);
|
||||
}
|
||||
|
||||
Log.i(TAG, "Set up connection to " + mName);
|
||||
|
||||
@@ -67,13 +67,18 @@ public class TextToSpeechTests extends InstrumentationTestCase {
|
||||
IDelegate delegate = LittleMock.mock(IDelegate.class);
|
||||
MockableTextToSpeechService.setMocker(delegate);
|
||||
|
||||
LittleMock.doReturn(TextToSpeech.LANG_COUNTRY_VAR_AVAILABLE).when(delegate).onIsLanguageAvailable(
|
||||
"eng", "USA", "variant");
|
||||
LittleMock.doReturn(TextToSpeech.LANG_COUNTRY_VAR_AVAILABLE).when(delegate).onLoadLanguage(
|
||||
"eng", "USA", "variant");
|
||||
|
||||
// Test 1 :Tests that calls to onLoadLanguage( ) are delegated through to the
|
||||
// service without any caching or intermediate steps.
|
||||
mTts.setLanguage(new Locale("eng", "USA", "variant"));
|
||||
LittleMock.verify(delegate, LittleMock.times(1)).onIsLanguageAvailable(
|
||||
"eng", "USA", "variant");
|
||||
assertEquals(TextToSpeech.LANG_COUNTRY_VAR_AVAILABLE, mTts.setLanguage(new Locale("eng", "USA", "variant")));
|
||||
LittleMock.verify(delegate, LittleMock.anyTimes()).onIsLanguageAvailable(
|
||||
"eng", "USA", "variant");
|
||||
LittleMock.verify(delegate, LittleMock.times(1)).onLoadLanguage(
|
||||
"eng", "USA", "variant");
|
||||
"eng", "USA", "variant");
|
||||
}
|
||||
|
||||
public void testSetLanguage_availableLanguage() throws Exception {
|
||||
@@ -86,8 +91,10 @@ public class TextToSpeechTests extends InstrumentationTestCase {
|
||||
// request language changes from that point on.
|
||||
LittleMock.doReturn(TextToSpeech.LANG_COUNTRY_AVAILABLE).when(delegate).onIsLanguageAvailable(
|
||||
"eng", "USA", "variant");
|
||||
LittleMock.doReturn(TextToSpeech.LANG_COUNTRY_AVAILABLE).when(delegate).onIsLanguageAvailable(
|
||||
"eng", "USA", "");
|
||||
LittleMock.doReturn(TextToSpeech.LANG_COUNTRY_AVAILABLE).when(delegate).onLoadLanguage(
|
||||
"eng", "USA", "variant");
|
||||
"eng", "USA", "");
|
||||
mTts.setLanguage(new Locale("eng", "USA", "variant"));
|
||||
blockingCallSpeak("foo bar", delegate);
|
||||
ArgumentCaptor<SynthesisRequest> req = LittleMock.createCaptor();
|
||||
@@ -97,6 +104,7 @@ public class TextToSpeechTests extends InstrumentationTestCase {
|
||||
assertEquals("eng", req.getValue().getLanguage());
|
||||
assertEquals("USA", req.getValue().getCountry());
|
||||
assertEquals("", req.getValue().getVariant());
|
||||
assertEquals("en-US", req.getValue().getVoiceName());
|
||||
}
|
||||
|
||||
public void testSetLanguage_unavailableLanguage() throws Exception {
|
||||
@@ -120,6 +128,7 @@ public class TextToSpeechTests extends InstrumentationTestCase {
|
||||
assertEquals("eng", req2.getValue().getLanguage());
|
||||
assertEquals("USA", req2.getValue().getCountry());
|
||||
assertEquals("", req2.getValue().getVariant());
|
||||
assertEquals("en-US", req2.getValue().getVoiceName());
|
||||
}
|
||||
|
||||
public void testIsLanguageAvailable() {
|
||||
@@ -135,6 +144,28 @@ public class TextToSpeechTests extends InstrumentationTestCase {
|
||||
"eng", "USA", "");
|
||||
}
|
||||
|
||||
public void testDefaultLanguage_setsVoiceName() throws Exception {
|
||||
IDelegate delegate = LittleMock.mock(IDelegate.class);
|
||||
MockableTextToSpeechService.setMocker(delegate);
|
||||
|
||||
// ---------------------------------------------------------
|
||||
// Test that default language also sets the default voice
|
||||
// name
|
||||
LittleMock.doReturn(TextToSpeech.LANG_COUNTRY_AVAILABLE).when(delegate).onIsLanguageAvailable(
|
||||
LittleMock.anyString(), LittleMock.anyString(), LittleMock.anyString());
|
||||
LittleMock.doReturn(TextToSpeech.LANG_COUNTRY_AVAILABLE).when(delegate).onLoadLanguage(
|
||||
LittleMock.anyString(), LittleMock.anyString(), LittleMock.anyString());
|
||||
blockingCallSpeak("foo bar", delegate);
|
||||
ArgumentCaptor<SynthesisRequest> req = LittleMock.createCaptor();
|
||||
LittleMock.verify(delegate, LittleMock.times(1)).onSynthesizeText(req.capture(),
|
||||
LittleMock.<SynthesisCallback>anyObject());
|
||||
|
||||
Locale defaultLocale = Locale.getDefault();
|
||||
assertEquals(defaultLocale.getISO3Language(), req.getValue().getLanguage());
|
||||
assertEquals(defaultLocale.getISO3Country(), req.getValue().getCountry());
|
||||
assertEquals("", req.getValue().getVariant());
|
||||
assertEquals(defaultLocale.toLanguageTag(), req.getValue().getVoiceName());
|
||||
}
|
||||
|
||||
private void blockingCallSpeak(String speech, IDelegate mock) throws
|
||||
InterruptedException {
|
||||
|
||||
Reference in New Issue
Block a user