From a44e8af588de848630400033c065516ca2125b99 Mon Sep 17 00:00:00 2001 From: Sinan Nalkaya Date: Thu, 1 Oct 2026 13:45:11 +0200 Subject: [PATCH] Move media & home dirs tests to fs tests. --- library/std/src/fs/dirs.rs | 67 ------------------------------------- library/std/src/fs/tests.rs | 63 ++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 67 deletions(-) diff --git a/library/std/src/fs/dirs.rs b/library/std/src/fs/dirs.rs index f8b855c994ff2..a9e11e37b2639 100644 --- a/library/std/src/fs/dirs.rs +++ b/library/std/src/fs/dirs.rs @@ -519,70 +519,3 @@ impl MediaDirs { self } } - -#[cfg(test)] -mod tests { - use super::*; - - fn test_dir(what: &str) -> PathBuf { - crate::env::current_dir().unwrap().ancestors().last().unwrap().join(what) - } - - #[test] - fn test_home_dirs_field_hookup_matches() { - let mut dirs = HomeDirs::empty(); - - assert_eq!(dirs.config_home(), None); - assert_eq!(dirs.data_home(), None); - assert_eq!(dirs.state_home(), None); - assert_eq!(dirs.cache_home(), None); - - let config = test_dir("config"); - let data = test_dir("data"); - let state = test_dir("state"); - let cache = test_dir("cache"); - - dirs.set_config_home(config.clone()); - dirs.set_data_home(data.clone()); - dirs.set_state_home(state.clone()); - dirs.set_cache_home(cache.clone()); - - assert_eq!(dirs.config_home(), Some(config.as_ref())); - assert_eq!(dirs.data_home(), Some(data.as_ref())); - assert_eq!(dirs.state_home(), Some(state.as_ref())); - assert_eq!(dirs.cache_home(), Some(cache.as_ref())); - } - - #[test] - fn test_media_dirs_field_hookup_matches() { - let mut dirs = MediaDirs::empty(); - - assert_eq!(dirs.desktop(), None); - assert_eq!(dirs.documents(), None); - assert_eq!(dirs.downloads(), None); - assert_eq!(dirs.music(), None); - assert_eq!(dirs.pictures(), None); - assert_eq!(dirs.videos(), None); - - let desktop = test_dir("desktop"); - let documents = test_dir("documents"); - let downloads = test_dir("downloads"); - let music = test_dir("music"); - let pictures = test_dir("pictures"); - let videos = test_dir("videos"); - - dirs.set_desktop(desktop.clone()); - dirs.set_documents(documents.clone()); - dirs.set_downloads(downloads.clone()); - dirs.set_music(music.clone()); - dirs.set_pictures(pictures.clone()); - dirs.set_videos(videos.clone()); - - assert_eq!(dirs.desktop(), Some(desktop.as_ref())); - assert_eq!(dirs.documents(), Some(documents.as_ref())); - assert_eq!(dirs.downloads(), Some(downloads.as_ref())); - assert_eq!(dirs.music(), Some(music.as_ref())); - assert_eq!(dirs.pictures(), Some(pictures.as_ref())); - assert_eq!(dirs.videos(), Some(videos.as_ref())); - } -} diff --git a/library/std/src/fs/tests.rs b/library/std/src/fs/tests.rs index 29c1aad06e98c..7f16e41dcf5d7 100644 --- a/library/std/src/fs/tests.rs +++ b/library/std/src/fs/tests.rs @@ -1,6 +1,7 @@ use rand::RngCore; use super::Dir; +use super::dirs::{HomeDirs, MediaDirs}; use crate::fs::{self, File, FileTimes, OpenOptions, TryLockError, exists}; use crate::io::prelude::*; use crate::io::{BorrowedBuf, ErrorKind, SeekFrom}; @@ -3166,3 +3167,65 @@ fn test_dir_metadata() { assert!(!metadata.is_file()); assert!(metadata.is_symlink()); } + +fn root_test_dir(what: &str) -> PathBuf { + crate::env::current_dir().unwrap().ancestors().last().unwrap().join(what) +} + +#[test] +fn test_home_dirs_field_hookup_matches() { + let mut dirs = HomeDirs::empty(); + + assert_eq!(dirs.config_home(), None); + assert_eq!(dirs.data_home(), None); + assert_eq!(dirs.state_home(), None); + assert_eq!(dirs.cache_home(), None); + + let config = root_test_dir("config"); + let data = root_test_dir("data"); + let state = root_test_dir("state"); + let cache = root_test_dir("cache"); + + dirs.set_config_home(config.clone()); + dirs.set_data_home(data.clone()); + dirs.set_state_home(state.clone()); + dirs.set_cache_home(cache.clone()); + + assert_eq!(dirs.config_home(), Some(config.as_ref())); + assert_eq!(dirs.data_home(), Some(data.as_ref())); + assert_eq!(dirs.state_home(), Some(state.as_ref())); + assert_eq!(dirs.cache_home(), Some(cache.as_ref())); +} + +#[test] +fn test_media_dirs_field_hookup_matches() { + let mut dirs = MediaDirs::empty(); + + assert_eq!(dirs.desktop(), None); + assert_eq!(dirs.documents(), None); + assert_eq!(dirs.downloads(), None); + assert_eq!(dirs.music(), None); + assert_eq!(dirs.pictures(), None); + assert_eq!(dirs.videos(), None); + + let desktop = root_test_dir("desktop"); + let documents = root_test_dir("documents"); + let downloads = root_test_dir("downloads"); + let music = root_test_dir("music"); + let pictures = root_test_dir("pictures"); + let videos = root_test_dir("videos"); + + dirs.set_desktop(desktop.clone()); + dirs.set_documents(documents.clone()); + dirs.set_downloads(downloads.clone()); + dirs.set_music(music.clone()); + dirs.set_pictures(pictures.clone()); + dirs.set_videos(videos.clone()); + + assert_eq!(dirs.desktop(), Some(desktop.as_ref())); + assert_eq!(dirs.documents(), Some(documents.as_ref())); + assert_eq!(dirs.downloads(), Some(downloads.as_ref())); + assert_eq!(dirs.music(), Some(music.as_ref())); + assert_eq!(dirs.pictures(), Some(pictures.as_ref())); + assert_eq!(dirs.videos(), Some(videos.as_ref())); +}