aboutsummaryrefslogtreecommitdiff
path: root/tests/t0112-ci.sh
diff options
from:
to:
context:
space:
mode:
Diffstat (limited to 'tests/t0112-ci.sh')
-rw-r--r--tests/t0112-ci.sh83
1 files changed, 83 insertions, 0 deletions
diff --git a/tests/t0112-ci.sh b/tests/t0112-ci.sh
new file mode 100644
index 0000000..d8673e4
--- /dev/null
+++ b/tests/t0112-ci.sh
@@ -0,0 +1,83 @@
+#!/bin/sh
+
+test_description='Check content on ci page'
+. ./setup.sh
+
+# The ci settings are only inherited by repositories which are declared
+# after them, which is used below to get a repository with no ci url and
+# one with a tag-only ci url.
+cat >cgitrc.ci <<EOF
+virtual-root=/
+cache-root=$PWD/cache
+cache-size=0
+
+repo.url=tagonly
+repo.path=$PWD/repos/foo/.git
+repo.ci-tag-url=https://ci.example.org/tagonly/\$ref
+
+ci-branch-url=https://ci.example.org/job/\$slug/job/\$ref
+ci-tag-url=https://ci.example.org/job/\$slug/view/tags/job/\$ref
+
+repo.url=foo
+repo.path=$PWD/repos/foo/.git
+
+repo.url=sayauz/web.git
+repo.path=$PWD/repos/foo/.git
+
+repo.url=override
+repo.path=$PWD/repos/foo/.git
+repo.ci-url=https://ci.example.org/override/\$repo/\$\$/\$ref
+EOF
+
+git --git-dir="$PWD/repos/foo/.git" tag v0.17.3.2 master
+
+cgit_ci()
+{
+ CGIT_CONFIG="$PWD/cgitrc.ci" QUERY_STRING="url=$1" cgit
+}
+
+test_expect_success 'redirect to the branch ci url' '
+ cgit_ci "foo/ci&h=master" >tmp &&
+ grep "^Status: 302 Found$" tmp &&
+ grep "^Location: https://ci.example.org/job/foo/job/master$" tmp
+'
+
+test_expect_success 'redirect to the tag ci url' '
+ cgit_ci "foo/ci&h=v0.17.3.2" >tmp &&
+ grep "^Status: 302 Found$" tmp &&
+ grep "^Location: https://ci.example.org/job/foo/view/tags/job/v0.17.3.2$" tmp
+'
+
+test_expect_success 'redirect to the default branch ci url' '
+ cgit_ci "foo/ci" >tmp &&
+ grep "^Location: https://ci.example.org/job/foo/job/master$" tmp
+'
+
+test_expect_success '$slug strips ".git" and replaces slashes' '
+ cgit_ci "sayauz/web.git/ci&h=v0.17.3.2" >tmp &&
+ grep "^Location: https://ci.example.org/job/sayauz-web/view/tags/job/v0.17.3.2$" tmp
+'
+
+test_expect_success 'repo.ci-url overrides and expands $repo and $$' '
+ cgit_ci "override/ci&h=master" >tmp &&
+ grep -F "Location: https://ci.example.org/override/override/\$/master" tmp
+'
+
+test_expect_success 'repo.ci-tag-url does not apply to branches' '
+ cgit_ci "tagonly/ci&h=v0.17.3.2" >tmp &&
+ grep "^Location: https://ci.example.org/tagonly/v0.17.3.2$" tmp &&
+ cgit_ci "tagonly/ci&h=master" >tmp &&
+ grep "^Status: 404 Not found$" tmp
+'
+
+test_expect_success 'find ci tab' '
+ cgit_ci "foo/refs&h=master" >tmp &&
+ grep "href=./foo/ci/.>ci</a>" tmp
+'
+
+test_expect_success 'no ci tab without a ci url' '
+ cgit_url "foo/refs" >tmp &&
+ ! grep ">ci</a>" tmp
+'
+
+test_done