1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
/*
* Copyright (C) 2021 Purism SPC
*
* SPDX-License-Identifier: GPL-3.0-or-later
*
* Author: Guido Günther <agx@sigxcpu.org>
*/
#include "util.h"
#define phog_test_assert_cmp_markup(in, esc, cmp) \
do { \
g_autofree char *escaped = phog_util_escape_markup (in, esc); \
g_assert_cmpstr (escaped, ==, cmp); \
} while (0);
static void
test_phog_util_escape_markup (void)
{
/* correct markup */
phog_test_assert_cmp_markup ("&&", TRUE, "&&");
phog_test_assert_cmp_markup ("""", TRUE, """");
phog_test_assert_cmp_markup ("''", TRUE, "''");
phog_test_assert_cmp_markup ("<<", TRUE, "<<");
phog_test_assert_cmp_markup (">>", TRUE, ">>");
phog_test_assert_cmp_markup ("<b>bold</b>", TRUE, "<b>bold</b>");
phog_test_assert_cmp_markup ("<i>italic</i>", TRUE, "<i>italic</i>");
phog_test_assert_cmp_markup ("<u>underline</u>", TRUE, "<u>underline</u>");
phog_test_assert_cmp_markup ("<u>&</u>", TRUE, "<u>&</u>");
/* unknown tags and entities */
phog_test_assert_cmp_markup ("&foo;&foo;", TRUE, "&foo;&foo;");
phog_test_assert_cmp_markup ("<p>para</p>", TRUE, "<p>para</p>");
/* Make sure we match the full tag */
phog_test_assert_cmp_markup ("<pp>para</pp>", TRUE, "<pp>para</pp>");
phog_test_assert_cmp_markup ("<", FALSE, "&lt;");
/* broken markups */
/* unbalanced markup */
phog_test_assert_cmp_markup ("<p>para</i>", TRUE, "<p>para</i>");
phog_test_assert_cmp_markup ("<p>para</pp>", TRUE, "<p>para</pp>");
}
int
main (int argc, char *argv[])
{
gtk_test_init (&argc, &argv, NULL);
g_test_add_func ("/phog/util/escacpe-markup", test_phog_util_escape_markup);
return g_test_run ();
}
|