mirror of
https://gitlab.steamos.cloud/holo/steamos-manager.git
synced 2025-07-15 18:56:49 -04:00
Add a test for voice.
Adds a test voice instead of relying on speech-dispatcher. just to be sure the plumbing is set up right.
This commit is contained in:
parent
60bbad9449
commit
c6e6d44a84
1 changed files with 42 additions and 1 deletions
|
@ -39,6 +39,12 @@ use crate::uinput::UInputDevice;
|
||||||
const TEST_ORCA_SETTINGS: &str = "data/test-orca-settings.conf";
|
const TEST_ORCA_SETTINGS: &str = "data/test-orca-settings.conf";
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
const ORCA_SETTINGS: &str = "orca-settings.conf";
|
const ORCA_SETTINGS: &str = "orca-settings.conf";
|
||||||
|
#[cfg(test)]
|
||||||
|
const TEST_VOICE_NAME: &str = "testvoice";
|
||||||
|
#[cfg(test)]
|
||||||
|
const TEST_VOICE_LANGUAGE: &str = "testvoicelanguage";
|
||||||
|
#[cfg(test)]
|
||||||
|
const TEST_VOICE_VARIANT: &str = "testvoicevariant";
|
||||||
|
|
||||||
#[cfg(not(test))]
|
#[cfg(not(test))]
|
||||||
const ORCA_SETTINGS: &str = "orca/user-settings.conf";
|
const ORCA_SETTINGS: &str = "orca/user-settings.conf";
|
||||||
|
@ -138,7 +144,6 @@ impl<'dbus> OrcaManager<'dbus> {
|
||||||
Key::Up,
|
Key::Up,
|
||||||
])?;
|
])?;
|
||||||
|
|
||||||
#[cfg(not(test))]
|
|
||||||
match manager.init_voice_list() {
|
match manager.init_voice_list() {
|
||||||
Ok(()) => trace!("Voice list loaded"),
|
Ok(()) => trace!("Voice list loaded"),
|
||||||
Err(e) => error!("Unable to init voice list. {e}"),
|
Err(e) => error!("Unable to init voice list. {e}"),
|
||||||
|
@ -174,6 +179,21 @@ impl<'dbus> OrcaManager<'dbus> {
|
||||||
self.voices_by_language.clone()
|
self.voices_by_language.clone()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
fn init_voice_list(&mut self) -> Result<()> {
|
||||||
|
let test_voice = Voice {
|
||||||
|
name: TEST_VOICE_NAME.to_string(),
|
||||||
|
language: TEST_VOICE_LANGUAGE.to_string(),
|
||||||
|
variant: Some(TEST_VOICE_VARIANT.to_string()),
|
||||||
|
};
|
||||||
|
self.voices.insert(TEST_VOICE_NAME.to_string(), test_voice);
|
||||||
|
self.voices_by_language
|
||||||
|
.entry(TEST_VOICE_LANGUAGE.to_string())
|
||||||
|
.or_default()
|
||||||
|
.push(TEST_VOICE_NAME.to_string());
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
pub fn get_voice_locales(&self) -> Vec<String> {
|
pub fn get_voice_locales(&self) -> Vec<String> {
|
||||||
self.voices_by_language.keys().cloned().collect()
|
self.voices_by_language.keys().cloned().collect()
|
||||||
}
|
}
|
||||||
|
@ -745,6 +765,27 @@ mod test {
|
||||||
assert!(nofile_result.is_err());
|
assert!(nofile_result.is_err());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn test_voice() {
|
||||||
|
let mut h = testing::start();
|
||||||
|
copy(TEST_ORCA_SETTINGS, h.test.path().join(ORCA_SETTINGS))
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
let mut manager = OrcaManager::new(&h.new_dbus().await.expect("new_dbus"))
|
||||||
|
.await
|
||||||
|
.expect("OrcaManager::new");
|
||||||
|
let set_result = manager.set_voice(TEST_VOICE_NAME).await;
|
||||||
|
assert!(set_result.is_ok());
|
||||||
|
assert_eq!(manager.voice(), TEST_VOICE_NAME);
|
||||||
|
|
||||||
|
remove_file(h.test.path().join(ORCA_SETTINGS))
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
let nofile_result = manager.set_voice(TEST_VOICE_NAME).await;
|
||||||
|
assert_eq!(manager.voice(), TEST_VOICE_NAME);
|
||||||
|
assert!(nofile_result.is_err());
|
||||||
|
}
|
||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_read_next_word() {
|
async fn test_read_next_word() {
|
||||||
let mut h = testing::start();
|
let mut h = testing::start();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue