From b5703a59c59bfe95143cf8dc6cc54f20f67fb4fd Mon Sep 17 00:00:00 2001 From: Fuwn Date: Tue, 14 Jun 2022 08:45:09 +0000 Subject: feat(macros): general utility macros --- tests/ast.rs | 109 ------------------------------------------------------- tests/convert.rs | 61 ------------------------------- tests/meta.rs | 101 --------------------------------------------------- tests/status.rs | 32 ---------------- 4 files changed, 303 deletions(-) delete mode 100644 tests/ast.rs delete mode 100644 tests/convert.rs delete mode 100644 tests/meta.rs delete mode 100644 tests/status.rs (limited to 'tests') diff --git a/tests/ast.rs b/tests/ast.rs deleted file mode 100644 index 5f6cd5c..0000000 --- a/tests/ast.rs +++ /dev/null @@ -1,109 +0,0 @@ -// This file is part of Germ . -// Copyright (C) 2022-2022 Fuwn -// -// 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 . -// -// Copyright (C) 2022-2022 Fuwn -// SPDX-License-Identifier: GPL-3.0-only - -#[cfg(test)] -mod test { - use germ::ast::{Ast, Node}; - - const EXAMPLE_GEMTEXT: &str = r#"```This is alt-text -Here goes the pre-formatted text. - -This continues the pre-formatted text on a new line after a blank line. -``` - -# This is a heading - -This is some text. - -This is more text after a blank line. - -* This is a single list item. -* This is the next list item. - -* This is a new list. -* This is the next item on the new list. - -## This is a sub-heading - -> This is a blockquote. - -### This is a sub-sub-heading. - -=> gemini://gem.rest/ This is a link to GemRest -=> /somewhere - -That was a link without text."#; - - #[test] - fn build_multi_line_list_with_text() { - assert_eq!( - *Ast::from_string("* item1\n* 2\nhi text").inner(), - vec![ - Node::List(vec!["item1".to_string(), "2".to_string()]), - Node::Text("hi text".to_string()), - ], - ); - } - - #[test] - fn build_multi_line_vec() { - assert_eq!( - *Ast::from_string("=> /test hi\nhi there\n> hi").inner(), - vec![ - Node::Link { - to: "/test".to_string(), - text: Some("hi".to_string()), - }, - Node::Text("hi there".to_string()), - Node::Blockquote("hi".to_string()), - ], - ); - } - - #[test] - fn build_single_0th_from_vec() { - assert_eq!( - Ast::from_string("=> /test hi").inner(), - &vec![Node::Link { - to: "/test".to_string(), - text: Some("hi".to_string()), - }], - ); - } - - #[test] - fn build_single_element() { - assert_eq!( - Ast::from_string("=> /test hi").inner().get(0).unwrap(), - &Node::Link { - to: "/test".to_string(), - text: Some("hi".to_string()), - }, - ); - } - - #[test] - fn gemtext_to_ast_then_ast_to_gemtext() { - assert_eq!( - Ast::from_string(EXAMPLE_GEMTEXT).to_gemtext(), - // `to_gemtext` appends a newline to all responses, so let's make sure we - // account for that. - format!("{}\n", EXAMPLE_GEMTEXT), - ); - } -} diff --git a/tests/convert.rs b/tests/convert.rs deleted file mode 100644 index 40f337d..0000000 --- a/tests/convert.rs +++ /dev/null @@ -1,61 +0,0 @@ -// This file is part of Germ . -// Copyright (C) 2022-2022 Fuwn -// -// 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 . -// -// Copyright (C) 2022-2022 Fuwn -// SPDX-License-Identifier: GPL-3.0-only - -#[cfg(test)] -mod test { - use germ::convert::{from_string, Target}; - - #[test] - fn convert_from_string_to_html_single_line() { - assert_eq!(from_string("hi", &Target::HTML), "

hi

",); - } - - #[test] - fn convert_from_string_to_html_multi_line() { - assert_eq!( - from_string("hi\n# hi", &Target::HTML), - "

hi

hi

", - ); - } - - #[test] - fn convert_from_string_to_html_single_link() { - assert_eq!( - from_string("=> /to hello !", &Target::HTML), - "hello !
", - ); - } - - #[test] - fn convert_from_string_to_markdown_single_line() { - assert_eq!(from_string("hi", &Target::Markdown), "hi\n",); - } - - #[test] - fn convert_from_string_to_markdown_multi_line() { - assert_eq!(from_string("hi\n# hi", &Target::Markdown), "hi\n# hi\n",); - } - - #[test] - fn convert_from_string_to_markdown_single_link() { - assert_eq!( - from_string("=> /to hello !", &Target::Markdown), - "[hello !](/to)\n", - ); - } -} diff --git a/tests/meta.rs b/tests/meta.rs deleted file mode 100644 index 70c8adc..0000000 --- a/tests/meta.rs +++ /dev/null @@ -1,101 +0,0 @@ -// This file is part of Germ . -// Copyright (C) 2022-2022 Fuwn -// -// 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 . -// -// Copyright (C) 2022-2022 Fuwn -// 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, - ); - } -} diff --git a/tests/status.rs b/tests/status.rs deleted file mode 100644 index 51f3f66..0000000 --- a/tests/status.rs +++ /dev/null @@ -1,32 +0,0 @@ -// This file is part of Germ . -// Copyright (C) 2022-2022 Fuwn -// -// 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 . -// -// Copyright (C) 2022-2022 Fuwn -// SPDX-License-Identifier: GPL-3.0-only - -#[cfg(test)] -mod test { - use germ::request::Status; - - #[test] - fn status_from_i32() { - assert_eq!(Status::from(10), Status::Input); - } - - #[test] - fn i32_from_status() { - assert_eq!(i32::from(Status::Input), 10); - } -} -- cgit v1.2.3