#[cfg(any(target_os = "linux", target_os = "freebsd"))]
mod linux_dialog {
use crate::{DialogKind, DialogOptions, PathPromptOptions, SharedString};
#[test]
fn dialog_options_covers_all_fields() {
let options = DialogOptions {
kind: DialogKind::Info,
title: SharedString::from("Test Title"),
message: SharedString::from("Test Message"),
detail: Some(SharedString::from("Detail text")),
buttons: vec![SharedString::from("OK"), SharedString::from("Cancel")],
};
assert_eq!(options.title.as_ref(), "Test Title");
assert_eq!(options.message.as_ref(), "Test Message");
assert_eq!(options.detail.as_ref().unwrap().as_ref(), "Detail text");
assert_eq!(options.buttons.len(), 2);
}
#[test]
fn dialog_options_supports_all_kinds() {
let _info = DialogKind::Info;
let _warning = DialogKind::Warning;
let _error = DialogKind::Error;
}
#[test]
fn path_prompt_options_supports_file_open_config() {
let options = PathPromptOptions {
files: true,
directories: false,
multiple: true,
prompt: Some(SharedString::from("Select files")),
};
assert!(options.files);
assert!(!options.directories);
assert!(options.multiple);
assert!(options.prompt.is_some());
}
#[test]
fn path_prompt_options_supports_directory_selection() {
let options = PathPromptOptions {
files: false,
directories: true,
multiple: false,
prompt: None,
};
assert!(!options.files);
assert!(options.directories);
}
#[test]
fn fallback_functions_exist() {
let _open_fn = crate::platform::linux::dialog::prompt_for_paths_fallback;
let _save_fn = crate::platform::linux::dialog::prompt_for_new_path_fallback;
let _show_fn = crate::platform::linux::dialog::show_dialog;
}
}