/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* test_quote_removal.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: khais +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/02/28 13:46:56 by khais #+# #+# */ /* Updated: 2025/03/11 16:31:50 by khais ### ########.fr */ /* */ /* ************************************************************************** */ #include "../src/parser/remove_quotes/remove_quotes.h" #include "testutil.h" #include #include static void test_quote_removal_no_quotes_single_word(void) { t_worddesc *word = create_single_word("word"); t_worddesc *got_word = remove_quotes(word); assert_strequal("word", got_word->word); assert(got_word->marker == NULL); worddesc_destroy(word); worddesc_destroy(got_word); } static void test_quote_removal_null(void) { t_worddesc *word = NULL; t_worddesc *got_word = remove_quotes(word); assert(got_word == NULL); } static void test_quote_removal_single_quotes(void) { t_worddesc *word = create_single_word("'word'"); t_worddesc *got_word = remove_quotes(word); assert_strequal("word", got_word->word); assert(got_word->marker == NULL); worddesc_destroy(word); worddesc_destroy(got_word); } static void test_quote_removal_double_quotes(void) { t_worddesc *word = create_single_word("\"word\""); t_worddesc *got_word = remove_quotes(word); assert_strequal("word", got_word->word); assert(got_word->marker == NULL); worddesc_destroy(word); worddesc_destroy(got_word); } static void test_quote_removal_mixed_single_in_double(void) { t_worddesc *word = create_single_word("\"'word'\""); t_worddesc *got_word = remove_quotes(word); assert_strequal("'word'", got_word->word); assert(got_word->marker == NULL); worddesc_destroy(word); worddesc_destroy(got_word); } static void test_quote_removal_mixed_double_in_single(void) { t_worddesc *word = create_single_word("'\"word\"'"); t_worddesc *got_word = remove_quotes(word); assert_strequal("\"word\"", got_word->word); assert(got_word->marker == NULL); worddesc_destroy(word); worddesc_destroy(got_word); } static void test_quote_removal_middle_of_word(void) { t_worddesc *word = create_single_word("var='VALUE'here"); t_worddesc *got_word = remove_quotes(word); assert_strequal("var=VALUEhere", got_word->word); assert(got_word->marker == NULL); worddesc_destroy(word); worddesc_destroy(got_word); } static void test_quote_removal_nested_middle_of_word(void) { t_worddesc *word = create_single_word("var=\"'VALUE'here\""); t_worddesc *got_word = remove_quotes(word); assert_strequal("var='VALUE'here", got_word->word); assert(got_word->marker == NULL); worddesc_destroy(word); worddesc_destroy(got_word); } int main(void) { test_quote_removal_no_quotes_single_word(); test_quote_removal_null(); test_quote_removal_single_quotes(); test_quote_removal_double_quotes(); test_quote_removal_mixed_single_in_double(); test_quote_removal_mixed_double_in_single(); test_quote_removal_middle_of_word(); test_quote_removal_nested_middle_of_word(); return (0); }