more tests
This commit is contained in:
parent
2a3fa5b189
commit
558230ea50
2
TODO.md
2
TODO.md
@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
## Things That May Get Done
|
## Things That May Get Done
|
||||||
|
|
||||||
* Add tests
|
|
||||||
* Produce decent error structures
|
* Produce decent error structures
|
||||||
* Detect mismatched start/end like {{% foo >}}
|
* Detect mismatched start/end like {{% foo >}}
|
||||||
|
* Inform tag type (% or <) in result
|
||||||
* Handle other kinds of quotes
|
* Handle other kinds of quotes
|
||||||
* Handle escaping quote characters
|
* Handle escaping quote characters
|
||||||
* Handle escaping the shortcode itself like \{{% foo %}} (check with hugo docs)
|
* Handle escaping the shortcode itself like \{{% foo %}} (check with hugo docs)
|
||||||
|
44
tests.c
44
tests.c
@ -38,6 +38,48 @@ Ensure(parse, simple_shortcode)
|
|||||||
assert_that(s.s, is_equal_to_string("{{% shortcode %}}"));
|
assert_that(s.s, is_equal_to_string("{{% shortcode %}}"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Ensure(parse, inner_spaces_optional)
|
||||||
|
{
|
||||||
|
char *input = "foobar {{% shortcode%}}blah";
|
||||||
|
result = parse(input);
|
||||||
|
// Only 1 shortcode
|
||||||
|
assert_that(result[1].name.len, is_equal_to(0));
|
||||||
|
|
||||||
|
// It's a simple one called shortcode, no args
|
||||||
|
chunk_s(input, result[0].name);
|
||||||
|
assert_that(s.s, is_equal_to_string("shortcode"));
|
||||||
|
assert_that(result[0].matching, is_equal_to(0));
|
||||||
|
assert_that(result[0].argcount, is_equal_to(0));
|
||||||
|
// The whole shortcode is the whole thing
|
||||||
|
chunk_s(input, result[0].whole);
|
||||||
|
assert_that(s.s, is_equal_to_string("{{% shortcode%}}"));
|
||||||
|
}
|
||||||
|
|
||||||
|
Ensure(parse, multiple_shortcodes)
|
||||||
|
{
|
||||||
|
char *input = "foobar {{% shortcode %}}blah {{<sc2 >}}blahblah";
|
||||||
|
result = parse(input);
|
||||||
|
// 2 shortcodes
|
||||||
|
assert_that(result[2].name.len, is_equal_to(0));
|
||||||
|
|
||||||
|
// It's a simple one called shortcode, no args
|
||||||
|
chunk_s(input, result[0].name);
|
||||||
|
assert_that(s.s, is_equal_to_string("shortcode"));
|
||||||
|
assert_that(result[0].matching, is_equal_to(0));
|
||||||
|
assert_that(result[0].argcount, is_equal_to(0));
|
||||||
|
// The whole shortcode is the whole thing
|
||||||
|
chunk_s(input, result[0].whole);
|
||||||
|
assert_that(s.s, is_equal_to_string("{{% shortcode %}}"));
|
||||||
|
// It's a simple one called sc2, no args
|
||||||
|
chunk_s(input, result[1].name);
|
||||||
|
assert_that(s.s, is_equal_to_string("sc2"));
|
||||||
|
assert_that(result[1].matching, is_equal_to(0));
|
||||||
|
assert_that(result[1].argcount, is_equal_to(0));
|
||||||
|
// The whole shortcode is the whole thing
|
||||||
|
chunk_s(input, result[1].whole);
|
||||||
|
assert_that(s.s, is_equal_to_string("{{<sc2 >}}"));
|
||||||
|
}
|
||||||
|
|
||||||
Ensure(parse, matching_shortcode)
|
Ensure(parse, matching_shortcode)
|
||||||
{
|
{
|
||||||
char *input = "blah {{% shortcode %}}foo bar{{% /shortcode %}} blah";
|
char *input = "blah {{% shortcode %}}foo bar{{% /shortcode %}} blah";
|
||||||
@ -65,6 +107,8 @@ int main(int argc, char **argv)
|
|||||||
TestSuite *suite = create_test_suite();
|
TestSuite *suite = create_test_suite();
|
||||||
add_test_with_context(suite, parse, empty_string);
|
add_test_with_context(suite, parse, empty_string);
|
||||||
add_test_with_context(suite, parse, simple_shortcode);
|
add_test_with_context(suite, parse, simple_shortcode);
|
||||||
|
add_test_with_context(suite, parse, inner_spaces_optional);
|
||||||
|
add_test_with_context(suite, parse, multiple_shortcodes);
|
||||||
add_test_with_context(suite, parse, matching_shortcode);
|
add_test_with_context(suite, parse, matching_shortcode);
|
||||||
return run_test_suite(suite, create_text_reporter());
|
return run_test_suite(suite, create_text_reporter());
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user