From 9c1b75b833bbd2643e1974b05cedb61483f8cae7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20Kj=C3=A4ll?= Date: Sat, 10 May 2025 15:52:50 +0200 Subject: [PATCH] A unit test for password files with nordic letters in them --- src/tests/pass.rs | 23 ++++++++++++++++++ .../test_nordic_letters_in_filenames.tar.gz | Bin 0 -> 11985 bytes 2 files changed, 23 insertions(+) create mode 100644 testres/test_nordic_letters_in_filenames.tar.gz diff --git a/src/tests/pass.rs b/src/tests/pass.rs index e8fca627..18ad1e38 100644 --- a/src/tests/pass.rs +++ b/src/tests/pass.rs @@ -128,6 +128,29 @@ fn populate_password_list_small_repo() -> Result<()> { Ok(()) } +#[test] +fn test_nordic_letters_in_filenames() -> Result<()> { + let dir = UnpackedDir::new("test_nordic_letters_in_filenames")?; + + let store = PasswordStore::new( + "default", + &Some(dir.dir()), + &None, + &Some(dir.dir()), + &None, + &CryptoImpl::GpgMe, + &None, + )?; + let results = store.all_passwords()?; + + assert_eq!(results.len(), 1); + assert_eq!(results[0].name, "test_åæøÅÆØ"); + assert_eq!(results[0].committed_by, Some("Alexander Kjäll".to_owned())); + assert!(results[0].signature_status.is_none()); + assert_eq!(results[0].is_in_git, RepositoryStatus::InRepo); + Ok(()) +} + #[test] fn populate_password_list_repo_with_deleted_files() -> Result<()> { let dir = UnpackedDir::new("populate_password_list_repo_with_deleted_files")?; diff --git a/testres/test_nordic_letters_in_filenames.tar.gz b/testres/test_nordic_letters_in_filenames.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..ce69b6359fc25f825aab2ac61cfe2af22cc964fe GIT binary patch literal 11985 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 literal 0 HcmV?d00001