diff options
| author | Bryce Kwon <bryce@brycekwon.com> | |
|---|---|---|
| committer | Bryce Kwon <bryce@brycekwon.com> | |
| commit | ||
| parent | ||
| tree | ||
| download | ||
Renumber the test scripts into themed ranges
t000x the ground the suite stands on: git version, html validity,
the cache
t01xx page content, one script per page
t02xx features that cut across pages: filters, submodule links,
dates, limits
t03xx defence, the security regressions and the $HOME promise
t04xx the helper tools under tools/
Diffstat (limited to 'tests/t0201-filters.sh')
| -rwxr-xr-x | tests/t0201-filters.sh | 70 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1 file changed, 70 insertions, 0 deletions
diff --git a/tests/t0201-filters.sh b/tests/t0201-filters.sh new file mode 100755 index 0000000..88533f4 --- /dev/null +++ b/tests/t0201-filters.sh @@ -0,0 +1,70 @@ +#!/bin/sh + +# Checks the source, about, commit and email filters, which hand a piece of +# page content to an outside program before it is written out. The whole +# body runs once per kind of filter, the exec kind always and the lua kind +# only where cgit was built with lua, because both have to produce the same +# page from the same repository. + +test_description='Check filtered content' +. ./setup.sh + +prefixes="exec" +if [ $CGIT_HAS_LUA -eq 1 ]; then + prefixes="$prefixes lua" +fi + +for prefix in $prefixes +do + test_expect_success "generate filter-$prefix/tree/a%2bb" " + cgit_url 'filter-$prefix/tree/a%2bb' >tmp + " + + test_expect_success "check whether the $prefix source filter works" ' + grep "<code>a+b HELLO$" tmp + ' + + test_expect_success "generate filter-$prefix/about/" " + cgit_url 'filter-$prefix/about/' >tmp + " + + test_expect_success "check whether the $prefix about filter works" ' + grep "<div id='"'"'summary'"'"'>a+b HELLO$" tmp + ' + + test_expect_success "generate filter-$prefix/commit/" " + cgit_url 'filter-$prefix/commit/' >tmp + " + + test_expect_success "check whether the $prefix commit filter works" ' + grep "<div class='"'"'commit-subject'"'"'>ADD A+B" tmp + ' + + test_expect_success "check whether the $prefix email filter works for authors" ' + grep "<author@example.com> commit A U THOR <AUTHOR@EXAMPLE.COM>" tmp + ' + + test_expect_success "check whether the $prefix email filter works for committers" ' + grep "<committer@example.com> commit C O MITTER <COMMITTER@EXAMPLE.COM>" tmp + ' + + # Page output is buffered, so whatever was written before a filter + # opens has to leave the buffer before the filter takes over stdout, + # and whatever was written while it was open has to leave before + # stdout is handed back, since those bytes are meant for the filter. + # A missed flush reorders the page rather than losing any of it, + # so the two tests below confirm that the markup around the filtered + # text is still on the side of it that it belongs on. + test_expect_success "the $prefix source filter output stays inside its cell" " + cgit_url 'filter-$prefix/tree/a%2bb' >tmp && + tr -d '\n' <tmp >flat.out && + grep '<code>a+b HELLO</code>' flat.out + " + + test_expect_success "the $prefix about filter output stays inside its div" " + cgit_url 'filter-$prefix/about/' >tmp && + grep \"<div id='summary'>a+b HELLO\" tmp + " +done + +test_done |
