cgit

commit caf557a2ba666ad87a1ebd5b40750feaf1bd631f

Author: Lukas Fleischer <cgit@cryptocrack.de>

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>

 tests/filters/capitalize-argv1.sh | 3 -
 tests/filters/capitalize-buffer.lua | 17 ++++++++++
 tests/filters/capitalize-stdin.sh | 1 
 tests/setup.sh | 13 ++++++-
 tests/t0111-filter.sh | 51 ++++++++++++++++--------------


diff --git a/tests/filters/capitalize-argv1.sh b/tests/filters/capitalize-argv1.sh
deleted file mode 100755
index 2ea00982564ee3f63676c982fce9720ead27446f..0000000000000000000000000000000000000000
--- 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 0000000000000000000000000000000000000000..1f15c931051c31b7908975bf5aafb7e17c3c0b32
--- /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 c9f4719d109961c5b4bd0740719e61646887dc20..da6f7a1b181bf4bf6427e75c8d21a27dfb9f0f16 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 861f48aa55758956531abce28205cf39c3dd9fb5..12c97f55a1c241dcc1ab6154e6e5512543b2abb2 100755
--- a/tests/setup.sh
+++ b/tests/setup.sh
@@ -125,13 +125,22 @@ 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 2f998803715050a6cf6a2190971ce4630b5e3cae..c89020aa1f404d6f7990f12ecaa86e0681cc618d 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
-'
+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 source filter works' '
-	grep "<code>HELLO$" tmp
-'
+	test_expect_success "check whether the $prefix source filter works" '
+		grep "<code>a+b HELLO$" tmp
+	'
 
-test_expect_success 'generate filter/about/' '
-	cgit_url "filter/about/" >tmp
-'
+	test_expect_success "generate filter-$prefix/about/" "
+		cgit_url 'filter-$prefix/about/' >tmp
+	"
 
-test_expect_success 'check whether the about filter works' '
-	grep "<div id='"'"'summary'"'"'>HELLO$" tmp
-'
+	test_expect_success "check whether the $prefix about filter works" '
+		grep "<div id='"'"'summary'"'"'>a+b HELLO$" tmp
+	'
 
-test_expect_success 'generate filter/commit/' '
-	cgit_url "filter/commit/" >tmp
-'
+	test_expect_success "generate filter-$prefix/commit/" "
+		cgit_url 'filter-$prefix/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 $prefix 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 $prefix email filter works for authors" '
+		grep "A U THOR &LT;AUTHOR@EXAMPLE.COM&GT;" tmp
+	'
 
-test_expect_success 'check whether the email filter works for committers' '
-	grep "<COMMITTER@EXAMPLE.COM>" 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