diff options
| author | Rafael G. Martins <rafael@rafaelmartins.eng.br> | 2015-04-17 23:49:55 -0300 | 
|---|---|---|
| committer | Rafael G. Martins <rafael@rafaelmartins.eng.br> | 2015-04-17 23:49:55 -0300 | 
| commit | bf42a95568f5efffcc87a9b5a7683b7b270a098f (patch) | |
| tree | 4d3ea13c85bc34b609271ce0bf3b35cdf5a98c6f /tests/check_template_grammar.c | |
| parent | da54782672331c68fc7c412f4ebe27a9738342eb (diff) | |
| download | blogc-bf42a95568f5efffcc87a9b5a7683b7b270a098f.tar.gz blogc-bf42a95568f5efffcc87a9b5a7683b7b270a098f.tar.bz2 blogc-bf42a95568f5efffcc87a9b5a7683b7b270a098f.zip | |
replaced leg-based parser with handmade parser for templates
yay! no leg parser needed anymore. parsers still needs some work and
error handling, though.
Diffstat (limited to 'tests/check_template_grammar.c')
| -rw-r--r-- | tests/check_template_grammar.c | 145 | 
1 files changed, 0 insertions, 145 deletions
| diff --git a/tests/check_template_grammar.c b/tests/check_template_grammar.c deleted file mode 100644 index 3b4dcca..0000000 --- a/tests/check_template_grammar.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - * blogc: A blog compiler. - * Copyright (C) 2015 Rafael G. Martins <rafael@rafaelmartins.eng.br> - * - * This program can be distributed under the terms of the BSD License. - * See the file COPYING. - */ - -#ifdef HAVE_CONFIG_H -#include <config.h> -#endif /* HAVE_CONFIG_H */ - -#include <stdarg.h> -#include <stddef.h> -#include <setjmp.h> -#include <cmocka.h> -#include "../src/template-grammar.h" - - -static void -blogc_assert_template_stmt(b_slist_t *l, const char *value, -    const blogc_template_stmt_type_t type) -{ -    blogc_template_stmt_t *stmt = l->data; -    if (value == NULL) -        assert_null(stmt->value); -    else -        assert_string_equal(stmt->value, value); -    assert_int_equal(stmt->type, type); -} - - -static void -test_template_parse(void **state) -{ -    b_slist_t *stmts = blogc_template_parse( -        "Test\n" -        "\n" -        "    {% block single_source %}\n" -        "{% if CHUNDA %}\n" -        "bola\n" -        "{% else %}\n" -        "guda\n" -        "{% endif %}\n" -        "{% endblock %}\n" -        "{% block multiple_sources %}{{ BOLA }}{% endblock %}\n" -        "{% block multiple_sources_once %}asd{% endblock %}\n"); -    assert_non_null(stmts); -    blogc_assert_template_stmt(stmts, "Test\n\n    ", -        BLOGC_TEMPLATE_CONTENT_STMT); -    blogc_assert_template_stmt(stmts->next, "single_source", -        BLOGC_TEMPLATE_BLOCK_STMT); -    blogc_assert_template_stmt(stmts->next->next, "\n", -        BLOGC_TEMPLATE_CONTENT_STMT); -    blogc_assert_template_stmt(stmts->next->next->next, "CHUNDA", -        BLOGC_TEMPLATE_IF_STMT); -    blogc_assert_template_stmt(stmts->next->next->next->next, "\nbola\n", -        BLOGC_TEMPLATE_CONTENT_STMT); -    blogc_assert_template_stmt(stmts->next->next->next->next->next, NULL, -        BLOGC_TEMPLATE_ELSE_STMT); -    blogc_assert_template_stmt(stmts->next->next->next->next->next->next, -        "\nguda\n", BLOGC_TEMPLATE_CONTENT_STMT); -    blogc_assert_template_stmt(stmts->next->next->next->next->next->next->next, -        NULL, BLOGC_TEMPLATE_ENDIF_STMT); -    blogc_assert_template_stmt(stmts->next->next->next->next->next->next->next->next, -        "\n", BLOGC_TEMPLATE_CONTENT_STMT); -    b_slist_t *tmp = stmts->next->next->next->next->next->next->next->next->next; -    blogc_assert_template_stmt(tmp, NULL, BLOGC_TEMPLATE_ENDBLOCK_STMT); -    blogc_assert_template_stmt(tmp->next, "\n", BLOGC_TEMPLATE_CONTENT_STMT); -    blogc_assert_template_stmt(tmp->next->next, "multiple_sources", -        BLOGC_TEMPLATE_BLOCK_STMT); -    blogc_assert_template_stmt(tmp->next->next->next, "BOLA", -        BLOGC_TEMPLATE_VARIABLE_STMT); -    blogc_assert_template_stmt(tmp->next->next->next->next, NULL, -        BLOGC_TEMPLATE_ENDBLOCK_STMT); -    blogc_assert_template_stmt(tmp->next->next->next->next->next, "\n", -        BLOGC_TEMPLATE_CONTENT_STMT); -    blogc_assert_template_stmt(tmp->next->next->next->next->next->next, -        "multiple_sources_once", BLOGC_TEMPLATE_BLOCK_STMT); -    blogc_assert_template_stmt(tmp->next->next->next->next->next->next->next, -        "asd", BLOGC_TEMPLATE_CONTENT_STMT); -    blogc_assert_template_stmt(tmp->next->next->next->next->next->next->next->next, -        NULL, BLOGC_TEMPLATE_ENDBLOCK_STMT); -    blogc_assert_template_stmt(tmp->next->next->next->next->next->next->next->next->next, -        "\n", BLOGC_TEMPLATE_CONTENT_STMT); -    assert_null(tmp->next->next->next->next->next->next->next->next->next->next); -    blogc_template_free_stmts(stmts); -} - - -static void -test_template_parse_html(void **state) -{ -    b_slist_t *stmts = blogc_template_parse( -        "<html>\n" -        "    <head>\n" -        "        {% block single_source %}\n" -        "        <title>My cool blog >> {{ TITLE }}</title>\n" -        "        {% endblock %}\n" -        "        {% block multiple_sources %}\n" -        "        <title>My cool blog - Main page</title>\n" -        "        {% endblock %}\n" -        "    </head>\n" -        "    <body>\n" -        "        <h1>My cool blog</h1>\n" -        "        {% block single_source %}\n" -        "        <h2>{{ TITLE }}</h2>\n" -        "        {% if DATE %}<h4>Published in: {{ DATE }}</h4>{% endif %}\n" -        "        <pre>{{ CONTENT }}</pre>\n" -        "        {% endblock %}\n" -        "        {% block multiple_sources_once %}<ul>{% endblock %}\n" -        "        {% block multiple_sources %}<p><a href=\"{{ FILENAME }}.html\">" -        "{{ TITLE }}</a>{% if DATE %} - {{ DATE }}{% endif %}</p>{% endblock %}\n" -        "        {% block multiple_sources_once %}</ul>{% endblock %}\n" -        "    </body>\n" -        "</html>\n"); -    assert_non_null(stmts); -    blogc_assert_template_stmt(stmts, "<html>\n    <head>\n        ", -        BLOGC_TEMPLATE_CONTENT_STMT); -    blogc_assert_template_stmt(stmts->next, "single_source", -        BLOGC_TEMPLATE_BLOCK_STMT); -    blogc_assert_template_stmt(stmts->next->next, -        "\n        <title>My cool blog >> ", BLOGC_TEMPLATE_CONTENT_STMT); -    blogc_assert_template_stmt(stmts->next->next->next, "TITLE", -        BLOGC_TEMPLATE_VARIABLE_STMT); -    blogc_assert_template_stmt(stmts->next->next->next->next, -        "</title>\n        ", BLOGC_TEMPLATE_CONTENT_STMT); - - - - - -    blogc_template_free_stmts(stmts); -} - - -int -main(void) -{ -    const UnitTest tests[] = { -        unit_test(test_template_parse), -        unit_test(test_template_parse_html), -    }; -    return run_tests(tests); -} | 
