screenreader: Also add test for when orca settings file is missing.

Also use constants for filenames to reduce typo failures.
This commit is contained in:
Jeremy Whiting 2025-05-29 20:54:43 -06:00
parent 1053e0dd77
commit 8d23f01393

View file

@ -22,6 +22,11 @@ use zbus::Connection;
use crate::path;
use crate::systemd::SystemdUnit;
#[cfg(test)]
const TEST_ORCA_SETTINGS: &str = "data/test-orca-settings.conf";
#[cfg(test)]
const ORCA_SETTINGS: &str = "orca-settings.conf";
#[cfg(not(test))]
const ORCA_SETTINGS: &str = "orca/user-settings.conf";
const PITCH_SETTING: &str = "average-pitch";
@ -81,7 +86,7 @@ impl<'dbus> OrcaManager<'dbus> {
#[cfg(test)]
fn settings_path(&self) -> Result<PathBuf> {
Ok(path("orca-settings.conf"))
Ok(path(ORCA_SETTINGS))
}
pub fn enabled(&self) -> bool {
@ -289,19 +294,15 @@ impl<'dbus> OrcaManager<'dbus> {
mod test {
use super::*;
use crate::testing;
use tokio::fs::copy;
use tokio::fs::{copy, remove_file};
#[tokio::test]
async fn test_enable_disable() {
let mut h = testing::start();
copy(
"data/test-orca-settings.conf",
h.test.path().join("orca-settings.conf"),
)
copy(TEST_ORCA_SETTINGS, h.test.path().join(ORCA_SETTINGS))
.await
.unwrap();
let mut manager =
OrcaManager::new(&h.new_dbus().await.expect("new_dbus"))
let mut manager = OrcaManager::new(&h.new_dbus().await.expect("new_dbus"))
.await
.expect("OrcaManager::new");
let enable_result = manager.set_enabled(true).await;
@ -316,14 +317,10 @@ mod test {
#[tokio::test]
async fn test_pitch() {
let mut h = testing::start();
copy(
"data/test-orca-settings.conf",
h.test.path().join("orca-settings.conf"),
)
copy(TEST_ORCA_SETTINGS, h.test.path().join(ORCA_SETTINGS))
.await
.unwrap();
let mut manager =
OrcaManager::new(&h.new_dbus().await.expect("new_dbus"))
let mut manager = OrcaManager::new(&h.new_dbus().await.expect("new_dbus"))
.await
.expect("OrcaManager::new");
let set_result = manager.set_pitch(5.0).await;
@ -337,19 +334,22 @@ mod test {
let too_high_result = manager.set_pitch(12.0).await;
assert!(too_high_result.is_err());
assert_eq!(manager.pitch(), 5.0);
remove_file(h.test.path().join(ORCA_SETTINGS))
.await
.unwrap();
let nofile_result = manager.set_pitch(7.0).await;
assert_eq!(manager.pitch(), 5.0);
assert!(nofile_result.is_err());
}
#[tokio::test]
async fn test_rate() {
let mut h = testing::start();
copy(
"data/test-orca-settings.conf",
h.test.path().join("orca-settings.conf"),
)
copy(TEST_ORCA_SETTINGS, h.test.path().join(ORCA_SETTINGS))
.await
.unwrap();
let mut manager =
OrcaManager::new(&h.new_dbus().await.expect("new_dbus"))
let mut manager = OrcaManager::new(&h.new_dbus().await.expect("new_dbus"))
.await
.expect("OrcaManager::new");
let set_result = manager.set_rate(5.0).await;
@ -363,19 +363,22 @@ mod test {
let too_high_result = manager.set_rate(101.0).await;
assert!(too_high_result.is_err());
assert_eq!(manager.rate(), 5.0);
remove_file(h.test.path().join(ORCA_SETTINGS))
.await
.unwrap();
let nofile_result = manager.set_rate(7.0).await;
assert_eq!(manager.rate(), 5.0);
assert!(nofile_result.is_err());
}
#[tokio::test]
async fn test_volume() {
let mut h = testing::start();
copy(
"data/test-orca-settings.conf",
h.test.path().join("orca-settings.conf"),
)
copy(TEST_ORCA_SETTINGS, h.test.path().join(ORCA_SETTINGS))
.await
.unwrap();
let mut manager =
OrcaManager::new(&h.new_dbus().await.expect("new_dbus"))
let mut manager = OrcaManager::new(&h.new_dbus().await.expect("new_dbus"))
.await
.expect("OrcaManager::new");
let set_result = manager.set_volume(5.0).await;
@ -389,5 +392,12 @@ mod test {
let too_high_result = manager.set_volume(12.0).await;
assert!(too_high_result.is_err());
assert_eq!(manager.volume(), 5.0);
remove_file(h.test.path().join(ORCA_SETTINGS))
.await
.unwrap();
let nofile_result = manager.set_volume(7.0).await;
assert_eq!(manager.volume(), 5.0);
assert!(nofile_result.is_err());
}
}