馃 The Definitive Gemini Protocol Toolkit
gemini gemini-protocol gemtext parser zero-dependency toolkit ast converter html markdown cli networking
at main 87 lines 2.2 kB view raw
1#[cfg(test)] 2mod test { 3 use germ::meta::Meta; 4 5 #[test] 6 fn construct_meta_with_mime() { 7 let mut meta = Meta::new(); 8 9 *meta.mime_mut() = "text/gemini".to_string(); 10 11 assert_eq!(meta.to_string(), "text/gemini"); 12 } 13 14 #[test] 15 fn construct_meta_with_mime_and_parameters() { 16 let mut meta = Meta::new(); 17 let mut parameters = std::collections::HashMap::new(); 18 19 parameters.insert("hi".to_string(), "2".to_string()); 20 parameters.insert("hi2".to_string(), "string=2".to_string()); 21 22 *meta.mime_mut() = "text/gemini".to_string(); 23 *meta.parameters_mut() = parameters; 24 25 assert_eq!(meta.to_string(), "text/gemini; hi=2; hi2=string=2"); 26 } 27 28 #[test] 29 fn meta_to_string_without_parameters() { 30 let original_string = "text/gemini"; 31 32 assert_eq!(Meta::from_string(original_string).to_string(), original_string); 33 } 34 35 #[test] 36 fn meta_to_string_with_parameters() { 37 let original_string = "text/gemini; hi=2; hi2=string=2"; 38 39 assert_eq!(Meta::from_string(original_string).to_string(), original_string); 40 } 41 42 #[test] 43 fn meta_to_mime_without_parameters() { 44 let meta = Meta::from_string("text/gemini"); 45 46 assert_eq!(meta.mime(), "text/gemini"); 47 assert_eq!(meta.parameters().len(), 0); 48 } 49 50 #[test] 51 fn meta_to_map_mime() { 52 assert_eq!( 53 Meta::from_string("text/gemini; hi=2; hi2=string=2").mime(), 54 "text/gemini", 55 ); 56 } 57 58 #[test] 59 fn meta_to_map_with_parameters() { 60 assert_eq!( 61 Meta::from_string("text/gemini; hi=2; hi2=string=2") 62 .parameters() 63 .get("hi2"), 64 Some(&"string=2".to_string()), 65 ); 66 } 67 68 #[test] 69 fn meta_to_map_length() { 70 assert_eq!( 71 Meta::from_string("text/gemini; hi=2; hi2=string=2").parameters().len(), 72 2, 73 ); 74 } 75 76 #[test] 77 fn meta_handles_malformed_parameters() { 78 let meta = 79 Meta::from_string("text/gemini; valid=value; malformed; another=test"); 80 81 assert_eq!(meta.mime(), "text/gemini"); 82 assert_eq!(meta.parameters().len(), 2); 83 assert_eq!(meta.parameters().get("valid"), Some(&"value".to_string())); 84 assert_eq!(meta.parameters().get("another"), Some(&"test".to_string())); 85 assert_eq!(meta.parameters().get("malformed"), None); 86 } 87}