diff options
| author | Fuwn <[email protected]> | 2022-06-28 08:03:40 +0000 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2022-06-28 08:03:40 +0000 |
| commit | 50d118840448614b6309621faccc595a817782d4 (patch) | |
| tree | 1ad05b1d6c0f81ff6924e0dfdac8a51b3d2f4af1 /germ/tests/meta.rs | |
| parent | fix(germ): don't default macros (diff) | |
| download | archived-germ-0.3.3.tar.xz archived-germ-0.3.3.zip | |
fix(crate): crate locations for readmev0.3.3
Diffstat (limited to 'germ/tests/meta.rs')
| -rw-r--r-- | germ/tests/meta.rs | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/germ/tests/meta.rs b/germ/tests/meta.rs new file mode 100644 index 0000000..70c8adc --- /dev/null +++ b/germ/tests/meta.rs @@ -0,0 +1,101 @@ +// This file is part of Germ <https://github.com/gemrest/germ>. +// Copyright (C) 2022-2022 Fuwn <[email protected]> +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/>. +// +// Copyright (C) 2022-2022 Fuwn <[email protected]> +// SPDX-License-Identifier: GPL-3.0-only + +#[cfg(test)] +mod test { + use germ::meta::Meta; + + #[test] + fn construct_meta_with_mime() { + let mut meta = Meta::new(); + + *meta.mime_mut() = "text/gemini".to_string(); + + assert_eq!(meta.to_string(), "text/gemini"); + } + + #[test] + fn construct_meta_with_mime_and_parameters() { + let mut meta = Meta::new(); + let mut parameters = std::collections::HashMap::new(); + + parameters.insert("hi".to_string(), "2".to_string()); + parameters.insert("hi2".to_string(), "string=2".to_string()); + + *meta.mime_mut() = "text/gemini".to_string(); + *meta.parameters_mut() = parameters; + + assert_eq!(meta.to_string(), "text/gemini; hi=2; hi2=string=2"); + } + + #[test] + fn meta_to_string_without_parameters() { + let original_string = "text/gemini"; + + assert_eq!( + Meta::from_string(original_string).to_string(), + original_string + ); + } + + #[test] + fn meta_to_string_with_parameters() { + let original_string = "text/gemini; hi=2; hi2=string=2"; + + assert_eq!( + Meta::from_string(original_string).to_string(), + original_string + ); + } + + #[test] + fn meta_to_mime_without_parameters() { + let meta = Meta::from_string("text/gemini"); + + assert_eq!(meta.mime(), "text/gemini"); + assert_eq!(meta.parameters().len(), 0); + } + + #[test] + fn meta_to_map_mime() { + assert_eq!( + Meta::from_string("text/gemini; hi=2; hi2=string=2").mime(), + "text/gemini", + ); + } + + #[test] + fn meta_to_map_with_parameters() { + assert_eq!( + Meta::from_string("text/gemini; hi=2; hi2=string=2") + .parameters() + .get("hi2"), + Some(&"string=2".to_string()), + ); + } + + #[test] + fn meta_to_map_length() { + assert_eq!( + Meta::from_string("text/gemini; hi=2; hi2=string=2") + .parameters() + .len(), + 2, + ); + } +} |