From f2509b078a4ab11c3ec646aa6b8c63fd46732576 Mon Sep 17 00:00:00 2001 From: James Booth Date: Mon, 26 Aug 2013 23:44:45 +0100 Subject: Added test for broken argument quoting --- tests/test_parser.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'tests/test_parser.c') diff --git a/tests/test_parser.c b/tests/test_parser.c index 6df5eb1d..6295aafd 100644 --- a/tests/test_parser.c +++ b/tests/test_parser.c @@ -292,6 +292,42 @@ parse_cmd_with_quoted_freetext(void) g_strfreev(result); } +void +parse_cmd_with_third_arg_quoted_0_min_3_max(void) +{ + char *inp = "/group add friends \"The User\""; + gchar **result = parse_args_with_freetext(inp, 0, 3); + + assert_int_equals(3, g_strv_length(result)); + assert_string_equals("add", result[0]); + assert_string_equals("friends", result[1]); + assert_string_equals("The User", result[2]); +} + +void +parse_cmd_with_second_arg_quoted_0_min_3_max(void) +{ + char *inp = "/group add \"The Group\" friend"; + gchar **result = parse_args_with_freetext(inp, 0, 3); + + assert_int_equals(3, g_strv_length(result)); + assert_string_equals("add", result[0]); + assert_string_equals("The Group", result[1]); + assert_string_equals("friend", result[2]); +} + +void +parse_cmd_with_second_and_third_arg_quoted_0_min_3_max(void) +{ + char *inp = "/group add \"The Group\" \"The User\""; + gchar **result = parse_args_with_freetext(inp, 0, 3); + + assert_int_equals(3, g_strv_length(result)); + assert_string_equals("add", result[0]); + assert_string_equals("The Group", result[1]); + assert_string_equals("The User", result[2]); +} + void count_one_token(void) { @@ -451,4 +487,7 @@ register_parser_tests(void) TEST(get_first_two_of_three_first_quoted); TEST(get_first_two_of_three_second_quoted); TEST(get_first_two_of_three_first_and_second_quoted); + TEST(parse_cmd_with_third_arg_quoted_0_min_3_max); + TEST(parse_cmd_with_second_arg_quoted_0_min_3_max); + TEST(parse_cmd_with_second_and_third_arg_quoted_0_min_3_max); } -- cgit 1.4.1-2-gfad0