summaryrefslogtreecommitdiffstatshomepage
path: root/tests
diff options
context:
space:
mode:
authorLukas Fleischer2014-01-14 22:25:45 +0100
committerJason A. Donenfeld2014-01-15 14:45:21 +0100
commitcaf557a2ba666ad87a1ebd5b40750feaf1bd631f (patch)
tree8de9226af92266c06712bf4b480f19eb679c79a7 /tests
parent8ae1d8b8fd0b097b10716d0d2d8acaadbd7a46f7 (diff)
downloadcgit-caf557a2ba666ad87a1ebd5b40750feaf1bd631f.tar.gz
t0111: Add basic tests for Lua filters
* Validate the email filter by manipulating stdin. Additional checks for all the arguments can be added in a later patch. * Add the exec prefix to all informational messages. * Rename the filter repository to filter-exec. The Git repository itself is not renamed since it can be shared amongst all filter types. * In the filter checks, check whether all arguments are passed properly instead of validating the buffer/stdin only. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
Diffstat (limited to 'tests')
-rwxr-xr-xtests/filters/capitalize-argv1.sh3
-rw-r--r--tests/filters/capitalize-buffer.lua17
-rwxr-xr-xtests/filters/capitalize-stdin.sh1
-rwxr-xr-xtests/setup.sh13
-rwxr-xr-xtests/t0111-filter.sh65
5 files changed, 63 insertions, 36 deletions
diff --git a/tests/filters/capitalize-argv1.sh b/tests/filters/capitalize-argv1.sh
deleted file mode 100755
index 2ea0098..0000000
--- a/tests/filters/capitalize-argv1.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-echo "$1" | tr '[:lower:]' '[:upper:]'
diff --git a/tests/filters/capitalize-buffer.lua b/tests/filters/capitalize-buffer.lua
new file mode 100644
index 0000000..1f15c93
--- /dev/null
+++ b/tests/filters/capitalize-buffer.lua
@@ -0,0 +1,17 @@
+function filter_open(...)
+ buffer = ""
+ for i = 1, select("#", ...) do
+ buffer = buffer .. select(i, ...) .. " "
+ end
+end
+
+function filter_close()
+ html(buffer)
+ return 0
+end
+
+function filter_write(str)
+ buffer = buffer .. string.upper(str)
+end
+
+
diff --git a/tests/filters/capitalize-stdin.sh b/tests/filters/capitalize-stdin.sh
index c9f4719..da6f7a1 100755
--- a/tests/filters/capitalize-stdin.sh
+++ b/tests/filters/capitalize-stdin.sh
@@ -1,3 +1,4 @@
#!/bin/sh
+[ "$#" -gt 0 ] && printf "%s " "$*"
tr '[:lower:]' '[:upper:]'
diff --git a/tests/setup.sh b/tests/setup.sh
index 861f48a..12c97f5 100755
--- a/tests/setup.sh
+++ b/tests/setup.sh
@@ -125,14 +125,23 @@ repo.url=with space
repo.path=$PWD/repos/with space/.git
repo.desc=spaced repo
-repo.url=filter
+repo.url=filter-exec
repo.path=$PWD/repos/filter/.git
repo.desc=filtered repo
repo.about-filter=exec:$FILTER_DIRECTORY/capitalize-stdin.sh
repo.commit-filter=exec:$FILTER_DIRECTORY/capitalize-stdin.sh
-repo.email-filter=exec:$FILTER_DIRECTORY/capitalize-argv1.sh
+repo.email-filter=exec:$FILTER_DIRECTORY/capitalize-stdin.sh
repo.source-filter=exec:$FILTER_DIRECTORY/capitalize-stdin.sh
repo.readme=master:a+b
+
+repo.url=filter-lua
+repo.path=$PWD/repos/filter/.git
+repo.desc=filtered repo
+repo.about-filter=lua:$FILTER_DIRECTORY/capitalize-buffer.lua
+repo.commit-filter=lua:$FILTER_DIRECTORY/capitalize-buffer.lua
+repo.email-filter=lua:$FILTER_DIRECTORY/capitalize-buffer.lua
+repo.source-filter=lua:$FILTER_DIRECTORY/capitalize-buffer.lua
+repo.readme=master:a+b
EOF
}
diff --git a/tests/t0111-filter.sh b/tests/t0111-filter.sh
index 2f99880..c89020a 100755
--- a/tests/t0111-filter.sh
+++ b/tests/t0111-filter.sh
@@ -3,36 +3,39 @@
test_description='Check filtered content'
. ./setup.sh
-test_expect_success 'generate filter/tree/a%2bb' '
- cgit_url "filter/tree/a%2bb" >tmp
-'
-
-test_expect_success 'check whether the source filter works' '
- grep "<code>HELLO$" tmp
-'
-
-test_expect_success 'generate filter/about/' '
- cgit_url "filter/about/" >tmp
-'
-
-test_expect_success 'check whether the about filter works' '
- grep "<div id='"'"'summary'"'"'>HELLO$" tmp
-'
-
-test_expect_success 'generate filter/commit/' '
- cgit_url "filter/commit/" >tmp
-'
-
-test_expect_success 'check whether the commit filter works' '
- grep "<div class='"'"'commit-subject'"'"'>ADD A+B" tmp
-'
-
-test_expect_success 'check whether the email filter works for authors' '
- grep "<AUTHOR@EXAMPLE.COM>" tmp
-'
-
-test_expect_success 'check whether the email filter works for committers' '
- grep "<COMMITTER@EXAMPLE.COM>" tmp
-'
+for prefix in exec lua
+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 "A U THOR &LT;AUTHOR@EXAMPLE.COM&GT;" tmp
+ '
+
+ test_expect_success "check whether the $prefix email filter works for committers" '
+ grep "C O MITTER &LT;COMMITTER@EXAMPLE.COM&GT;" tmp
+ '
+done
test_done