diff --git a/tests/common/mod.rs b/tests/common/mod.rs
index 0f7224c..fe05464 100644
@@ -52,14 +52,21 @@ pub fn test(language: &str, style: &str, mathml: &str, speech: &str) {
set_rules_dir(abs_rules_dir_path()).unwrap();
libmathcat::speech::SPEECH_RULES.with(|rules| {
let mut rules = rules.borrow_mut();
- let changes;
+ let mut changes = None;
{
let mut prefs = rules.pref_manager.borrow_mut();
- prefs.set_user_prefs("SpeechOverrides_CapitalLetters", ""); // makes testing simpler
- prefs.set_user_prefs("PauseFactor", "100"); // makes testing simpler
- prefs.set_user_prefs("Language", language);
- prefs.set_user_prefs("Verbosity", "Medium");
- changes = prefs.set_user_prefs("SpeechStyle", style);
+ let user_prefs = prefs.get_user_prefs();
+ let old_language = user_prefs.to_string("Language");
+ let old_style = user_prefs.to_string("SpeechStyle");
+ user_prefs.set_string_value("SpeechOverrides_CapitalLetters", ""); // makes testing simpler
+ user_prefs.set_string_value("PauseFactor", "100"); // makes testing simpler
+ user_prefs.set_string_value("Verbosity", "Medium");
+ if &old_language != language {
+ changes = prefs.set_user_prefs("Language", language);
+ }
+ if &old_style != style {
+ changes = prefs.set_user_prefs("SpeechStyle", style);
+ }
}
if let Some(changes) = changes {
rules.invalidate(changes);
@@ -79,10 +86,11 @@ pub fn test_prefs(language: &str, speech_style: &str, test_prefs: Vec<(&str, &st
let mut changes;
{
let mut prefs = rules.pref_manager.borrow_mut();
- prefs.set_user_prefs("SpeechOverrides_CapitalLetters", ""); // makes testing simpler
- prefs.set_user_prefs("PauseFactor", "100"); // makes testing simpler
- prefs.set_user_prefs("Language", language);
- changes = prefs.set_user_prefs("SpeechStyle", speech_style).unwrap_or_default();
+ let user_prefs = prefs.get_user_prefs();
+ user_prefs.set_string_value("SpeechOverrides_CapitalLetters", ""); // makes testing simpler
+ user_prefs.set_string_value("PauseFactor", "100"); // makes testing simpler
+ user_prefs.set_string_value("Language", language);
+ changes = prefs.set_user_prefs("SpeechStyle", "ClearSpeak").unwrap_or_default();
for (pref_name, pref_value) in test_prefs {
if let Some(more_changes) = prefs.set_user_prefs(pref_name, pref_value) {
changes.add_changes(more_changes);
@@ -105,9 +113,10 @@ pub fn test_ClearSpeak(language: &str, pref_name: &str, pref_value: &str, mathml
let mut changes;
{ // needs to be scoped due to problems with rules potentially being used with prefs' destructor runs in an outer scope
let mut prefs = rules.pref_manager.borrow_mut();
- prefs.set_user_prefs("SpeechOverrides_CapitalLetters", ""); // makes testing simpler
- prefs.set_user_prefs("PauseFactor", "100"); // makes testing simpler
- prefs.set_user_prefs("Language", language);
+ let user_prefs = prefs.get_user_prefs();
+ user_prefs.set_string_value("SpeechOverrides_CapitalLetters", ""); // makes testing simpler
+ user_prefs.set_string_value("PauseFactor", "100"); // makes testing simpler
+ user_prefs.set_string_value("Language", language);
changes = prefs.set_user_prefs("SpeechStyle", "ClearSpeak").unwrap_or_default();
let more_changes = prefs.set_user_prefs(pref_name, pref_value).unwrap_or_default();
changes.add_changes(more_changes);
@@ -128,9 +137,10 @@ pub fn test_ClearSpeak_prefs(language: &str, test_prefs: Vec<(&str, &str)>, math
let mut changes;
{
let mut prefs = rules.pref_manager.borrow_mut();
- prefs.set_user_prefs("SpeechOverrides_CapitalLetters", ""); // makes testing simpler
- prefs.set_user_prefs("PauseFactor", "100"); // makes testing simpler
- prefs.set_user_prefs("Language", language);
+ let user_prefs = prefs.get_user_prefs();
+ user_prefs.set_string_value("SpeechOverrides_CapitalLetters", ""); // makes testing simpler
+ user_prefs.set_string_value("PauseFactor", "100"); // makes testing simpler
+ user_prefs.set_string_value("Language", language);
changes = prefs.set_user_prefs("SpeechStyle", "ClearSpeak").unwrap_or_default();
for (pref_name, pref_value) in test_prefs {
if let Some(more_changes) = prefs.set_user_prefs(pref_name, pref_value) {